mcp-scraper 0.46.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 +1 -1
- package/dist/bin/api-server.cjs +450 -181
- 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 +1 -1
- package/dist/bin/mcp-scraper-install.cjs.map +1 -1
- package/dist/bin/mcp-scraper-install.js +1 -1
- package/dist/bin/mcp-stdio-server.cjs +149 -33
- package/dist/bin/mcp-stdio-server.cjs.map +1 -1
- package/dist/bin/mcp-stdio-server.js +4 -4
- 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-WT2UHDSE.js → chunk-TV6KPZ6J.js} +2 -2
- package/dist/{chunk-BP2IUIAH.js → chunk-XCGQBGDA.js} +192 -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-SMEHT3OU.js → server-OHMZJRSB.js} +237 -124
- 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-BP2IUIAH.js.map +0 -1
- package/dist/chunk-TQKQK7OV.js +0 -7
- package/dist/chunk-TQKQK7OV.js.map +0 -1
- package/dist/server-SMEHT3OU.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
|
@@ -107,7 +107,7 @@ function renderInstallTerminal(options) {
|
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
// src/version.ts
|
|
110
|
-
var PACKAGE_VERSION = "0.
|
|
110
|
+
var PACKAGE_VERSION = "0.47.0";
|
|
111
111
|
|
|
112
112
|
// bin/mcp-scraper-install.ts
|
|
113
113
|
var noColor = process.argv.includes("--no-color") || process.env.NO_COLOR !== void 0 || process.env.FORCE_COLOR === "0" || !process.stdout.isTTY;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/install-terminal.ts","../../src/version.ts","../../bin/mcp-scraper-install.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","export const PACKAGE_VERSION = '0.46.0'\n","#!/usr/bin/env node\nimport { renderInstallTerminal } from '../src/install-terminal.js'\nimport { PACKAGE_VERSION } from '../src/version.js'\n\nconst noColor =\n process.argv.includes('--no-color') ||\n process.env.NO_COLOR !== undefined ||\n process.env.FORCE_COLOR === '0' ||\n !process.stdout.isTTY\n\nconst help = process.argv.includes('--help') || process.argv.includes('-h')\nif (help) {\n process.stdout.write([\n 'Usage: mcp-scraper-install [--no-color]',\n '',\n 'Prints the branded MCP Scraper terminal install card and copyable install commands.',\n 'mcp-scraper prints the same card in a human terminal and runs as the MCP stdio server in clients.',\n '',\n ].join('\\n'))\n process.exit(0)\n}\n\nprocess.stdout.write(renderInstallTerminal({\n version: PACKAGE_VERSION,\n color: !noColor,\n apiKeyConfigured: Boolean(process.env.MCP_SCRAPER_API_KEY?.trim()),\n}))\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/install-terminal.ts","../../src/version.ts","../../bin/mcp-scraper-install.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","export const PACKAGE_VERSION = '0.47.0'\n","#!/usr/bin/env node\nimport { renderInstallTerminal } from '../src/install-terminal.js'\nimport { PACKAGE_VERSION } from '../src/version.js'\n\nconst noColor =\n process.argv.includes('--no-color') ||\n process.env.NO_COLOR !== undefined ||\n process.env.FORCE_COLOR === '0' ||\n !process.stdout.isTTY\n\nconst help = process.argv.includes('--help') || process.argv.includes('-h')\nif (help) {\n process.stdout.write([\n 'Usage: mcp-scraper-install [--no-color]',\n '',\n 'Prints the branded MCP Scraper terminal install card and copyable install commands.',\n 'mcp-scraper prints the same card in a human terminal and runs as the MCP stdio server in clients.',\n '',\n ].join('\\n'))\n process.exit(0)\n}\n\nprocess.stdout.write(renderInstallTerminal({\n version: PACKAGE_VERSION,\n color: !noColor,\n apiKeyConfigured: Boolean(process.env.MCP_SCRAPER_API_KEY?.trim()),\n}))\n"],"mappings":"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","names":[]}
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "../chunk-QSUGPYGQ.js";
|
|
5
5
|
import {
|
|
6
6
|
PACKAGE_VERSION
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-H4NWAF5B.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;
|
|
@@ -854,7 +854,7 @@ render();
|
|
|
854
854
|
}
|
|
855
855
|
|
|
856
856
|
// src/version.ts
|
|
857
|
-
var PACKAGE_VERSION = "0.
|
|
857
|
+
var PACKAGE_VERSION = "0.47.0";
|
|
858
858
|
|
|
859
859
|
// src/mcp/browser-agent-tool-schemas.ts
|
|
860
860
|
var import_zod = require("zod");
|
|
@@ -7368,13 +7368,33 @@ var ScheduledArtifactSelectionSchema = import_zod3.z.discriminatedUnion("mode",
|
|
|
7368
7368
|
templateVersionId: import_zod3.z.string().uuid()
|
|
7369
7369
|
}).strict()
|
|
7370
7370
|
]);
|
|
7371
|
-
var
|
|
7371
|
+
var EditorialArtifactTemplateConfigSchema = import_zod3.z.object({
|
|
7372
7372
|
theme: import_zod3.z.enum(["paper", "ink", "warm"]),
|
|
7373
7373
|
density: import_zod3.z.enum(["comfortable", "compact"]),
|
|
7374
7374
|
showSourceRail: import_zod3.z.boolean(),
|
|
7375
7375
|
showGeneratedAt: import_zod3.z.boolean(),
|
|
7376
7376
|
brandName: import_zod3.z.string().trim().min(1).max(80).optional()
|
|
7377
7377
|
}).strict();
|
|
7378
|
+
var PersonalAuthorityFeatureFlagsSchema = import_zod3.z.object({
|
|
7379
|
+
navigation: import_zod3.z.boolean(),
|
|
7380
|
+
socialLinks: import_zod3.z.boolean(),
|
|
7381
|
+
authority: import_zod3.z.boolean(),
|
|
7382
|
+
consultation: import_zod3.z.boolean(),
|
|
7383
|
+
learning: import_zod3.z.boolean(),
|
|
7384
|
+
services: import_zod3.z.boolean(),
|
|
7385
|
+
proof: import_zod3.z.boolean(),
|
|
7386
|
+
finalCta: import_zod3.z.boolean()
|
|
7387
|
+
}).strict();
|
|
7388
|
+
var PersonalAuthorityTemplateConfigSchema = import_zod3.z.object({
|
|
7389
|
+
theme: import_zod3.z.enum(["blue", "slate", "monochrome"]),
|
|
7390
|
+
showGeneratedAt: import_zod3.z.boolean(),
|
|
7391
|
+
brandName: import_zod3.z.string().trim().min(1).max(80).optional(),
|
|
7392
|
+
featureFlags: PersonalAuthorityFeatureFlagsSchema
|
|
7393
|
+
}).strict();
|
|
7394
|
+
var ArtifactTemplateConfigSchema = import_zod3.z.union([
|
|
7395
|
+
EditorialArtifactTemplateConfigSchema,
|
|
7396
|
+
PersonalAuthorityTemplateConfigSchema
|
|
7397
|
+
]);
|
|
7378
7398
|
var EditorialReadingRoomV1InputSchema = import_zod3.z.object({
|
|
7379
7399
|
title: import_zod3.z.string().trim().min(1).max(300),
|
|
7380
7400
|
dek: import_zod3.z.string().trim().max(1e3).optional(),
|
|
@@ -7407,25 +7427,104 @@ var EditorialReadingRoomV1InputSchema = import_zod3.z.object({
|
|
|
7407
7427
|
});
|
|
7408
7428
|
}
|
|
7409
7429
|
});
|
|
7410
|
-
var
|
|
7411
|
-
|
|
7430
|
+
var PersonalAuthorityActionSchema = import_zod3.z.object({
|
|
7431
|
+
label: import_zod3.z.string().trim().min(1).max(120),
|
|
7432
|
+
href: import_zod3.z.string().trim().min(1).max(2e3)
|
|
7433
|
+
}).strict();
|
|
7434
|
+
var PersonalAuthorityV1InputSchema = import_zod3.z.object({
|
|
7435
|
+
name: import_zod3.z.string().trim().min(1).max(160),
|
|
7436
|
+
professionalTitle: import_zod3.z.string().trim().min(1).max(300),
|
|
7437
|
+
summary: import_zod3.z.string().trim().min(1).max(1500),
|
|
7438
|
+
location: import_zod3.z.string().trim().max(160).optional(),
|
|
7439
|
+
email: import_zod3.z.string().trim().email().max(320).optional(),
|
|
7440
|
+
phone: import_zod3.z.string().trim().max(80).optional(),
|
|
7441
|
+
primaryAction: PersonalAuthorityActionSchema,
|
|
7442
|
+
secondaryAction: PersonalAuthorityActionSchema.optional(),
|
|
7443
|
+
socialLinks: import_zod3.z.array(import_zod3.z.object({
|
|
7444
|
+
label: import_zod3.z.string().trim().min(1).max(60),
|
|
7445
|
+
href: import_zod3.z.string().trim().min(1).max(2e3)
|
|
7446
|
+
}).strict()).max(8).default([]),
|
|
7447
|
+
authority: import_zod3.z.object({
|
|
7448
|
+
heading: import_zod3.z.string().trim().min(1).max(500),
|
|
7449
|
+
paragraphs: import_zod3.z.array(import_zod3.z.string().trim().min(1).max(2e3)).min(1).max(6)
|
|
7450
|
+
}).strict().optional(),
|
|
7451
|
+
consultation: import_zod3.z.object({
|
|
7452
|
+
eyebrow: import_zod3.z.string().trim().max(120).optional(),
|
|
7453
|
+
heading: import_zod3.z.string().trim().min(1).max(400),
|
|
7454
|
+
summary: import_zod3.z.string().trim().min(1).max(1e3),
|
|
7455
|
+
action: PersonalAuthorityActionSchema
|
|
7456
|
+
}).strict().optional(),
|
|
7457
|
+
learning: import_zod3.z.object({
|
|
7458
|
+
heading: import_zod3.z.string().trim().min(1).max(400),
|
|
7459
|
+
summary: import_zod3.z.string().trim().max(1e3).optional(),
|
|
7460
|
+
topics: import_zod3.z.array(import_zod3.z.object({
|
|
7461
|
+
title: import_zod3.z.string().trim().min(1).max(160),
|
|
7462
|
+
headline: import_zod3.z.string().trim().min(1).max(300),
|
|
7463
|
+
summary: import_zod3.z.string().trim().min(1).max(1500),
|
|
7464
|
+
href: import_zod3.z.string().trim().min(1).max(2e3).optional()
|
|
7465
|
+
}).strict()).min(1).max(12)
|
|
7466
|
+
}).strict().optional(),
|
|
7467
|
+
services: import_zod3.z.object({
|
|
7468
|
+
heading: import_zod3.z.string().trim().min(1).max(400),
|
|
7469
|
+
summary: import_zod3.z.string().trim().max(1e3).optional(),
|
|
7470
|
+
offers: import_zod3.z.array(import_zod3.z.object({
|
|
7471
|
+
title: import_zod3.z.string().trim().min(1).max(160),
|
|
7472
|
+
description: import_zod3.z.string().trim().min(1).max(1500),
|
|
7473
|
+
action: PersonalAuthorityActionSchema.optional()
|
|
7474
|
+
}).strict()).min(1).max(6)
|
|
7475
|
+
}).strict().optional(),
|
|
7476
|
+
proof: import_zod3.z.object({
|
|
7477
|
+
heading: import_zod3.z.string().trim().min(1).max(400),
|
|
7478
|
+
summary: import_zod3.z.string().trim().max(1e3).optional(),
|
|
7479
|
+
testimonials: import_zod3.z.array(import_zod3.z.object({
|
|
7480
|
+
quote: import_zod3.z.string().trim().min(1).max(1500),
|
|
7481
|
+
person: import_zod3.z.string().trim().min(1).max(160),
|
|
7482
|
+
role: import_zod3.z.string().trim().max(200).optional()
|
|
7483
|
+
}).strict()).min(1).max(12)
|
|
7484
|
+
}).strict().optional(),
|
|
7485
|
+
finalCta: import_zod3.z.object({
|
|
7486
|
+
eyebrow: import_zod3.z.string().trim().max(120).optional(),
|
|
7487
|
+
heading: import_zod3.z.string().trim().min(1).max(400),
|
|
7488
|
+
summary: import_zod3.z.string().trim().max(1e3).optional(),
|
|
7489
|
+
action: PersonalAuthorityActionSchema
|
|
7490
|
+
}).strict().optional()
|
|
7491
|
+
}).strict();
|
|
7492
|
+
var TemplateIdentityFields = {
|
|
7412
7493
|
name: import_zod3.z.string().trim().min(1).max(120),
|
|
7413
7494
|
description: import_zod3.z.string().trim().max(500).default(""),
|
|
7414
|
-
config: ArtifactTemplateConfigSchema,
|
|
7415
7495
|
authoringInstructions: import_zod3.z.string().trim().max(4e3)
|
|
7416
|
-
}
|
|
7417
|
-
var
|
|
7418
|
-
|
|
7496
|
+
};
|
|
7497
|
+
var CreateArtifactTemplateInputSchema = import_zod3.z.discriminatedUnion("presetKey", [
|
|
7498
|
+
import_zod3.z.object({
|
|
7499
|
+
presetKey: import_zod3.z.literal("editorial_reading_room_v1"),
|
|
7500
|
+
...TemplateIdentityFields,
|
|
7501
|
+
config: EditorialArtifactTemplateConfigSchema
|
|
7502
|
+
}).strict(),
|
|
7503
|
+
import_zod3.z.object({
|
|
7504
|
+
presetKey: import_zod3.z.literal("personal_authority_v1"),
|
|
7505
|
+
...TemplateIdentityFields,
|
|
7506
|
+
config: PersonalAuthorityTemplateConfigSchema
|
|
7507
|
+
}).strict()
|
|
7508
|
+
]);
|
|
7509
|
+
var UpdateArtifactTemplateInputSchema = import_zod3.z.object({
|
|
7510
|
+
name: TemplateIdentityFields.name.optional(),
|
|
7511
|
+
description: import_zod3.z.string().trim().max(500).optional(),
|
|
7512
|
+
config: ArtifactTemplateConfigSchema.optional(),
|
|
7513
|
+
authoringInstructions: TemplateIdentityFields.authoringInstructions.optional()
|
|
7514
|
+
}).strict().refine((input) => Object.keys(input).length > 0, "At least one field is required");
|
|
7515
|
+
var ArtifactTemplateVersionBase = {
|
|
7419
7516
|
templateVersionId: import_zod3.z.string().uuid(),
|
|
7420
7517
|
templateId: import_zod3.z.string().uuid(),
|
|
7421
7518
|
version: import_zod3.z.number().int().positive(),
|
|
7422
|
-
rendererKey: import_zod3.z.literal("editorial_reading_room_v1"),
|
|
7423
7519
|
rendererVersion: import_zod3.z.literal(1),
|
|
7424
7520
|
inputContractVersion: import_zod3.z.literal(1),
|
|
7425
|
-
config: ArtifactTemplateConfigSchema,
|
|
7426
7521
|
authoringInstructions: import_zod3.z.string().max(4e3),
|
|
7427
7522
|
createdAt: import_zod3.z.string().datetime()
|
|
7428
|
-
}
|
|
7523
|
+
};
|
|
7524
|
+
var ArtifactTemplateVersionSchema = import_zod3.z.discriminatedUnion("rendererKey", [
|
|
7525
|
+
import_zod3.z.object({ ...ArtifactTemplateVersionBase, rendererKey: import_zod3.z.literal("editorial_reading_room_v1"), config: EditorialArtifactTemplateConfigSchema }).strict(),
|
|
7526
|
+
import_zod3.z.object({ ...ArtifactTemplateVersionBase, rendererKey: import_zod3.z.literal("personal_authority_v1"), config: PersonalAuthorityTemplateConfigSchema }).strict()
|
|
7527
|
+
]);
|
|
7429
7528
|
var ArtifactTemplateSchema = import_zod3.z.object({
|
|
7430
7529
|
templateId: import_zod3.z.string().uuid(),
|
|
7431
7530
|
name: import_zod3.z.string().min(1).max(120),
|
|
@@ -7440,9 +7539,15 @@ var ArtifactTemplateSchema = import_zod3.z.object({
|
|
|
7440
7539
|
var ListArtifactTemplatesResponseSchema = import_zod3.z.object({
|
|
7441
7540
|
ok: import_zod3.z.literal(true),
|
|
7442
7541
|
presets: import_zod3.z.array(import_zod3.z.object({
|
|
7443
|
-
presetKey: import_zod3.z.
|
|
7542
|
+
presetKey: import_zod3.z.enum(["editorial_reading_room_v1", "personal_authority_v1"]),
|
|
7444
7543
|
name: import_zod3.z.string(),
|
|
7445
7544
|
description: import_zod3.z.string(),
|
|
7545
|
+
mark: import_zod3.z.string().min(1).max(4),
|
|
7546
|
+
featureFlags: import_zod3.z.array(import_zod3.z.object({
|
|
7547
|
+
key: import_zod3.z.string().min(1),
|
|
7548
|
+
label: import_zod3.z.string().min(1),
|
|
7549
|
+
description: import_zod3.z.string().min(1)
|
|
7550
|
+
}).strict()),
|
|
7446
7551
|
defaultConfig: ArtifactTemplateConfigSchema
|
|
7447
7552
|
}).strict()),
|
|
7448
7553
|
templates: import_zod3.z.array(ArtifactTemplateSchema)
|
|
@@ -7457,7 +7562,7 @@ var ScheduledRunArtifactOutputSchema = import_zod3.z.object({
|
|
|
7457
7562
|
artifactId: import_zod3.z.string().min(1).max(1e3),
|
|
7458
7563
|
templateId: import_zod3.z.string().uuid(),
|
|
7459
7564
|
templateVersionId: import_zod3.z.string().uuid(),
|
|
7460
|
-
rendererKey: import_zod3.z.
|
|
7565
|
+
rendererKey: import_zod3.z.enum(["editorial_reading_room_v1", "personal_authority_v1"]),
|
|
7461
7566
|
rendererVersion: import_zod3.z.literal(1),
|
|
7462
7567
|
mimeType: import_zod3.z.literal("text/html"),
|
|
7463
7568
|
title: import_zod3.z.string().min(1).max(300),
|
|
@@ -7509,18 +7614,29 @@ var GetScheduledRunResponseSchema = import_zod3.z.object({
|
|
|
7509
7614
|
ok: import_zod3.z.literal(true),
|
|
7510
7615
|
run: ScheduledRunResultSchema
|
|
7511
7616
|
}).strict();
|
|
7512
|
-
var
|
|
7617
|
+
var InternalScheduledArtifactRenderRequestBase = {
|
|
7513
7618
|
identity: import_zod3.z.string().min(1).max(320),
|
|
7514
7619
|
ownerId: import_zod3.z.string().regex(/^[a-f0-9]{24}$/),
|
|
7515
7620
|
runId: import_zod3.z.string().min(1).max(200),
|
|
7516
7621
|
scheduleId: import_zod3.z.string().uuid(),
|
|
7517
7622
|
templateId: import_zod3.z.string().uuid(),
|
|
7518
7623
|
templateVersionId: import_zod3.z.string().uuid(),
|
|
7519
|
-
|
|
7520
|
-
|
|
7521
|
-
|
|
7522
|
-
|
|
7523
|
-
|
|
7624
|
+
rendererVersion: import_zod3.z.literal(1)
|
|
7625
|
+
};
|
|
7626
|
+
var InternalScheduledArtifactRenderRequestSchema = import_zod3.z.discriminatedUnion("rendererKey", [
|
|
7627
|
+
import_zod3.z.object({
|
|
7628
|
+
...InternalScheduledArtifactRenderRequestBase,
|
|
7629
|
+
rendererKey: import_zod3.z.literal("editorial_reading_room_v1"),
|
|
7630
|
+
config: EditorialArtifactTemplateConfigSchema,
|
|
7631
|
+
input: EditorialReadingRoomV1InputSchema
|
|
7632
|
+
}).strict(),
|
|
7633
|
+
import_zod3.z.object({
|
|
7634
|
+
...InternalScheduledArtifactRenderRequestBase,
|
|
7635
|
+
rendererKey: import_zod3.z.literal("personal_authority_v1"),
|
|
7636
|
+
config: PersonalAuthorityTemplateConfigSchema,
|
|
7637
|
+
input: PersonalAuthorityV1InputSchema
|
|
7638
|
+
}).strict()
|
|
7639
|
+
]);
|
|
7524
7640
|
var CreateScheduledRunViewLinkInputSchema = import_zod3.z.object({
|
|
7525
7641
|
artifactId: import_zod3.z.string().min(1).max(1e3),
|
|
7526
7642
|
expiresInDays: import_zod3.z.number().int().min(1).max(30).default(7)
|
|
@@ -14231,40 +14347,40 @@ function annotations(title, readOnlyHint, destructiveHint = false, idempotentHin
|
|
|
14231
14347
|
}
|
|
14232
14348
|
function registerScheduledResultsMcpTools(server, executor) {
|
|
14233
14349
|
server.registerTool("list_artifact_templates", {
|
|
14234
|
-
title: "List
|
|
14235
|
-
description: "List
|
|
14350
|
+
title: "List Templates",
|
|
14351
|
+
description: "List registered presentation presets and saved immutable template versions. A preset must be saved before an automation can select it.",
|
|
14236
14352
|
inputSchema: import_zod10.z.object({
|
|
14237
14353
|
status: import_zod10.z.enum(["active", "archived", "all"]).default("active")
|
|
14238
14354
|
}).strict(),
|
|
14239
14355
|
outputSchema: recordOutputSchema("list_artifact_templates", McpListArtifactTemplatesOutputSchema),
|
|
14240
|
-
annotations: annotations("List
|
|
14356
|
+
annotations: annotations("List Templates", true)
|
|
14241
14357
|
}, (input) => executor.call(
|
|
14242
14358
|
`/artifact-templates?status=${encodeURIComponent(input.status)}`,
|
|
14243
14359
|
ListArtifactTemplatesOutputSchema
|
|
14244
14360
|
));
|
|
14245
14361
|
server.registerTool("get_artifact_template", {
|
|
14246
|
-
title: "Get
|
|
14247
|
-
description: "Read one saved
|
|
14362
|
+
title: "Get Template",
|
|
14363
|
+
description: "Read one saved template, its renderer family, configuration, and immutable version history.",
|
|
14248
14364
|
inputSchema: import_zod10.z.object({ templateId: TemplateIdSchema }).strict(),
|
|
14249
14365
|
outputSchema: recordOutputSchema("get_artifact_template", McpArtifactTemplateOutputSchema),
|
|
14250
|
-
annotations: annotations("Get
|
|
14366
|
+
annotations: annotations("Get Template", true)
|
|
14251
14367
|
}, (input) => executor.call(
|
|
14252
14368
|
`/artifact-templates/${encodeURIComponent(input.templateId)}`,
|
|
14253
14369
|
ArtifactTemplateOutputSchema
|
|
14254
14370
|
));
|
|
14255
14371
|
server.registerTool("create_artifact_template", {
|
|
14256
|
-
title: "
|
|
14257
|
-
description: "
|
|
14372
|
+
title: "Create Template",
|
|
14373
|
+
description: "Create a user-owned template from a registered preset. Customize supported flags and presentation guidance; arbitrary executable code is not accepted.",
|
|
14258
14374
|
inputSchema: CreateArtifactTemplateInputSchema,
|
|
14259
14375
|
outputSchema: recordOutputSchema("create_artifact_template", McpArtifactTemplateOutputSchema),
|
|
14260
|
-
annotations: annotations("
|
|
14376
|
+
annotations: annotations("Create Template", false)
|
|
14261
14377
|
}, (input) => executor.call("/artifact-templates", ArtifactTemplateOutputSchema, "POST", input));
|
|
14262
14378
|
server.registerTool("update_artifact_template", {
|
|
14263
|
-
title: "
|
|
14264
|
-
description: "Create the next immutable version of a saved
|
|
14379
|
+
title: "Update Template",
|
|
14380
|
+
description: "Create the next immutable version of a saved template. Existing automations remain pinned to their exact prior version until explicitly changed.",
|
|
14265
14381
|
inputSchema: UpdateArtifactTemplateToolInputSchema,
|
|
14266
14382
|
outputSchema: recordOutputSchema("update_artifact_template", McpArtifactTemplateOutputSchema),
|
|
14267
|
-
annotations: annotations("
|
|
14383
|
+
annotations: annotations("Update Template", false)
|
|
14268
14384
|
}, (input) => {
|
|
14269
14385
|
const { templateId, ...body } = input;
|
|
14270
14386
|
UpdateArtifactTemplateInputSchema.parse(body);
|
|
@@ -14276,14 +14392,14 @@ function registerScheduledResultsMcpTools(server, executor) {
|
|
|
14276
14392
|
);
|
|
14277
14393
|
});
|
|
14278
14394
|
server.registerTool("archive_artifact_template", {
|
|
14279
|
-
title: "Archive
|
|
14395
|
+
title: "Archive Template",
|
|
14280
14396
|
description: "Archive or restore a saved template without deleting its immutable versions. Existing pinned automations continue to work.",
|
|
14281
14397
|
inputSchema: import_zod10.z.object({
|
|
14282
14398
|
templateId: TemplateIdSchema,
|
|
14283
14399
|
archived: import_zod10.z.boolean()
|
|
14284
14400
|
}).strict(),
|
|
14285
14401
|
outputSchema: recordOutputSchema("archive_artifact_template", McpArtifactTemplateOutputSchema),
|
|
14286
|
-
annotations: annotations("Archive
|
|
14402
|
+
annotations: annotations("Archive Template", false, false, true)
|
|
14287
14403
|
}, (input) => executor.call(
|
|
14288
14404
|
`/artifact-templates/${encodeURIComponent(input.templateId)}/${input.archived ? "archive" : "restore"}`,
|
|
14289
14405
|
ArtifactTemplateOutputSchema,
|