mcp-scraper 0.45.0 → 0.47.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/README.md +6 -2
- package/dist/bin/api-server.cjs +1098 -198
- package/dist/bin/api-server.cjs.map +1 -1
- package/dist/bin/api-server.js +3 -3
- package/dist/bin/mcp-scraper-cli.cjs +1 -1
- package/dist/bin/mcp-scraper-cli.cjs.map +1 -1
- package/dist/bin/mcp-scraper-cli.js +1 -1
- package/dist/bin/mcp-scraper-install.cjs +3 -2
- package/dist/bin/mcp-scraper-install.cjs.map +1 -1
- package/dist/bin/mcp-scraper-install.js +2 -2
- package/dist/bin/mcp-stdio-server.cjs +251 -34
- package/dist/bin/mcp-stdio-server.cjs.map +1 -1
- package/dist/bin/mcp-stdio-server.js +5 -5
- package/dist/bin/paa-harvest.cjs.map +1 -1
- package/dist/bin/paa-harvest.js +3 -3
- package/dist/{chunk-5X7CJEK3.js → chunk-5S6LYQQO.js} +2 -2
- package/dist/chunk-5S6LYQQO.js.map +1 -0
- package/dist/{chunk-OVD4E4AP.js → chunk-GV5EGE5M.js} +2 -2
- package/dist/chunk-H4NWAF5B.js +7 -0
- package/dist/chunk-H4NWAF5B.js.map +1 -0
- package/dist/{chunk-T5AFM4G5.js → chunk-IWYYZXBR.js} +2 -2
- package/dist/{chunk-RJMOOII7.js → chunk-JH7A4HA7.js} +2 -2
- package/dist/{chunk-JFOT5JEL.js → chunk-MW3ET532.js} +2 -2
- package/dist/{chunk-GRODXRUY.js → chunk-QSUGPYGQ.js} +3 -2
- package/dist/chunk-QSUGPYGQ.js.map +1 -0
- package/dist/{chunk-WT2UHDSE.js → chunk-TV6KPZ6J.js} +2 -2
- package/dist/{chunk-FQIICRR4.js → chunk-XCGQBGDA.js} +296 -38
- package/dist/chunk-XCGQBGDA.js.map +1 -0
- package/dist/{db-4ABEYNDM.js → db-W3RPRILW.js} +2 -2
- package/dist/{extract-bundle-DYMQRQWG.js → extract-bundle-DXWWQER6.js} +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +3 -3
- package/dist/{location-data-repository-HDNCU4Z4.js → location-data-repository-2FJVMTZ2.js} +3 -3
- package/dist/{server-7B75SDNG.js → server-OHMZJRSB.js} +778 -141
- package/dist/server-OHMZJRSB.js.map +1 -0
- package/dist/{site-extract-repository-G723PZIL.js → site-extract-repository-UULQAGO4.js} +3 -3
- package/dist/{worker-4LZGRHDA.js → worker-3QX7LG62.js} +5 -5
- package/package.json +2 -2
- package/dist/chunk-5X7CJEK3.js.map +0 -1
- package/dist/chunk-CEZ3NFBP.js +0 -7
- package/dist/chunk-CEZ3NFBP.js.map +0 -1
- package/dist/chunk-FQIICRR4.js.map +0 -1
- package/dist/chunk-GRODXRUY.js.map +0 -1
- package/dist/server-7B75SDNG.js.map +0 -1
- /package/dist/{chunk-OVD4E4AP.js.map → chunk-GV5EGE5M.js.map} +0 -0
- /package/dist/{chunk-T5AFM4G5.js.map → chunk-IWYYZXBR.js.map} +0 -0
- /package/dist/{chunk-RJMOOII7.js.map → chunk-JH7A4HA7.js.map} +0 -0
- /package/dist/{chunk-JFOT5JEL.js.map → chunk-MW3ET532.js.map} +0 -0
- /package/dist/{chunk-WT2UHDSE.js.map → chunk-TV6KPZ6J.js.map} +0 -0
- /package/dist/{db-4ABEYNDM.js.map → db-W3RPRILW.js.map} +0 -0
- /package/dist/{extract-bundle-DYMQRQWG.js.map → extract-bundle-DXWWQER6.js.map} +0 -0
- /package/dist/{location-data-repository-HDNCU4Z4.js.map → location-data-repository-2FJVMTZ2.js.map} +0 -0
- /package/dist/{site-extract-repository-G723PZIL.js.map → site-extract-repository-UULQAGO4.js.map} +0 -0
- /package/dist/{worker-4LZGRHDA.js.map → worker-3QX7LG62.js.map} +0 -0
|
@@ -50,13 +50,14 @@ function renderInstallTerminal(options) {
|
|
|
50
50
|
"1/1 install surfaces ready",
|
|
51
51
|
colorize("Newest: any approved connection read can become an indexed Memory snapshot in one call. OAuth stays tenant-isolated and provider content is redacted and marked untrusted.", "lime", color),
|
|
52
52
|
"",
|
|
53
|
-
`${colorize("Tools", "cyan", color)} ${colorize("(
|
|
53
|
+
`${colorize("Tools", "cyan", color)} ${colorize("(220 MCP tools)", "muted", color)}`,
|
|
54
54
|
toolRow("search", ["harvest_paa", "search_serp", "maps_search", "maps_place_intel"], color),
|
|
55
55
|
toolRow("extract", ["extract_url", "map_site_urls", "extract_site", "audit_site", "directory_workflow"], color),
|
|
56
56
|
toolRow("build", ["create_editorial_reading_room", "rank_tracker_workflow", "portable HTML"], color),
|
|
57
57
|
toolRow("media", ["youtube_harvest", "youtube_transcribe", "facebook_ad_search", "facebook_page_intel", "facebook_ad_transcribe", "facebook_video_transcribe", "instagram_profile_content", "instagram_media_download", "reddit_thread"], color),
|
|
58
58
|
toolRow("browser", ["browser_open", "browser_profile_connect", "browser_profile_list", "browser_close", "browser_screenshot", "browser_read", "browser_locate", "browser_replay_mark", "browser_replay_annotate"], color),
|
|
59
59
|
toolRow("connect", ["list_service_connections", "describe_service_connection_tool", "import_service_connection_to_memory", "export_connected_service_data", "renew_connected_data_download", "read_service_connection", "call_service_connection_action"], color),
|
|
60
|
+
toolRow("commons", ["commons_search_entities", "commons_prepare_entity", "commons_submit_entity", "commons_prepare_publication", "commons_claim_publication", "commons_publish_editorial", "commons_get_publication"], color),
|
|
60
61
|
toolRow("account", ["credits_info", "reports", "MCP resources"], color),
|
|
61
62
|
toolRow("memory", ["memory-put", "memory-get", "memory-search", "list-vaults", "record-fact", "list-scheduled-actions"], color),
|
|
62
63
|
`${colorize("Workflows", "cyan", color)} ${colorize("(MCP + CLI + API)", "muted", color)}`,
|
|
@@ -105,4 +106,4 @@ function renderInstallTerminal(options) {
|
|
|
105
106
|
export {
|
|
106
107
|
renderInstallTerminal
|
|
107
108
|
};
|
|
108
|
-
//# sourceMappingURL=chunk-
|
|
109
|
+
//# sourceMappingURL=chunk-QSUGPYGQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/install-terminal.ts"],"sourcesContent":["export interface InstallTerminalOptions {\n color?: boolean\n version: string\n apiKeyConfigured?: boolean\n}\n\ntype Tone = 'cyan' | 'lime' | 'amber' | 'red' | 'muted' | 'bold'\n\nconst CODES: Record<Tone | 'reset', string> = {\n reset: '\\x1b[0m',\n cyan: '\\x1b[36m',\n lime: '\\x1b[32m',\n amber: '\\x1b[33m',\n red: '\\x1b[31m',\n muted: '\\x1b[90m',\n bold: '\\x1b[1m',\n}\n\nfunction colorize(value: string, tone: Tone, enabled: boolean): string {\n if (!enabled) return value\n return `${CODES[tone]}${value}${CODES.reset}`\n}\n\nfunction toolRow(label: string, tools: string[], enabled: boolean): string {\n const padded = label.padEnd(9, ' ')\n return ` ${colorize(padded, 'muted', enabled)} ${tools.join(colorize(' . ', 'muted', enabled))}`\n}\n\nexport function renderInstallTerminal(options: InstallTerminalOptions): string {\n const color = options.color ?? true\n const apiKeyValue = options.apiKeyConfigured ? '$MCP_SCRAPER_API_KEY' : 'sk_live_your_key'\n const ascii = String.raw`\n __ __ ____ ____ \n| \\/ |/ ___| _ \\\n| |\\/| | | | |_) |\n| | | | |___| __/\n|_| |_|\\____|_|\n\n ____ ____ ____ _ ____ _____ ____\n/ ___| / ___| _ \\ / \\ | _ \\| ____| _ \\\n\\___ \\| | | |_) | / _ \\ | |_) | _| | |_) |\n ___) | |___| _ < / ___ \\| __/| |___| _ <\n|____/ \\____|_| \\_\\/_/ \\_\\_| |_____|_| \\_\\\n`\n\n const claudeCommand = [\n `MCP_SCRAPER_API_KEY=${apiKeyValue} npx -y -p mcp-scraper@latest \\\\`,\n ' mcp-scraper-cli agent install claude --apply',\n ].join('\\n')\n\n const codexConfig = [\n '[mcp_servers.mcp-scraper]',\n 'command = \"npx\"',\n 'args = [\"-y\", \"-p\", \"mcp-scraper@latest\", \"mcp-scraper\"]',\n `env = { MCP_SCRAPER_API_KEY = \"${apiKeyValue}\" }`,\n ].join('\\n')\n\n return [\n colorize(`mcp-scraper v${options.version}`, 'bold', color),\n colorize('> mcp-scraper-install', 'muted', color),\n colorize(ascii, 'amber', color),\n `${colorize('MCP Scraper Agent', 'cyan', color)} . v${options.version} . mcpscraper.dev`,\n '1/1 install surfaces ready',\n colorize('Newest: any approved connection read can become an indexed Memory snapshot in one call. OAuth stays tenant-isolated and provider content is redacted and marked untrusted.', 'lime', color),\n '',\n `${colorize('Tools', 'cyan', color)} ${colorize('(220 MCP tools)', 'muted', color)}`,\n toolRow('search', ['harvest_paa', 'search_serp', 'maps_search', 'maps_place_intel'], color),\n toolRow('extract', ['extract_url', 'map_site_urls', 'extract_site', 'audit_site', 'directory_workflow'], color),\n toolRow('build', ['create_editorial_reading_room', 'rank_tracker_workflow', 'portable HTML'], color),\n toolRow('media', ['youtube_harvest', 'youtube_transcribe', 'facebook_ad_search', 'facebook_page_intel', 'facebook_ad_transcribe', 'facebook_video_transcribe', 'instagram_profile_content', 'instagram_media_download', 'reddit_thread'], color),\n toolRow('browser', ['browser_open', 'browser_profile_connect', 'browser_profile_list', 'browser_close', 'browser_screenshot', 'browser_read', 'browser_locate', 'browser_replay_mark', 'browser_replay_annotate'], color),\n toolRow('connect', ['list_service_connections', 'describe_service_connection_tool', 'import_service_connection_to_memory', 'export_connected_service_data', 'renew_connected_data_download', 'read_service_connection', 'call_service_connection_action'], color),\n toolRow('commons', ['commons_search_entities', 'commons_prepare_entity', 'commons_submit_entity', 'commons_prepare_publication', 'commons_claim_publication', 'commons_publish_editorial', 'commons_get_publication'], color),\n toolRow('account', ['credits_info', 'reports', 'MCP resources'], color),\n toolRow('memory', ['memory-put', 'memory-get', 'memory-search', 'list-vaults', 'record-fact', 'list-scheduled-actions'], color),\n `${colorize('Workflows', 'cyan', color)} ${colorize('(MCP + CLI + API)', 'muted', color)}`,\n toolRow('route', ['workflow_list', 'workflow_suggest', 'workflow_run', 'workflow_step', 'workflow_status', 'workflow_artifact_read'], color),\n toolRow('seo', ['directory', 'agent-packet', 'competitive audit', 'map/serp comparison', 'PAA/AIO briefs', 'scheduled runs'], color),\n '',\n colorize('Usage tips:', 'amber', color),\n 'Run mcp-scraper-install for this visible card. Run mcp-scraper-cli for setup utilities and subcommands.',\n 'Run mcp-scraper in a human terminal to print this card; MCP clients get the same command as a silent stdio server.',\n 'Explicit card command: npx -y -p mcp-scraper@latest mcp-scraper-install',\n 'Hosted browser sessions use direct/no-proxy egress by default.',\n 'Customer auth setup: run browser_profile_connect, send the watch_url, let the user sign in, then call browser_profile_list until AUTHENTICATED.',\n 'Connected account ranges: call export_connected_service_data once. It handles Gmail, Calendar, Zoom, and Resend pagination; do not loop read_service_connection over individual records.',\n 'Connected account RAG: call import_service_connection_to_memory for one bounded approved read. It writes a redacted, untrusted snapshot to a stable Memory path and embeds it for search.',\n 'Stack logins / reconnect: run browser_profile_connect again with the same profile name and another domain to add accounts or refresh a login.',\n 'Start with workflow_suggest for broad jobs like market analysis, ICP research, CRO audits, brand briefs, content gaps, and AI visibility.',\n 'For MCP clients, use mcp-scraper so one install can mix SERP, Maps, browser, reports, and saved MCP resources.',\n 'If you hit the concurrency limit, add an extra slot for $5/month with mcp-scraper-cli billing concurrency checkout.',\n '',\n `${colorize('Ready.', 'lime', color)} Install the combined MCP server with one command:`,\n '',\n colorize('Setup doctor', 'amber', color),\n 'npx -y -p mcp-scraper@latest mcp-scraper-cli doctor',\n '',\n colorize('Hosted profile setup', 'amber', color),\n 'In your MCP client, call browser_profile_connect with email=\"seo@example.com\" and domain=\"chatgpt.com\".',\n 'Give the returned watch_url to the user. After they sign in, call browser_profile_list, then browser_open with the returned profile. Add more logins by calling browser_profile_connect again with the same profile and a new domain.',\n '',\n colorize('Claude Code one-command setup', 'amber', color),\n claudeCommand,\n 'Then fully exit Claude Code and open a new Claude terminal. Check with: claude mcp list',\n '',\n colorize('Codex config', 'amber', color),\n codexConfig,\n '',\n colorize('Claude Desktop Extension', 'amber', color),\n 'Download: https://mcpscraper.dev/downloads/mcp-scraper.mcpb',\n '',\n colorize('Safety note:', 'muted', color),\n 'mcp-scraper prints this card only when stdin/stdout are an interactive TTY. In MCP clients it writes only JSON-RPC to stdout.',\n 'Use --stdio or MCP_SCRAPER_FORCE_STDIO=1 to force server mode from a terminal.',\n '',\n ].join('\\n')\n}\n"],"mappings":";AAQA,IAAM,QAAwC;AAAA,EAC5C,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,KAAK;AAAA,EACL,OAAO;AAAA,EACP,MAAM;AACR;AAEA,SAAS,SAAS,OAAe,MAAY,SAA0B;AACrE,MAAI,CAAC,QAAS,QAAO;AACrB,SAAO,GAAG,MAAM,IAAI,CAAC,GAAG,KAAK,GAAG,MAAM,KAAK;AAC7C;AAEA,SAAS,QAAQ,OAAe,OAAiB,SAA0B;AACzE,QAAM,SAAS,MAAM,OAAO,GAAG,GAAG;AAClC,SAAO,KAAK,SAAS,QAAQ,SAAS,OAAO,CAAC,IAAI,MAAM,KAAK,SAAS,SAAS,SAAS,OAAO,CAAC,CAAC;AACnG;AAEO,SAAS,sBAAsB,SAAyC;AAC7E,QAAM,QAAQ,QAAQ,SAAS;AAC/B,QAAM,cAAc,QAAQ,mBAAmB,yBAAyB;AACxE,QAAM,QAAQ,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcrB,QAAM,gBAAgB;AAAA,IACpB,uBAAuB,WAAW;AAAA,IAClC;AAAA,EACF,EAAE,KAAK,IAAI;AAEX,QAAM,cAAc;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA,kCAAkC,WAAW;AAAA,EAC/C,EAAE,KAAK,IAAI;AAEX,SAAO;AAAA,IACL,SAAS,gBAAgB,QAAQ,OAAO,IAAI,QAAQ,KAAK;AAAA,IACzD,SAAS,yBAAyB,SAAS,KAAK;AAAA,IAChD,SAAS,OAAO,SAAS,KAAK;AAAA,IAC9B,GAAG,SAAS,qBAAqB,QAAQ,KAAK,CAAC,SAAS,QAAQ,OAAO;AAAA,IACvE;AAAA,IACA,SAAS,8KAA8K,QAAQ,KAAK;AAAA,IACpM;AAAA,IACA,GAAG,SAAS,SAAS,QAAQ,KAAK,CAAC,KAAK,SAAS,mBAAmB,SAAS,KAAK,CAAC;AAAA,IACnF,QAAQ,UAAU,CAAC,eAAe,eAAe,eAAe,kBAAkB,GAAG,KAAK;AAAA,IAC1F,QAAQ,WAAW,CAAC,eAAe,iBAAiB,gBAAgB,cAAc,oBAAoB,GAAG,KAAK;AAAA,IAC9G,QAAQ,SAAS,CAAC,iCAAiC,yBAAyB,eAAe,GAAG,KAAK;AAAA,IACnG,QAAQ,SAAS,CAAC,mBAAmB,sBAAsB,sBAAsB,uBAAuB,0BAA0B,6BAA6B,6BAA6B,4BAA4B,eAAe,GAAG,KAAK;AAAA,IAC/O,QAAQ,WAAW,CAAC,gBAAgB,2BAA2B,wBAAwB,iBAAiB,sBAAsB,gBAAgB,kBAAkB,uBAAuB,yBAAyB,GAAG,KAAK;AAAA,IACxN,QAAQ,WAAW,CAAC,4BAA4B,oCAAoC,uCAAuC,iCAAiC,iCAAiC,2BAA2B,gCAAgC,GAAG,KAAK;AAAA,IAChQ,QAAQ,WAAW,CAAC,2BAA2B,0BAA0B,yBAAyB,+BAA+B,6BAA6B,6BAA6B,yBAAyB,GAAG,KAAK;AAAA,IAC5N,QAAQ,WAAW,CAAC,gBAAgB,WAAW,eAAe,GAAG,KAAK;AAAA,IACtE,QAAQ,UAAU,CAAC,cAAc,cAAc,iBAAiB,eAAe,eAAe,wBAAwB,GAAG,KAAK;AAAA,IAC9H,GAAG,SAAS,aAAa,QAAQ,KAAK,CAAC,KAAK,SAAS,qBAAqB,SAAS,KAAK,CAAC;AAAA,IACzF,QAAQ,SAAS,CAAC,iBAAiB,oBAAoB,gBAAgB,iBAAiB,mBAAmB,wBAAwB,GAAG,KAAK;AAAA,IAC3I,QAAQ,OAAO,CAAC,aAAa,gBAAgB,qBAAqB,uBAAuB,kBAAkB,gBAAgB,GAAG,KAAK;AAAA,IACnI;AAAA,IACA,SAAS,eAAe,SAAS,KAAK;AAAA,IACtC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG,SAAS,UAAU,QAAQ,KAAK,CAAC;AAAA,IACpC;AAAA,IACA,SAAS,gBAAgB,SAAS,KAAK;AAAA,IACvC;AAAA,IACA;AAAA,IACA,SAAS,wBAAwB,SAAS,KAAK;AAAA,IAC/C;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,iCAAiC,SAAS,KAAK;AAAA,IACxD;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,gBAAgB,SAAS,KAAK;AAAA,IACvC;AAAA,IACA;AAAA,IACA,SAAS,4BAA4B,SAAS,KAAK;AAAA,IACnD;AAAA,IACA;AAAA,IACA,SAAS,gBAAgB,SAAS,KAAK;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,EACF,EAAE,KAAK,IAAI;AACb;","names":[]}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-G3P3ZDB4.js";
|
|
4
4
|
import {
|
|
5
5
|
getDb
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-5S6LYQQO.js";
|
|
7
7
|
|
|
8
8
|
// src/api/location-data-repository.ts
|
|
9
9
|
import { createHash, randomUUID } from "crypto";
|
|
@@ -681,4 +681,4 @@ export {
|
|
|
681
681
|
importHostedCensusPlacesCsv,
|
|
682
682
|
queryHostedLocationMarkets
|
|
683
683
|
};
|
|
684
|
-
//# sourceMappingURL=chunk-
|
|
684
|
+
//# sourceMappingURL=chunk-TV6KPZ6J.js.map
|
|
@@ -18,10 +18,10 @@ import {
|
|
|
18
18
|
browserServiceProfileSaveChanges,
|
|
19
19
|
recordVendorUsage,
|
|
20
20
|
vendorCostUsd
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-IWYYZXBR.js";
|
|
22
22
|
import {
|
|
23
23
|
PACKAGE_VERSION
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-H4NWAF5B.js";
|
|
25
25
|
import {
|
|
26
26
|
MC_PER_CREDIT
|
|
27
27
|
} from "./chunk-SOEYDWJU.js";
|
|
@@ -385,6 +385,18 @@ seam is noted so you can chain them.
|
|
|
385
385
|
Use saved filters when a person wants their MCP to operate inside a reading room, trail, source scope,
|
|
386
386
|
category, tag bundle, media constraint, or other personalized subset of the shared Commons graph.
|
|
387
387
|
|
|
388
|
+
## Transparent Commons user publications
|
|
389
|
+
- A user-owned editorial publication is separate from the neutral public wiki. Start with
|
|
390
|
+
**commons_prepare_publication** to normalize the requested subdomain, check availability, and read the live
|
|
391
|
+
ownership contract. Then call **commons_validate_publication** with operation \`claim\` before
|
|
392
|
+
**commons_claim_publication**.
|
|
393
|
+
- Each account may claim one stable name at \`https://{name}.transparent-commons.cc\`. Claims require an
|
|
394
|
+
idempotency key and never publish content by themselves.
|
|
395
|
+
- To publish, use **editorial_reading_room_guide** when needed, research and author the complete source-grounded
|
|
396
|
+
edition, validate it with **commons_validate_publication** operation \`publish\`, then call
|
|
397
|
+
**commons_publish_editorial**. The publish result returns the permanent publication, archive, and edition URLs.
|
|
398
|
+
- Use **commons_get_publication** to recover the caller's publication and current edition revisions. Existing
|
|
399
|
+
edition edits require the returned baseRevision. Only the account that claimed the subdomain can publish to it.
|
|
388
400
|
|
|
389
401
|
## Google Maps
|
|
390
402
|
- Find multiple places/competitors/prospects -> **maps_search** (returns \`results[]\` with name,
|
|
@@ -4315,13 +4327,33 @@ var ScheduledArtifactSelectionSchema = z.discriminatedUnion("mode", [
|
|
|
4315
4327
|
templateVersionId: z.string().uuid()
|
|
4316
4328
|
}).strict()
|
|
4317
4329
|
]);
|
|
4318
|
-
var
|
|
4330
|
+
var EditorialArtifactTemplateConfigSchema = z.object({
|
|
4319
4331
|
theme: z.enum(["paper", "ink", "warm"]),
|
|
4320
4332
|
density: z.enum(["comfortable", "compact"]),
|
|
4321
4333
|
showSourceRail: z.boolean(),
|
|
4322
4334
|
showGeneratedAt: z.boolean(),
|
|
4323
4335
|
brandName: z.string().trim().min(1).max(80).optional()
|
|
4324
4336
|
}).strict();
|
|
4337
|
+
var PersonalAuthorityFeatureFlagsSchema = z.object({
|
|
4338
|
+
navigation: z.boolean(),
|
|
4339
|
+
socialLinks: z.boolean(),
|
|
4340
|
+
authority: z.boolean(),
|
|
4341
|
+
consultation: z.boolean(),
|
|
4342
|
+
learning: z.boolean(),
|
|
4343
|
+
services: z.boolean(),
|
|
4344
|
+
proof: z.boolean(),
|
|
4345
|
+
finalCta: z.boolean()
|
|
4346
|
+
}).strict();
|
|
4347
|
+
var PersonalAuthorityTemplateConfigSchema = z.object({
|
|
4348
|
+
theme: z.enum(["blue", "slate", "monochrome"]),
|
|
4349
|
+
showGeneratedAt: z.boolean(),
|
|
4350
|
+
brandName: z.string().trim().min(1).max(80).optional(),
|
|
4351
|
+
featureFlags: PersonalAuthorityFeatureFlagsSchema
|
|
4352
|
+
}).strict();
|
|
4353
|
+
var ArtifactTemplateConfigSchema = z.union([
|
|
4354
|
+
EditorialArtifactTemplateConfigSchema,
|
|
4355
|
+
PersonalAuthorityTemplateConfigSchema
|
|
4356
|
+
]);
|
|
4325
4357
|
var EditorialReadingRoomV1InputSchema = z.object({
|
|
4326
4358
|
title: z.string().trim().min(1).max(300),
|
|
4327
4359
|
dek: z.string().trim().max(1e3).optional(),
|
|
@@ -4354,25 +4386,104 @@ var EditorialReadingRoomV1InputSchema = z.object({
|
|
|
4354
4386
|
});
|
|
4355
4387
|
}
|
|
4356
4388
|
});
|
|
4357
|
-
var
|
|
4358
|
-
|
|
4389
|
+
var PersonalAuthorityActionSchema = z.object({
|
|
4390
|
+
label: z.string().trim().min(1).max(120),
|
|
4391
|
+
href: z.string().trim().min(1).max(2e3)
|
|
4392
|
+
}).strict();
|
|
4393
|
+
var PersonalAuthorityV1InputSchema = z.object({
|
|
4394
|
+
name: z.string().trim().min(1).max(160),
|
|
4395
|
+
professionalTitle: z.string().trim().min(1).max(300),
|
|
4396
|
+
summary: z.string().trim().min(1).max(1500),
|
|
4397
|
+
location: z.string().trim().max(160).optional(),
|
|
4398
|
+
email: z.string().trim().email().max(320).optional(),
|
|
4399
|
+
phone: z.string().trim().max(80).optional(),
|
|
4400
|
+
primaryAction: PersonalAuthorityActionSchema,
|
|
4401
|
+
secondaryAction: PersonalAuthorityActionSchema.optional(),
|
|
4402
|
+
socialLinks: z.array(z.object({
|
|
4403
|
+
label: z.string().trim().min(1).max(60),
|
|
4404
|
+
href: z.string().trim().min(1).max(2e3)
|
|
4405
|
+
}).strict()).max(8).default([]),
|
|
4406
|
+
authority: z.object({
|
|
4407
|
+
heading: z.string().trim().min(1).max(500),
|
|
4408
|
+
paragraphs: z.array(z.string().trim().min(1).max(2e3)).min(1).max(6)
|
|
4409
|
+
}).strict().optional(),
|
|
4410
|
+
consultation: z.object({
|
|
4411
|
+
eyebrow: z.string().trim().max(120).optional(),
|
|
4412
|
+
heading: z.string().trim().min(1).max(400),
|
|
4413
|
+
summary: z.string().trim().min(1).max(1e3),
|
|
4414
|
+
action: PersonalAuthorityActionSchema
|
|
4415
|
+
}).strict().optional(),
|
|
4416
|
+
learning: z.object({
|
|
4417
|
+
heading: z.string().trim().min(1).max(400),
|
|
4418
|
+
summary: z.string().trim().max(1e3).optional(),
|
|
4419
|
+
topics: z.array(z.object({
|
|
4420
|
+
title: z.string().trim().min(1).max(160),
|
|
4421
|
+
headline: z.string().trim().min(1).max(300),
|
|
4422
|
+
summary: z.string().trim().min(1).max(1500),
|
|
4423
|
+
href: z.string().trim().min(1).max(2e3).optional()
|
|
4424
|
+
}).strict()).min(1).max(12)
|
|
4425
|
+
}).strict().optional(),
|
|
4426
|
+
services: z.object({
|
|
4427
|
+
heading: z.string().trim().min(1).max(400),
|
|
4428
|
+
summary: z.string().trim().max(1e3).optional(),
|
|
4429
|
+
offers: z.array(z.object({
|
|
4430
|
+
title: z.string().trim().min(1).max(160),
|
|
4431
|
+
description: z.string().trim().min(1).max(1500),
|
|
4432
|
+
action: PersonalAuthorityActionSchema.optional()
|
|
4433
|
+
}).strict()).min(1).max(6)
|
|
4434
|
+
}).strict().optional(),
|
|
4435
|
+
proof: z.object({
|
|
4436
|
+
heading: z.string().trim().min(1).max(400),
|
|
4437
|
+
summary: z.string().trim().max(1e3).optional(),
|
|
4438
|
+
testimonials: z.array(z.object({
|
|
4439
|
+
quote: z.string().trim().min(1).max(1500),
|
|
4440
|
+
person: z.string().trim().min(1).max(160),
|
|
4441
|
+
role: z.string().trim().max(200).optional()
|
|
4442
|
+
}).strict()).min(1).max(12)
|
|
4443
|
+
}).strict().optional(),
|
|
4444
|
+
finalCta: z.object({
|
|
4445
|
+
eyebrow: z.string().trim().max(120).optional(),
|
|
4446
|
+
heading: z.string().trim().min(1).max(400),
|
|
4447
|
+
summary: z.string().trim().max(1e3).optional(),
|
|
4448
|
+
action: PersonalAuthorityActionSchema
|
|
4449
|
+
}).strict().optional()
|
|
4450
|
+
}).strict();
|
|
4451
|
+
var TemplateIdentityFields = {
|
|
4359
4452
|
name: z.string().trim().min(1).max(120),
|
|
4360
4453
|
description: z.string().trim().max(500).default(""),
|
|
4361
|
-
config: ArtifactTemplateConfigSchema,
|
|
4362
4454
|
authoringInstructions: z.string().trim().max(4e3)
|
|
4363
|
-
}
|
|
4364
|
-
var
|
|
4365
|
-
|
|
4455
|
+
};
|
|
4456
|
+
var CreateArtifactTemplateInputSchema = z.discriminatedUnion("presetKey", [
|
|
4457
|
+
z.object({
|
|
4458
|
+
presetKey: z.literal("editorial_reading_room_v1"),
|
|
4459
|
+
...TemplateIdentityFields,
|
|
4460
|
+
config: EditorialArtifactTemplateConfigSchema
|
|
4461
|
+
}).strict(),
|
|
4462
|
+
z.object({
|
|
4463
|
+
presetKey: z.literal("personal_authority_v1"),
|
|
4464
|
+
...TemplateIdentityFields,
|
|
4465
|
+
config: PersonalAuthorityTemplateConfigSchema
|
|
4466
|
+
}).strict()
|
|
4467
|
+
]);
|
|
4468
|
+
var UpdateArtifactTemplateInputSchema = z.object({
|
|
4469
|
+
name: TemplateIdentityFields.name.optional(),
|
|
4470
|
+
description: z.string().trim().max(500).optional(),
|
|
4471
|
+
config: ArtifactTemplateConfigSchema.optional(),
|
|
4472
|
+
authoringInstructions: TemplateIdentityFields.authoringInstructions.optional()
|
|
4473
|
+
}).strict().refine((input) => Object.keys(input).length > 0, "At least one field is required");
|
|
4474
|
+
var ArtifactTemplateVersionBase = {
|
|
4366
4475
|
templateVersionId: z.string().uuid(),
|
|
4367
4476
|
templateId: z.string().uuid(),
|
|
4368
4477
|
version: z.number().int().positive(),
|
|
4369
|
-
rendererKey: z.literal("editorial_reading_room_v1"),
|
|
4370
4478
|
rendererVersion: z.literal(1),
|
|
4371
4479
|
inputContractVersion: z.literal(1),
|
|
4372
|
-
config: ArtifactTemplateConfigSchema,
|
|
4373
4480
|
authoringInstructions: z.string().max(4e3),
|
|
4374
4481
|
createdAt: z.string().datetime()
|
|
4375
|
-
}
|
|
4482
|
+
};
|
|
4483
|
+
var ArtifactTemplateVersionSchema = z.discriminatedUnion("rendererKey", [
|
|
4484
|
+
z.object({ ...ArtifactTemplateVersionBase, rendererKey: z.literal("editorial_reading_room_v1"), config: EditorialArtifactTemplateConfigSchema }).strict(),
|
|
4485
|
+
z.object({ ...ArtifactTemplateVersionBase, rendererKey: z.literal("personal_authority_v1"), config: PersonalAuthorityTemplateConfigSchema }).strict()
|
|
4486
|
+
]);
|
|
4376
4487
|
var ArtifactTemplateSchema = z.object({
|
|
4377
4488
|
templateId: z.string().uuid(),
|
|
4378
4489
|
name: z.string().min(1).max(120),
|
|
@@ -4387,9 +4498,15 @@ var ArtifactTemplateSchema = z.object({
|
|
|
4387
4498
|
var ListArtifactTemplatesResponseSchema = z.object({
|
|
4388
4499
|
ok: z.literal(true),
|
|
4389
4500
|
presets: z.array(z.object({
|
|
4390
|
-
presetKey: z.
|
|
4501
|
+
presetKey: z.enum(["editorial_reading_room_v1", "personal_authority_v1"]),
|
|
4391
4502
|
name: z.string(),
|
|
4392
4503
|
description: z.string(),
|
|
4504
|
+
mark: z.string().min(1).max(4),
|
|
4505
|
+
featureFlags: z.array(z.object({
|
|
4506
|
+
key: z.string().min(1),
|
|
4507
|
+
label: z.string().min(1),
|
|
4508
|
+
description: z.string().min(1)
|
|
4509
|
+
}).strict()),
|
|
4393
4510
|
defaultConfig: ArtifactTemplateConfigSchema
|
|
4394
4511
|
}).strict()),
|
|
4395
4512
|
templates: z.array(ArtifactTemplateSchema)
|
|
@@ -4404,7 +4521,7 @@ var ScheduledRunArtifactOutputSchema = z.object({
|
|
|
4404
4521
|
artifactId: z.string().min(1).max(1e3),
|
|
4405
4522
|
templateId: z.string().uuid(),
|
|
4406
4523
|
templateVersionId: z.string().uuid(),
|
|
4407
|
-
rendererKey: z.
|
|
4524
|
+
rendererKey: z.enum(["editorial_reading_room_v1", "personal_authority_v1"]),
|
|
4408
4525
|
rendererVersion: z.literal(1),
|
|
4409
4526
|
mimeType: z.literal("text/html"),
|
|
4410
4527
|
title: z.string().min(1).max(300),
|
|
@@ -4456,18 +4573,29 @@ var GetScheduledRunResponseSchema = z.object({
|
|
|
4456
4573
|
ok: z.literal(true),
|
|
4457
4574
|
run: ScheduledRunResultSchema
|
|
4458
4575
|
}).strict();
|
|
4459
|
-
var
|
|
4576
|
+
var InternalScheduledArtifactRenderRequestBase = {
|
|
4460
4577
|
identity: z.string().min(1).max(320),
|
|
4461
4578
|
ownerId: z.string().regex(/^[a-f0-9]{24}$/),
|
|
4462
4579
|
runId: z.string().min(1).max(200),
|
|
4463
4580
|
scheduleId: z.string().uuid(),
|
|
4464
4581
|
templateId: z.string().uuid(),
|
|
4465
4582
|
templateVersionId: z.string().uuid(),
|
|
4466
|
-
|
|
4467
|
-
|
|
4468
|
-
|
|
4469
|
-
|
|
4470
|
-
|
|
4583
|
+
rendererVersion: z.literal(1)
|
|
4584
|
+
};
|
|
4585
|
+
var InternalScheduledArtifactRenderRequestSchema = z.discriminatedUnion("rendererKey", [
|
|
4586
|
+
z.object({
|
|
4587
|
+
...InternalScheduledArtifactRenderRequestBase,
|
|
4588
|
+
rendererKey: z.literal("editorial_reading_room_v1"),
|
|
4589
|
+
config: EditorialArtifactTemplateConfigSchema,
|
|
4590
|
+
input: EditorialReadingRoomV1InputSchema
|
|
4591
|
+
}).strict(),
|
|
4592
|
+
z.object({
|
|
4593
|
+
...InternalScheduledArtifactRenderRequestBase,
|
|
4594
|
+
rendererKey: z.literal("personal_authority_v1"),
|
|
4595
|
+
config: PersonalAuthorityTemplateConfigSchema,
|
|
4596
|
+
input: PersonalAuthorityV1InputSchema
|
|
4597
|
+
}).strict()
|
|
4598
|
+
]);
|
|
4471
4599
|
var CreateScheduledRunViewLinkInputSchema = z.object({
|
|
4472
4600
|
artifactId: z.string().min(1).max(1e3),
|
|
4473
4601
|
expiresInDays: z.number().int().min(1).max(30).default(7)
|
|
@@ -4490,10 +4618,15 @@ var ApiErrorResponseSchema = z.object({
|
|
|
4490
4618
|
]),
|
|
4491
4619
|
requestId: z.string().max(200).optional()
|
|
4492
4620
|
}).strict();
|
|
4493
|
-
var
|
|
4621
|
+
var EDITORIAL_READING_ROOM_TEMPLATE_PRESET = {
|
|
4494
4622
|
presetKey: "editorial_reading_room_v1",
|
|
4495
4623
|
name: "Editorial Reading Room",
|
|
4496
4624
|
description: "A self-contained, source-labelled reading experience for scheduled research and reports.",
|
|
4625
|
+
mark: "Aa",
|
|
4626
|
+
featureFlags: [
|
|
4627
|
+
{ key: "showSourceRail", label: "Source rail", description: "Keep source references visible beside the report." },
|
|
4628
|
+
{ key: "showGeneratedAt", label: "Generated time", description: "Show when the report was rendered." }
|
|
4629
|
+
],
|
|
4497
4630
|
defaultConfig: {
|
|
4498
4631
|
theme: "paper",
|
|
4499
4632
|
density: "comfortable",
|
|
@@ -4501,6 +4634,36 @@ var SCHEDULED_ARTIFACT_TEMPLATE_PRESET = {
|
|
|
4501
4634
|
showGeneratedAt: true
|
|
4502
4635
|
}
|
|
4503
4636
|
};
|
|
4637
|
+
var PERSONAL_AUTHORITY_TEMPLATE_PRESET = {
|
|
4638
|
+
presetKey: "personal_authority_v1",
|
|
4639
|
+
name: "Personal Authority",
|
|
4640
|
+
description: "A flexible person-focused website for practitioners, founders, leaders, authors, coaches, and other professionals.",
|
|
4641
|
+
mark: "M",
|
|
4642
|
+
featureFlags: [
|
|
4643
|
+
{ key: "navigation", label: "Navigation", description: "Show the responsive header and section navigation." },
|
|
4644
|
+
{ key: "socialLinks", label: "Social links", description: "Show professional and media profile links." },
|
|
4645
|
+
{ key: "authority", label: "Experience", description: "Show the background and authority section." },
|
|
4646
|
+
{ key: "consultation", label: "Consultation", description: "Show an early invitation to connect." },
|
|
4647
|
+
{ key: "learning", label: "Ideas and resources", description: "Show educational topics and useful resources." },
|
|
4648
|
+
{ key: "services", label: "Ways to work together", description: "Show services, appointments, or offers." },
|
|
4649
|
+
{ key: "proof", label: "Proof", description: "Show testimonials, outcomes, or affiliations." },
|
|
4650
|
+
{ key: "finalCta", label: "Final invitation", description: "Show the closing contact call to action." }
|
|
4651
|
+
],
|
|
4652
|
+
defaultConfig: {
|
|
4653
|
+
theme: "blue",
|
|
4654
|
+
showGeneratedAt: false,
|
|
4655
|
+
featureFlags: {
|
|
4656
|
+
navigation: true,
|
|
4657
|
+
socialLinks: true,
|
|
4658
|
+
authority: true,
|
|
4659
|
+
consultation: true,
|
|
4660
|
+
learning: true,
|
|
4661
|
+
services: true,
|
|
4662
|
+
proof: true,
|
|
4663
|
+
finalCta: true
|
|
4664
|
+
}
|
|
4665
|
+
}
|
|
4666
|
+
};
|
|
4504
4667
|
|
|
4505
4668
|
// src/api/wayback-schemas.ts
|
|
4506
4669
|
import { z as z2 } from "zod";
|
|
@@ -5253,6 +5416,37 @@ var RenewEditorialReadingRoomDownloadOutputSchema = {
|
|
|
5253
5416
|
downloadUrlExpiresAt: z4.string(),
|
|
5254
5417
|
expiresAt: z4.string()
|
|
5255
5418
|
};
|
|
5419
|
+
var CommonsPublicationSubdomainSchema = z4.string().trim().min(3).max(50).describe("Requested publication name under transparent-commons.cc. The server normalizes spaces to hyphens, rejects reserved names, and enforces one globally unique name per account.");
|
|
5420
|
+
var CommonsPreparePublicationInputSchema = {
|
|
5421
|
+
requestedSubdomain: CommonsPublicationSubdomainSchema,
|
|
5422
|
+
title: z4.string().trim().min(1).max(140).optional().describe("Reader-facing publication title. Omit to derive it from the chosen subdomain."),
|
|
5423
|
+
description: z4.string().trim().max(500).optional().describe("Short description used on the publication archive and discovery surfaces.")
|
|
5424
|
+
};
|
|
5425
|
+
var CommonsValidatePublicationInputSchema = {
|
|
5426
|
+
operation: z4.enum(["claim", "publish"]).describe("Validate either a new name claim or a finished editorial edition without writing."),
|
|
5427
|
+
requestedSubdomain: CommonsPublicationSubdomainSchema.optional().describe("Publication name to validate when operation is claim."),
|
|
5428
|
+
publicationSubdomain: CommonsPublicationSubdomainSchema.optional().describe("Already claimed publication name to validate when operation is publish."),
|
|
5429
|
+
title: z4.string().trim().min(1).max(140).optional(),
|
|
5430
|
+
description: z4.string().trim().max(500).optional(),
|
|
5431
|
+
edition: z4.object(CreateEditorialReadingRoomInputSchema).strict().optional().describe("Complete source-grounded reading-room payload to validate when operation is publish."),
|
|
5432
|
+
editionSlug: z4.string().trim().regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/).max(80).optional().describe("Stable public edition slug. Defaults to edition.site.slug."),
|
|
5433
|
+
baseRevision: z4.number().int().positive().optional().describe("Current edition revision when validating an edit.")
|
|
5434
|
+
};
|
|
5435
|
+
var CommonsClaimPublicationInputSchema = {
|
|
5436
|
+
...CommonsPreparePublicationInputSchema,
|
|
5437
|
+
idempotencyKey: z4.string().trim().min(8).max(200).describe("Unique key for this intended claim. Reuse it only when retrying the same claim.")
|
|
5438
|
+
};
|
|
5439
|
+
var CommonsPublishEditorialInputSchema = {
|
|
5440
|
+
publicationSubdomain: CommonsPublicationSubdomainSchema.describe("Publication owned by the authenticated account."),
|
|
5441
|
+
editionSlug: z4.string().trim().regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/).max(80).optional().describe("Stable public edition slug. Defaults to site.slug."),
|
|
5442
|
+
idempotencyKey: z4.string().trim().min(8).max(200).describe("Unique key for this intended publish. Reuse it only when retrying the same revision."),
|
|
5443
|
+
baseRevision: z4.number().int().positive().optional().describe("Required when revising an existing edition; use the current revision from commons_get_publication."),
|
|
5444
|
+
...CreateEditorialReadingRoomInputSchema
|
|
5445
|
+
};
|
|
5446
|
+
var CommonsGetPublicationInputSchema = {
|
|
5447
|
+
subdomain: CommonsPublicationSubdomainSchema.optional().describe("Public publication name to inspect. Omit to return the publication owned by the authenticated account."),
|
|
5448
|
+
includeEditions: z4.boolean().default(true).describe("Include the latest revision of every published edition.")
|
|
5449
|
+
};
|
|
5256
5450
|
var RankTrackerModeSchema = z4.enum(["maps", "organic", "ai_overview", "paa"]);
|
|
5257
5451
|
var RankTrackerBlueprintInputSchema = {
|
|
5258
5452
|
projectName: z4.string().min(1).optional().describe("Optional name for the rank tracker project, client, or campaign."),
|
|
@@ -8029,6 +8223,41 @@ function registerPaaExtractorMcpTools(server, executor, options = {}) {
|
|
|
8029
8223
|
openWorldHint: false
|
|
8030
8224
|
}
|
|
8031
8225
|
}, async (input) => executor.commonsListFilters(input));
|
|
8226
|
+
server.registerTool("commons_prepare_publication", {
|
|
8227
|
+
title: "Prepare Transparent Commons Publication",
|
|
8228
|
+
description: "Check and normalize a subscriber-chosen Transparent Commons publication name before any write. Returns name availability, the caller's existing publication, permanent URL shape, ownership rules, and the required validate/claim/publish workflow. This is for a user-owned editorial publication, not a neutral /wiki/ entity.",
|
|
8229
|
+
inputSchema: CommonsPreparePublicationInputSchema,
|
|
8230
|
+
outputSchema: recordOutputSchema("commons_prepare_publication", CommonsGenericOutputSchema),
|
|
8231
|
+
annotations: { title: "Prepare Transparent Commons Publication", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false }
|
|
8232
|
+
}, async (input) => executor.commonsPreparePublication(input));
|
|
8233
|
+
server.registerTool("commons_validate_publication", {
|
|
8234
|
+
title: "Validate Transparent Commons Publication",
|
|
8235
|
+
description: "Validate a publication name claim or a complete source-grounded editorial edition without writing. Use operation claim before commons_claim_publication and operation publish before commons_publish_editorial. This uses the editorial reading-room contract and checks ownership plus revision conflicts.",
|
|
8236
|
+
inputSchema: CommonsValidatePublicationInputSchema,
|
|
8237
|
+
outputSchema: recordOutputSchema("commons_validate_publication", CommonsGenericOutputSchema),
|
|
8238
|
+
annotations: { title: "Validate Transparent Commons Publication", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false }
|
|
8239
|
+
}, async (input) => executor.commonsValidatePublication(input));
|
|
8240
|
+
server.registerTool("commons_claim_publication", {
|
|
8241
|
+
title: "Claim Transparent Commons Publication",
|
|
8242
|
+
description: "Permanently claim one globally unique publication subdomain for the authenticated MCP Scraper account. Call commons_prepare_publication and commons_validate_publication first. This creates public identity state but does not publish an edition. Requires an idempotencyKey; retries with the same intended claim are safe.",
|
|
8243
|
+
inputSchema: CommonsClaimPublicationInputSchema,
|
|
8244
|
+
outputSchema: recordOutputSchema("commons_claim_publication", CommonsGenericOutputSchema),
|
|
8245
|
+
annotations: { title: "Claim Transparent Commons Publication", readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true }
|
|
8246
|
+
}, async (input) => executor.commonsClaimPublication(input));
|
|
8247
|
+
server.registerTool("commons_publish_editorial", {
|
|
8248
|
+
title: "Publish Transparent Commons Editorial Edition",
|
|
8249
|
+
description: "Publish a fully authored editorial reading-room edition to the caller-owned Transparent Commons subdomain and return permanent root, archive, and edition URLs. The calling AI must research and author the source-grounded edition first; this tool validates, renders, and persists it. For an existing edition, pass its current baseRevision. Requires an idempotencyKey; this is not the neutral wiki write tool.",
|
|
8250
|
+
inputSchema: CommonsPublishEditorialInputSchema,
|
|
8251
|
+
outputSchema: recordOutputSchema("commons_publish_editorial", CommonsGenericOutputSchema),
|
|
8252
|
+
annotations: { title: "Publish Transparent Commons Editorial Edition", readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true }
|
|
8253
|
+
}, async (input) => executor.commonsPublishEditorial(input));
|
|
8254
|
+
server.registerTool("commons_get_publication", {
|
|
8255
|
+
title: "Get Transparent Commons Publication",
|
|
8256
|
+
description: "Read a Transparent Commons publication and its latest edition revisions. Omit subdomain to inspect the caller-owned publication; pass a name to inspect a public publication. Returns the permanent public and archive URLs needed for sharing or later edits.",
|
|
8257
|
+
inputSchema: CommonsGetPublicationInputSchema,
|
|
8258
|
+
outputSchema: recordOutputSchema("commons_get_publication", CommonsGenericOutputSchema),
|
|
8259
|
+
annotations: { title: "Get Transparent Commons Publication", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false }
|
|
8260
|
+
}, async (input) => executor.commonsGetPublication(input));
|
|
8032
8261
|
server.registerTool("directory_workflow", {
|
|
8033
8262
|
title: "Directory Workflow: Markets + Maps",
|
|
8034
8263
|
description: `Start a durable directory/prospecting job: selects US city markets from versioned hosted Census-place data, optionally joins the active hosted ZIP dataset, then runs Google Maps business searches per city. Pass a new idempotencyKey for each intended job and reuse it only when retrying that call. Production does not read server-local location CSVs. Always returns a background jobId; poll with directory_workflow_status. ${fileBehavior("Saves a CSV of results per city.", "Completed jobs return an owner-scoped CSV artifact.")}`,
|
|
@@ -8864,6 +9093,28 @@ var HttpMcpToolExecutor = class {
|
|
|
8864
9093
|
commonsListNeedsLinks(input) {
|
|
8865
9094
|
return this.call("/commons/needs-links/search", input);
|
|
8866
9095
|
}
|
|
9096
|
+
commonsPreparePublication(input) {
|
|
9097
|
+
return this.call("/commons/publications/prepare", input);
|
|
9098
|
+
}
|
|
9099
|
+
commonsValidatePublication(input) {
|
|
9100
|
+
return this.call("/commons/publications/validate", input);
|
|
9101
|
+
}
|
|
9102
|
+
commonsClaimPublication(input) {
|
|
9103
|
+
const { idempotencyKey, ...body } = input;
|
|
9104
|
+
return this.call("/commons/publications/claim", { ...body, idempotencyKey }, this.timeoutMs, "POST", {
|
|
9105
|
+
"Idempotency-Key": `commons-publication-claim-${createHash4("sha256").update(idempotencyKey).digest("hex")}`
|
|
9106
|
+
});
|
|
9107
|
+
}
|
|
9108
|
+
commonsPublishEditorial(input) {
|
|
9109
|
+
const { idempotencyKey, ...body } = input;
|
|
9110
|
+
return this.call("/commons/publications/publish", { ...body, idempotencyKey }, this.timeoutMs, "POST", {
|
|
9111
|
+
"Idempotency-Key": `commons-publication-publish-${createHash4("sha256").update(idempotencyKey).digest("hex")}`
|
|
9112
|
+
});
|
|
9113
|
+
}
|
|
9114
|
+
commonsGetPublication(input) {
|
|
9115
|
+
const query = new URLSearchParams({ includeEditions: String(input.includeEditions ?? true) });
|
|
9116
|
+
return this.getJson(input.subdomain ? `/commons/publications/${encodeURIComponent(input.subdomain)}?${query}` : `/commons/publications/me?${query}`);
|
|
9117
|
+
}
|
|
8867
9118
|
async captureSerpSnapshot(input) {
|
|
8868
9119
|
const fingerprint = createHash4("sha256").update(JSON.stringify(input)).digest("hex");
|
|
8869
9120
|
const now = Date.now();
|
|
@@ -13144,40 +13395,40 @@ function annotations(title, readOnlyHint, destructiveHint = false, idempotentHin
|
|
|
13144
13395
|
}
|
|
13145
13396
|
function registerScheduledResultsMcpTools(server, executor) {
|
|
13146
13397
|
server.registerTool("list_artifact_templates", {
|
|
13147
|
-
title: "List
|
|
13148
|
-
description: "List
|
|
13398
|
+
title: "List Templates",
|
|
13399
|
+
description: "List registered presentation presets and saved immutable template versions. A preset must be saved before an automation can select it.",
|
|
13149
13400
|
inputSchema: z9.object({
|
|
13150
13401
|
status: z9.enum(["active", "archived", "all"]).default("active")
|
|
13151
13402
|
}).strict(),
|
|
13152
13403
|
outputSchema: recordOutputSchema("list_artifact_templates", McpListArtifactTemplatesOutputSchema),
|
|
13153
|
-
annotations: annotations("List
|
|
13404
|
+
annotations: annotations("List Templates", true)
|
|
13154
13405
|
}, (input) => executor.call(
|
|
13155
13406
|
`/artifact-templates?status=${encodeURIComponent(input.status)}`,
|
|
13156
13407
|
ListArtifactTemplatesOutputSchema
|
|
13157
13408
|
));
|
|
13158
13409
|
server.registerTool("get_artifact_template", {
|
|
13159
|
-
title: "Get
|
|
13160
|
-
description: "Read one saved
|
|
13410
|
+
title: "Get Template",
|
|
13411
|
+
description: "Read one saved template, its renderer family, configuration, and immutable version history.",
|
|
13161
13412
|
inputSchema: z9.object({ templateId: TemplateIdSchema }).strict(),
|
|
13162
13413
|
outputSchema: recordOutputSchema("get_artifact_template", McpArtifactTemplateOutputSchema),
|
|
13163
|
-
annotations: annotations("Get
|
|
13414
|
+
annotations: annotations("Get Template", true)
|
|
13164
13415
|
}, (input) => executor.call(
|
|
13165
13416
|
`/artifact-templates/${encodeURIComponent(input.templateId)}`,
|
|
13166
13417
|
ArtifactTemplateOutputSchema
|
|
13167
13418
|
));
|
|
13168
13419
|
server.registerTool("create_artifact_template", {
|
|
13169
|
-
title: "
|
|
13170
|
-
description: "
|
|
13420
|
+
title: "Create Template",
|
|
13421
|
+
description: "Create a user-owned template from a registered preset. Customize supported flags and presentation guidance; arbitrary executable code is not accepted.",
|
|
13171
13422
|
inputSchema: CreateArtifactTemplateInputSchema,
|
|
13172
13423
|
outputSchema: recordOutputSchema("create_artifact_template", McpArtifactTemplateOutputSchema),
|
|
13173
|
-
annotations: annotations("
|
|
13424
|
+
annotations: annotations("Create Template", false)
|
|
13174
13425
|
}, (input) => executor.call("/artifact-templates", ArtifactTemplateOutputSchema, "POST", input));
|
|
13175
13426
|
server.registerTool("update_artifact_template", {
|
|
13176
|
-
title: "
|
|
13177
|
-
description: "Create the next immutable version of a saved
|
|
13427
|
+
title: "Update Template",
|
|
13428
|
+
description: "Create the next immutable version of a saved template. Existing automations remain pinned to their exact prior version until explicitly changed.",
|
|
13178
13429
|
inputSchema: UpdateArtifactTemplateToolInputSchema,
|
|
13179
13430
|
outputSchema: recordOutputSchema("update_artifact_template", McpArtifactTemplateOutputSchema),
|
|
13180
|
-
annotations: annotations("
|
|
13431
|
+
annotations: annotations("Update Template", false)
|
|
13181
13432
|
}, (input) => {
|
|
13182
13433
|
const { templateId, ...body } = input;
|
|
13183
13434
|
UpdateArtifactTemplateInputSchema.parse(body);
|
|
@@ -13189,14 +13440,14 @@ function registerScheduledResultsMcpTools(server, executor) {
|
|
|
13189
13440
|
);
|
|
13190
13441
|
});
|
|
13191
13442
|
server.registerTool("archive_artifact_template", {
|
|
13192
|
-
title: "Archive
|
|
13443
|
+
title: "Archive Template",
|
|
13193
13444
|
description: "Archive or restore a saved template without deleting its immutable versions. Existing pinned automations continue to work.",
|
|
13194
13445
|
inputSchema: z9.object({
|
|
13195
13446
|
templateId: TemplateIdSchema,
|
|
13196
13447
|
archived: z9.boolean()
|
|
13197
13448
|
}).strict(),
|
|
13198
13449
|
outputSchema: recordOutputSchema("archive_artifact_template", McpArtifactTemplateOutputSchema),
|
|
13199
|
-
annotations: annotations("Archive
|
|
13450
|
+
annotations: annotations("Archive Template", false, false, true)
|
|
13200
13451
|
}, (input) => executor.call(
|
|
13201
13452
|
`/artifact-templates/${encodeURIComponent(input.templateId)}/${input.archived ? "archive" : "restore"}`,
|
|
13202
13453
|
ArtifactTemplateOutputSchema,
|
|
@@ -13317,8 +13568,10 @@ export {
|
|
|
13317
13568
|
WaybackTimelineSchema,
|
|
13318
13569
|
WaybackInventoryOptionsSchema,
|
|
13319
13570
|
SERVER_INSTRUCTIONS,
|
|
13320
|
-
|
|
13571
|
+
EditorialArtifactTemplateConfigSchema,
|
|
13572
|
+
PersonalAuthorityTemplateConfigSchema,
|
|
13321
13573
|
EditorialReadingRoomV1InputSchema,
|
|
13574
|
+
PersonalAuthorityV1InputSchema,
|
|
13322
13575
|
CreateArtifactTemplateInputSchema,
|
|
13323
13576
|
UpdateArtifactTemplateInputSchema,
|
|
13324
13577
|
ListScheduledRunsQuerySchema,
|
|
@@ -13327,9 +13580,14 @@ export {
|
|
|
13327
13580
|
CreateScheduledRunViewLinkInputSchema,
|
|
13328
13581
|
PublicScheduledRunTokenSchema,
|
|
13329
13582
|
ApiErrorResponseSchema,
|
|
13330
|
-
|
|
13583
|
+
EDITORIAL_READING_ROOM_TEMPLATE_PRESET,
|
|
13584
|
+
PERSONAL_AUTHORITY_TEMPLATE_PRESET,
|
|
13331
13585
|
CreateEditorialReadingRoomInputSchema,
|
|
13332
13586
|
RenewEditorialReadingRoomDownloadInputSchema,
|
|
13587
|
+
CommonsPreparePublicationInputSchema,
|
|
13588
|
+
CommonsValidatePublicationInputSchema,
|
|
13589
|
+
CommonsClaimPublicationInputSchema,
|
|
13590
|
+
CommonsPublishEditorialInputSchema,
|
|
13333
13591
|
resolveDeploymentProfile,
|
|
13334
13592
|
isLoopbackBaseUrl,
|
|
13335
13593
|
permitsLocalNetworkAccess,
|
|
@@ -13346,4 +13604,4 @@ export {
|
|
|
13346
13604
|
ScheduledResultsMcpExecutor,
|
|
13347
13605
|
registerScheduledResultsMcpTools
|
|
13348
13606
|
};
|
|
13349
|
-
//# sourceMappingURL=chunk-
|
|
13607
|
+
//# sourceMappingURL=chunk-XCGQBGDA.js.map
|