@sellable/mcp 0.1.324 → 0.1.325

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.
@@ -1,4 +1,4 @@
1
- const manifestJson = "{\n \"generatedAt\": \"deterministic\",\n \"counts\": {\n \"visible\": 19,\n \"hiddenActive\": 10,\n \"deprecatedLoadOnly\": 6\n },\n \"createableTypes\": [\n \"ai_column\",\n \"check_connection\",\n \"check_paid_inmail_credits\",\n \"checkbox\",\n \"formula\",\n \"generate_message\",\n \"http_request\",\n \"inbound_webhook\",\n \"is_open_profile\",\n \"react_and_comment\",\n \"score_icp_mcp\",\n \"send_dm\",\n \"send_inmail_closed\",\n \"send_inmail_open\",\n \"send_invite\",\n \"text\",\n \"view_profile\",\n \"wait\"\n ],\n \"activeTypes\": [\n \"action\",\n \"ai_column\",\n \"check_connection\",\n \"check_paid_inmail_credits\",\n \"checkbox\",\n \"datetime\",\n \"example_checkbox\",\n \"formula\",\n \"generate_message\",\n \"http_request\",\n \"inbound_webhook\",\n \"is_open_profile\",\n \"json\",\n \"linkedin_url\",\n \"next_action_at\",\n \"react_and_comment\",\n \"reply_sentiment\",\n \"score_icp_mcp\",\n \"select\",\n \"send_dm\",\n \"send_inmail_closed\",\n \"send_inmail_open\",\n \"send_invite\",\n \"sent_at\",\n \"sequence_status\",\n \"text\",\n \"view_profile\",\n \"wait\"\n ],\n \"rows\": [\n {\n \"kind\": \"visible\",\n \"optionId\": \"http_request.generic\",\n \"section\": \"Automation\",\n \"label\": \"HTTP Request\",\n \"columnType\": \"http_request\",\n \"displayName\": \"HTTP Request\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"HTTP Request\",\n \"defaultConfig\": {\n \"inputMapping\": {\n \"method\": {\n \"value\": \"GET\"\n },\n \"endpoint\": {\n \"value\": \"https://api.example.com/health\"\n }\n }\n },\n \"configFixture\": {\n \"inputMapping\": {\n \"method\": {\n \"value\": \"GET\"\n },\n \"endpoint\": {\n \"value\": \"https://api.example.com/health\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.http_request\"\n ],\n \"runtimeOwner\": \"http-request cell executor\",\n \"requiresInputs\": [\n \"endpoint\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"ai_column\",\n \"section\": \"Automation\",\n \"label\": \"Use AI\",\n \"columnType\": \"ai_column\",\n \"displayName\": \"AI Column\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Use AI\",\n \"defaultConfig\": {\n \"aiConfig\": {\n \"modelName\": \"google/gemini-3.1-flash-lite-preview\",\n \"systemPrompt\": null,\n \"userPrompt\": \"\",\n \"outputFields\": [\n {\n \"name\": \"response\",\n \"type\": \"text\"\n }\n ],\n \"enableWebSearch\": true,\n \"maxSearchQueries\": 3\n },\n \"processing\": {\n \"autoUpdate\": true\n }\n },\n \"configFixture\": {\n \"aiConfig\": {\n \"modelName\": \"google/gemini-3.1-flash-lite-preview\",\n \"systemPrompt\": null,\n \"userPrompt\": \"Summarize {{Company}} in one sentence.\",\n \"outputFields\": [\n {\n \"name\": \"summary\",\n \"type\": \"text\"\n }\n ],\n \"enableWebSearch\": false,\n \"maxSearchQueries\": 0\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.ai_column\"\n ],\n \"runtimeOwner\": \"AI column cell executor\",\n \"requiresInputs\": [\n \"aiConfig.userPrompt\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"custom\",\n \"createKey\": \"ai_column_config\",\n \"editKey\": \"ai_column_config\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config.aiConfig\",\n \"config.processing\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config.aiConfig\",\n \"config.processing\"\n ],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"inbound_webhook\",\n \"section\": \"Automation\",\n \"label\": \"Inbound Webhook\",\n \"columnType\": \"inbound_webhook\",\n \"displayName\": \"Inbound Webhook\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Inbound Webhook\",\n \"defaultConfig\": {\n \"rateLimit\": {\n \"maxRequests\": 100,\n \"windowSeconds\": 60\n }\n },\n \"configFixture\": {\n \"webhookToken\": \"fixture-token\",\n \"rateLimit\": {\n \"maxRequests\": 100,\n \"windowSeconds\": 60\n }\n },\n \"validationOwners\": [\n \"inboundWebhookConfigSchema\"\n ],\n \"runtimeOwner\": \"webhook source/update route\",\n \"requiresInputs\": [\n \"webhook payload\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"formula\",\n \"section\": \"Automation\",\n \"label\": \"Formula\",\n \"columnType\": \"formula\",\n \"displayName\": \"Formula\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Formula\",\n \"defaultConfig\": {},\n \"configFixture\": {\n \"expression\": \"{{First Name}} + ' ' + {{Last Name}}\"\n },\n \"validationOwners\": [\n \"formulaConfigSchema\"\n ],\n \"runtimeOwner\": \"formula cell executor\",\n \"requiresInputs\": [\n \"expression\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"wait\",\n \"section\": \"Automation\",\n \"label\": \"Wait\",\n \"columnType\": \"wait\",\n \"displayName\": \"Wait\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Wait\",\n \"defaultConfig\": {\n \"waitConfig\": {\n \"duration\": 1,\n \"unit\": \"days\"\n }\n },\n \"configFixture\": {\n \"waitConfig\": {\n \"duration\": 1,\n \"unit\": \"days\"\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.wait\"\n ],\n \"runtimeOwner\": \"sweeper wait executor\",\n \"requiresInputs\": [\n \"waitConfig.duration\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"http_request.enrich_prospect\",\n \"section\": \"Sellable Presets\",\n \"label\": \"Enrich Prospect\",\n \"columnType\": \"http_request\",\n \"displayName\": \"HTTP Request\",\n \"lifecycleClass\": \"preset-selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Enrich Prospect\",\n \"defaultConfig\": {\n \"inputMapping\": {\n \"method\": {\n \"value\": \"POST\"\n },\n \"endpoint\": {\n \"value\": \"/api/v4/enrich-prospect\"\n },\n \"body\": {\n \"value\": \"{\\\"linkedinUrl\\\":\\\"{{LinkedIn URL}}\\\"}\"\n }\n },\n \"rateLimit\": {\n \"mode\": \"concurrency\",\n \"maxConcurrent\": 8,\n \"concurrencyGroup\": \"linkedin-harvest\"\n }\n },\n \"configFixture\": {\n \"inputMapping\": {\n \"method\": {\n \"value\": \"POST\"\n },\n \"endpoint\": {\n \"value\": \"/api/v4/enrich-prospect\"\n },\n \"body\": {\n \"value\": \"{\\\"linkedinUrl\\\":\\\"{{LinkedIn URL}}\\\"}\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.http_request\"\n ],\n \"runtimeOwner\": \"http-request cell executor\",\n \"requiresInputs\": [\n \"LinkedIn URL text column\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"score_icp_mcp\",\n \"section\": \"Sellable Presets\",\n \"label\": \"ICP Score\",\n \"columnType\": \"score_icp_mcp\",\n \"displayName\": \"MCP ICP Score\",\n \"lifecycleClass\": \"preset-selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"ICP Score\",\n \"defaultConfig\": {\n \"rubric\": []\n },\n \"configFixture\": {\n \"rubric\": [\n {\n \"checkName\": \"role_fit\",\n \"criterion\": \"Prospect matches the ICP\",\n \"description\": \"Role and company context match target buyer\",\n \"reason\": \"Fit predicts relevance\",\n \"isRequiredCheck\": \"true\",\n \"allowPartialCredit\": \"true\"\n }\n ],\n \"inputMapping\": {\n \"enrichedProspectId\": \"{{Enrich Prospect.id}}\"\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.score_icp_mcp\"\n ],\n \"runtimeOwner\": \"score ICP cell executor\",\n \"requiresInputs\": [\n \"Enrich Prospect output\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"generate_message\",\n \"section\": \"Sellable Presets\",\n \"label\": \"Generate Message\",\n \"columnType\": \"generate_message\",\n \"displayName\": \"Generate Message\",\n \"lifecycleClass\": \"preset-selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Generate Message\",\n \"defaultConfig\": {},\n \"configFixture\": {\n \"inputMapping\": {\n \"campaignOfferId\": {\n \"value\": \"{{Campaign Offer ID}}\"\n },\n \"enrichedProspectId\": {\n \"value\": \"{{Enrich Prospect.id}}\"\n },\n \"icpScore\": {\n \"value\": \"{{ICP Score.score}}\"\n }\n }\n },\n \"validationOwners\": [\n \"generateMessageConfigSchema\"\n ],\n \"runtimeOwner\": \"HTTP-backed message generation executor\",\n \"requiresInputs\": [\n \"Enrich Prospect output\",\n \"ICP Score output/context\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"passthrough\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"is_open_profile\",\n \"section\": \"LinkedIn\",\n \"label\": \"Check Open Profile\",\n \"columnType\": \"is_open_profile\",\n \"displayName\": \"Check Open Profile\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Check Open Profile\",\n \"defaultConfig\": {\n \"httpConfig\": {\n \"method\": \"POST\",\n \"endpoint\": \"/api/v1/linkedin/check-open-profile\",\n \"bodyTemplate\": {\n \"linkedinUrl\": \"{{linkedinUrl}}\"\n }\n }\n },\n \"configFixture\": {},\n \"validationOwners\": [\n \"checkOpenProfileColumn schema\"\n ],\n \"runtimeOwner\": \"open profile cell executor\",\n \"requiresInputs\": [\n \"LinkedIn profile URL\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"check_paid_inmail_credits\",\n \"section\": \"LinkedIn\",\n \"label\": \"Check Paid InMail Credits\",\n \"columnType\": \"check_paid_inmail_credits\",\n \"displayName\": \"Check Paid InMail Credits\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Check Paid InMail Credits\",\n \"defaultConfig\": {\n \"minPaidInmailCreditsForSend\": 25,\n \"refreshPolicy\": \"cache_only\",\n \"processing\": {\n \"autoUpdate\": true\n }\n },\n \"configFixture\": {\n \"minPaidInmailCreditsForSend\": 1,\n \"refreshPolicy\": \"cache_only\",\n \"processing\": {\n \"autoUpdate\": true\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.check_paid_inmail_credits\"\n ],\n \"runtimeOwner\": \"paid InMail credit cell executor\",\n \"requiresInputs\": [\n \"sender/campaign context\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"check_connection\",\n \"section\": \"LinkedIn\",\n \"label\": \"Check Connection\",\n \"columnType\": \"check_connection\",\n \"displayName\": \"Check Connection\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Check Connection\",\n \"defaultConfig\": {\n \"executorType\": \"check_connection\"\n },\n \"configFixture\": {\n \"executorType\": \"check_connection\"\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.check_connection\"\n ],\n \"runtimeOwner\": \"custom local connection executor\",\n \"requiresInputs\": [\n \"lead_linkedin_id\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"view_profile\",\n \"section\": \"LinkedIn\",\n \"label\": \"View Profile\",\n \"columnType\": \"view_profile\",\n \"displayName\": \"View Profile\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"View Profile\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"VIEW_PROFILE\"\n }\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"VIEW_PROFILE\"\n }\n },\n \"validationOwners\": [\n \"view_profile action schema\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"LinkedIn profile URL\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"send_invite\",\n \"section\": \"LinkedIn\",\n \"label\": \"Invite\",\n \"columnType\": \"send_invite\",\n \"displayName\": \"Invite\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Invite\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"INVITE\",\n \"waitForEvent\": {\n \"event\": \"connection_accept\",\n \"timeoutDays\": 25\n }\n }\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"INVITE\",\n \"waitForEvent\": {\n \"event\": \"connection_accept\",\n \"timeoutDays\": 25\n },\n \"allow_existing_connections_passthrough\": false\n },\n \"inputMapping\": {\n \"linkedinUrl\": {\n \"value\": \"{{LinkedIn URL}}\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.send_invite\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"LinkedIn profile URL\",\n \"optional connection note\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"send_dm\",\n \"section\": \"LinkedIn\",\n \"label\": \"DM\",\n \"columnType\": \"send_dm\",\n \"displayName\": \"DM\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"DM\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"DM\",\n \"sendEachParagraphAsMessage\": false,\n \"waitForEvent\": {\n \"event\": \"message_received\",\n \"timeoutDays\": 3\n }\n }\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"DM\",\n \"sendEachParagraphAsMessage\": false\n },\n \"inputMapping\": {\n \"message\": {\n \"value\": \"{{Generate Message.body}}\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.send_dm\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"message body\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"send_inmail_open\",\n \"section\": \"LinkedIn\",\n \"label\": \"InMail (Open Profile)\",\n \"columnType\": \"send_inmail_open\",\n \"displayName\": \"InMail (Open Profile)\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"InMail (Open Profile)\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"INMAIL_OPEN\",\n \"waitForEvent\": {\n \"event\": \"message_received\",\n \"timeoutDays\": 5\n }\n },\n \"fallbackToClosedInmail\": true,\n \"minPaidInmailCreditsForFallback\": 25\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"INMAIL_OPEN\",\n \"messageSource\": {\n \"column\": \"Generate Message\",\n \"subjectPath\": \"subject\",\n \"bodyPath\": \"body\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.send_inmail_open\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"subject\",\n \"body\",\n \"LinkedIn profile URL\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"send_inmail_closed\",\n \"section\": \"LinkedIn\",\n \"label\": \"InMail (Closed Profile)\",\n \"columnType\": \"send_inmail_closed\",\n \"displayName\": \"InMail (Closed Profile)\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"InMail (Closed Profile)\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"INMAIL_CLOSED\",\n \"waitForEvent\": {\n \"event\": \"message_received\",\n \"timeoutDays\": 5\n }\n },\n \"fallbackAcrossTiers\": false,\n \"minPaidInmailCreditsForSend\": 25\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"INMAIL_CLOSED\",\n \"messageSource\": {\n \"column\": \"Generate Message\",\n \"subjectPath\": \"subject\",\n \"bodyPath\": \"body\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.send_inmail_closed\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"subject\",\n \"body\",\n \"LinkedIn profile URL\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"react_and_comment\",\n \"section\": \"LinkedIn\",\n \"label\": \"React & Comment\",\n \"columnType\": \"react_and_comment\",\n \"displayName\": \"React & Comment\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"React & Comment\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"COMMENT\"\n }\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"COMMENT\"\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.react_and_comment\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"LinkedIn post URL\",\n \"comment text\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"text\",\n \"section\": \"Data\",\n \"label\": \"Text\",\n \"columnType\": \"text\",\n \"displayName\": \"Text\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Text\",\n \"defaultConfig\": {\n \"placeholder\": \"LinkedIn URL or any text\"\n },\n \"configFixture\": {\n \"placeholder\": \"LinkedIn URL or any text\"\n },\n \"validationOwners\": [\n \"textConfigSchema\"\n ],\n \"runtimeOwner\": \"display/manual text owner\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"checkbox\",\n \"section\": \"Data\",\n \"label\": \"Checkbox\",\n \"columnType\": \"checkbox\",\n \"displayName\": \"Checkbox\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Checkbox\",\n \"defaultConfig\": {\n \"default\": false\n },\n \"configFixture\": {\n \"default\": false,\n \"editable\": true\n },\n \"validationOwners\": [\n \"checkboxConfigSchema\"\n ],\n \"runtimeOwner\": \"checkbox cell executor\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.action\",\n \"section\": \"Hidden Active\",\n \"label\": \"LinkedIn Action\",\n \"columnType\": \"action\",\n \"displayName\": \"LinkedIn Action\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"LinkedIn Action\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"INVITE\"\n }\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"INVITE\"\n }\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"sequence\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.datetime\",\n \"section\": \"Hidden Active\",\n \"label\": \"Date/Time\",\n \"columnType\": \"datetime\",\n \"displayName\": \"Date/Time\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Date/Time\",\n \"defaultConfig\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.example_checkbox\",\n \"section\": \"Hidden Active\",\n \"label\": \"Example\",\n \"columnType\": \"example_checkbox\",\n \"displayName\": \"Example\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Example\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.json\",\n \"section\": \"Hidden Active\",\n \"label\": \"JSON\",\n \"columnType\": \"json\",\n \"displayName\": \"JSON\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"JSON\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.linkedin_url\",\n \"section\": \"Hidden Active\",\n \"label\": \"LinkedIn URL\",\n \"columnType\": \"linkedin_url\",\n \"displayName\": \"LinkedIn URL\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"LinkedIn URL\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.next_action_at\",\n \"section\": \"Hidden Active\",\n \"label\": \"Next Action\",\n \"columnType\": \"next_action_at\",\n \"displayName\": \"Next Action\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Next Action\",\n \"defaultConfig\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.reply_sentiment\",\n \"section\": \"Hidden Active\",\n \"label\": \"Reply Sentiment\",\n \"columnType\": \"reply_sentiment\",\n \"displayName\": \"Reply Sentiment\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Reply Sentiment\",\n \"defaultConfig\": {\n \"options\": [\n \"interested\",\n \"not_interested\",\n \"out_of_office\",\n \"question\",\n \"neutral\",\n \"negative\"\n ],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"options\": [\n \"interested\",\n \"not_interested\",\n \"out_of_office\",\n \"question\",\n \"neutral\",\n \"negative\"\n ],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [\n \"options\"\n ],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.select\",\n \"section\": \"Hidden Active\",\n \"label\": \"Select\",\n \"columnType\": \"select\",\n \"displayName\": \"Select\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Select\",\n \"defaultConfig\": {\n \"options\": [],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"options\": [],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [\n \"options\"\n ],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [\n \"name\",\n \"config\"\n ],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"limited_edit_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config.options\",\n \"config.editable\",\n \"config.source\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"limited_edit_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config.options\",\n \"config.editable\",\n \"config.source\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.sent_at\",\n \"section\": \"Hidden Active\",\n \"label\": \"Sent At\",\n \"columnType\": \"sent_at\",\n \"displayName\": \"Sent At\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Sent At\",\n \"defaultConfig\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.sequence_status\",\n \"section\": \"Hidden Active\",\n \"label\": \"Sequence Status\",\n \"columnType\": \"sequence_status\",\n \"displayName\": \"Sequence Status\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Sequence Status\",\n \"defaultConfig\": {\n \"options\": [\n \"pending\",\n \"queued\",\n \"scheduled\",\n \"sent\",\n \"in_convo\",\n \"replied\",\n \"completed\",\n \"failed\"\n ],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"options\": [\n \"pending\",\n \"queued\",\n \"scheduled\",\n \"sent\",\n \"in_convo\",\n \"replied\",\n \"completed\",\n \"failed\"\n ],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [\n \"options\"\n ],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.enrich_company\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"Enrich Company\",\n \"columnType\": \"enrich_company\",\n \"displayName\": \"Enrich Company\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Enrich Company\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"enrichment\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_http_request\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_http_request\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.enrich_person\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"Enrich Prospect (legacy)\",\n \"columnType\": \"enrich_person\",\n \"displayName\": \"Enrich Prospect (legacy)\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Enrich Prospect (legacy)\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"enrichment\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_http_request\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_http_request\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.generate_message_sequence\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"Generate Message\",\n \"columnType\": \"generate_message_sequence\",\n \"displayName\": \"Generate Message\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Generate Message\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"generation\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_http_request\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_http_request\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.input\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"Text Input\",\n \"columnType\": \"input\",\n \"displayName\": \"Text Input\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Text Input\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_text\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_text\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.score_icp\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"ICP Score\",\n \"columnType\": \"score_icp\",\n \"displayName\": \"ICP Score\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"ICP Score\",\n \"defaultConfig\": {\n \"qualificationThreshold\": 60\n },\n \"configFixture\": {\n \"qualificationThreshold\": 60\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"scoring\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_score_icp_mcp\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_score_icp_mcp\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.score_icp_rubric\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"ICP Rubric Score (legacy alias)\",\n \"columnType\": \"score_icp_rubric\",\n \"displayName\": \"ICP Rubric Score (legacy alias)\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"ICP Rubric Score (legacy alias)\",\n \"defaultConfig\": {\n \"rubric\": []\n },\n \"configFixture\": {\n \"rubric\": []\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"scoring\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_score_icp_mcp\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_score_icp_mcp\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n }\n ]\n}";
1
+ const manifestJson = "{\n \"generatedAt\": \"deterministic\",\n \"counts\": {\n \"visible\": 19,\n \"hiddenActive\": 11,\n \"deprecatedLoadOnly\": 6\n },\n \"createableTypes\": [\n \"ai_column\",\n \"check_connection\",\n \"check_paid_inmail_credits\",\n \"checkbox\",\n \"formula\",\n \"generate_message\",\n \"http_request\",\n \"inbound_webhook\",\n \"is_open_profile\",\n \"react_and_comment\",\n \"score_icp_mcp\",\n \"send_dm\",\n \"send_inmail_closed\",\n \"send_inmail_open\",\n \"send_invite\",\n \"text\",\n \"view_profile\",\n \"wait\"\n ],\n \"activeTypes\": [\n \"action\",\n \"ai_column\",\n \"check_connection\",\n \"check_paid_inmail_credits\",\n \"checkbox\",\n \"datetime\",\n \"eligible_senders\",\n \"example_checkbox\",\n \"formula\",\n \"generate_message\",\n \"http_request\",\n \"inbound_webhook\",\n \"is_open_profile\",\n \"json\",\n \"linkedin_url\",\n \"next_action_at\",\n \"react_and_comment\",\n \"reply_sentiment\",\n \"score_icp_mcp\",\n \"select\",\n \"send_dm\",\n \"send_inmail_closed\",\n \"send_inmail_open\",\n \"send_invite\",\n \"sent_at\",\n \"sequence_status\",\n \"text\",\n \"view_profile\",\n \"wait\"\n ],\n \"rows\": [\n {\n \"kind\": \"visible\",\n \"optionId\": \"http_request.generic\",\n \"section\": \"Automation\",\n \"label\": \"HTTP Request\",\n \"columnType\": \"http_request\",\n \"displayName\": \"HTTP Request\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"HTTP Request\",\n \"defaultConfig\": {\n \"inputMapping\": {\n \"method\": {\n \"value\": \"GET\"\n },\n \"endpoint\": {\n \"value\": \"https://api.example.com/health\"\n }\n }\n },\n \"configFixture\": {\n \"inputMapping\": {\n \"method\": {\n \"value\": \"GET\"\n },\n \"endpoint\": {\n \"value\": \"https://api.example.com/health\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.http_request\"\n ],\n \"runtimeOwner\": \"http-request cell executor\",\n \"requiresInputs\": [\n \"endpoint\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"ai_column\",\n \"section\": \"Automation\",\n \"label\": \"Use AI\",\n \"columnType\": \"ai_column\",\n \"displayName\": \"AI Column\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Use AI\",\n \"defaultConfig\": {\n \"aiConfig\": {\n \"modelName\": \"google/gemini-3.1-flash-lite-preview\",\n \"systemPrompt\": null,\n \"userPrompt\": \"\",\n \"outputFields\": [\n {\n \"name\": \"response\",\n \"type\": \"text\"\n }\n ],\n \"enableWebSearch\": true,\n \"maxSearchQueries\": 3\n },\n \"processing\": {\n \"autoUpdate\": true\n }\n },\n \"configFixture\": {\n \"aiConfig\": {\n \"modelName\": \"google/gemini-3.1-flash-lite-preview\",\n \"systemPrompt\": null,\n \"userPrompt\": \"Summarize {{Company}} in one sentence.\",\n \"outputFields\": [\n {\n \"name\": \"summary\",\n \"type\": \"text\"\n }\n ],\n \"enableWebSearch\": false,\n \"maxSearchQueries\": 0\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.ai_column\"\n ],\n \"runtimeOwner\": \"AI column cell executor\",\n \"requiresInputs\": [\n \"aiConfig.userPrompt\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"custom\",\n \"createKey\": \"ai_column_config\",\n \"editKey\": \"ai_column_config\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config.aiConfig\",\n \"config.processing\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config.aiConfig\",\n \"config.processing\"\n ],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"inbound_webhook\",\n \"section\": \"Automation\",\n \"label\": \"Inbound Webhook\",\n \"columnType\": \"inbound_webhook\",\n \"displayName\": \"Inbound Webhook\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Inbound Webhook\",\n \"defaultConfig\": {\n \"rateLimit\": {\n \"maxRequests\": 100,\n \"windowSeconds\": 60\n }\n },\n \"configFixture\": {\n \"webhookToken\": \"fixture-token\",\n \"rateLimit\": {\n \"maxRequests\": 100,\n \"windowSeconds\": 60\n }\n },\n \"validationOwners\": [\n \"inboundWebhookConfigSchema\"\n ],\n \"runtimeOwner\": \"webhook source/update route\",\n \"requiresInputs\": [\n \"webhook payload\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"formula\",\n \"section\": \"Automation\",\n \"label\": \"Formula\",\n \"columnType\": \"formula\",\n \"displayName\": \"Formula\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Formula\",\n \"defaultConfig\": {},\n \"configFixture\": {\n \"expression\": \"{{First Name}} + ' ' + {{Last Name}}\"\n },\n \"validationOwners\": [\n \"formulaConfigSchema\"\n ],\n \"runtimeOwner\": \"formula cell executor\",\n \"requiresInputs\": [\n \"expression\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"wait\",\n \"section\": \"Automation\",\n \"label\": \"Wait\",\n \"columnType\": \"wait\",\n \"displayName\": \"Wait\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Wait\",\n \"defaultConfig\": {\n \"waitConfig\": {\n \"duration\": 1,\n \"unit\": \"days\"\n }\n },\n \"configFixture\": {\n \"waitConfig\": {\n \"duration\": 1,\n \"unit\": \"days\"\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.wait\"\n ],\n \"runtimeOwner\": \"sweeper wait executor\",\n \"requiresInputs\": [\n \"waitConfig.duration\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"http_request.enrich_prospect\",\n \"section\": \"Sellable Presets\",\n \"label\": \"Enrich Prospect\",\n \"columnType\": \"http_request\",\n \"displayName\": \"HTTP Request\",\n \"lifecycleClass\": \"preset-selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Enrich Prospect\",\n \"defaultConfig\": {\n \"inputMapping\": {\n \"method\": {\n \"value\": \"POST\"\n },\n \"endpoint\": {\n \"value\": \"/api/v4/enrich-prospect\"\n },\n \"body\": {\n \"value\": \"{\\\"linkedinUrl\\\":\\\"{{LinkedIn URL}}\\\"}\"\n }\n },\n \"rateLimit\": {\n \"mode\": \"concurrency\",\n \"maxConcurrent\": 8,\n \"concurrencyGroup\": \"linkedin-harvest\"\n }\n },\n \"configFixture\": {\n \"inputMapping\": {\n \"method\": {\n \"value\": \"POST\"\n },\n \"endpoint\": {\n \"value\": \"/api/v4/enrich-prospect\"\n },\n \"body\": {\n \"value\": \"{\\\"linkedinUrl\\\":\\\"{{LinkedIn URL}}\\\"}\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.http_request\"\n ],\n \"runtimeOwner\": \"http-request cell executor\",\n \"requiresInputs\": [\n \"LinkedIn URL text column\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"score_icp_mcp\",\n \"section\": \"Sellable Presets\",\n \"label\": \"ICP Score\",\n \"columnType\": \"score_icp_mcp\",\n \"displayName\": \"MCP ICP Score\",\n \"lifecycleClass\": \"preset-selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"ICP Score\",\n \"defaultConfig\": {\n \"rubric\": []\n },\n \"configFixture\": {\n \"rubric\": [\n {\n \"checkName\": \"role_fit\",\n \"criterion\": \"Prospect matches the ICP\",\n \"description\": \"Role and company context match target buyer\",\n \"reason\": \"Fit predicts relevance\",\n \"isRequiredCheck\": \"true\",\n \"allowPartialCredit\": \"true\"\n }\n ],\n \"inputMapping\": {\n \"enrichedProspectId\": \"{{Enrich Prospect.id}}\"\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.score_icp_mcp\"\n ],\n \"runtimeOwner\": \"score ICP cell executor\",\n \"requiresInputs\": [\n \"Enrich Prospect output\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"generate_message\",\n \"section\": \"Sellable Presets\",\n \"label\": \"Generate Message\",\n \"columnType\": \"generate_message\",\n \"displayName\": \"Generate Message\",\n \"lifecycleClass\": \"preset-selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Generate Message\",\n \"defaultConfig\": {},\n \"configFixture\": {\n \"inputMapping\": {\n \"campaignOfferId\": {\n \"value\": \"{{Campaign Offer ID}}\"\n },\n \"enrichedProspectId\": {\n \"value\": \"{{Enrich Prospect.id}}\"\n },\n \"icpScore\": {\n \"value\": \"{{ICP Score.score}}\"\n }\n }\n },\n \"validationOwners\": [\n \"generateMessageConfigSchema\"\n ],\n \"runtimeOwner\": \"HTTP-backed message generation executor\",\n \"requiresInputs\": [\n \"Enrich Prospect output\",\n \"ICP Score output/context\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"passthrough\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"is_open_profile\",\n \"section\": \"LinkedIn\",\n \"label\": \"Check Open Profile\",\n \"columnType\": \"is_open_profile\",\n \"displayName\": \"Check Open Profile\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Check Open Profile\",\n \"defaultConfig\": {\n \"httpConfig\": {\n \"method\": \"POST\",\n \"endpoint\": \"/api/v1/linkedin/check-open-profile\",\n \"bodyTemplate\": {\n \"linkedinUrl\": \"{{linkedinUrl}}\"\n }\n }\n },\n \"configFixture\": {},\n \"validationOwners\": [\n \"checkOpenProfileColumn schema\"\n ],\n \"runtimeOwner\": \"open profile cell executor\",\n \"requiresInputs\": [\n \"LinkedIn profile URL\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"check_paid_inmail_credits\",\n \"section\": \"LinkedIn\",\n \"label\": \"Check Paid InMail Credits\",\n \"columnType\": \"check_paid_inmail_credits\",\n \"displayName\": \"Check Paid InMail Credits\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Check Paid InMail Credits\",\n \"defaultConfig\": {\n \"minPaidInmailCreditsForSend\": 25,\n \"refreshPolicy\": \"cache_only\",\n \"processing\": {\n \"autoUpdate\": true\n }\n },\n \"configFixture\": {\n \"minPaidInmailCreditsForSend\": 1,\n \"refreshPolicy\": \"cache_only\",\n \"processing\": {\n \"autoUpdate\": true\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.check_paid_inmail_credits\"\n ],\n \"runtimeOwner\": \"paid InMail credit cell executor\",\n \"requiresInputs\": [\n \"sender/campaign context\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"check_connection\",\n \"section\": \"LinkedIn\",\n \"label\": \"Check Connection\",\n \"columnType\": \"check_connection\",\n \"displayName\": \"Check Connection\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Check Connection\",\n \"defaultConfig\": {\n \"executorType\": \"check_connection\"\n },\n \"configFixture\": {\n \"executorType\": \"check_connection\"\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.check_connection\"\n ],\n \"runtimeOwner\": \"custom local connection executor\",\n \"requiresInputs\": [\n \"lead_linkedin_id\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"omitted runs with backend default; false saves without dispatch; true requests dispatch\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": true,\n \"runCellsOnEdit\": true,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"view_profile\",\n \"section\": \"LinkedIn\",\n \"label\": \"View Profile\",\n \"columnType\": \"view_profile\",\n \"displayName\": \"View Profile\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"View Profile\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"VIEW_PROFILE\"\n }\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"VIEW_PROFILE\"\n }\n },\n \"validationOwners\": [\n \"view_profile action schema\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"LinkedIn profile URL\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"send_invite\",\n \"section\": \"LinkedIn\",\n \"label\": \"Invite\",\n \"columnType\": \"send_invite\",\n \"displayName\": \"Invite\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Invite\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"INVITE\",\n \"waitForEvent\": {\n \"event\": \"connection_accept\",\n \"timeoutDays\": 25\n }\n }\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"INVITE\",\n \"waitForEvent\": {\n \"event\": \"connection_accept\",\n \"timeoutDays\": 25\n },\n \"allow_existing_connections_passthrough\": false\n },\n \"inputMapping\": {\n \"linkedinUrl\": {\n \"value\": \"{{LinkedIn URL}}\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.send_invite\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"LinkedIn profile URL\",\n \"optional connection note\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"send_dm\",\n \"section\": \"LinkedIn\",\n \"label\": \"DM\",\n \"columnType\": \"send_dm\",\n \"displayName\": \"DM\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"DM\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"DM\",\n \"sendEachParagraphAsMessage\": false,\n \"waitForEvent\": {\n \"event\": \"message_received\",\n \"timeoutDays\": 3\n }\n }\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"DM\",\n \"sendEachParagraphAsMessage\": false\n },\n \"inputMapping\": {\n \"message\": {\n \"value\": \"{{Generate Message.body}}\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.send_dm\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"message body\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"send_inmail_open\",\n \"section\": \"LinkedIn\",\n \"label\": \"InMail (Open Profile)\",\n \"columnType\": \"send_inmail_open\",\n \"displayName\": \"InMail (Open Profile)\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"InMail (Open Profile)\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"INMAIL_OPEN\",\n \"waitForEvent\": {\n \"event\": \"message_received\",\n \"timeoutDays\": 5\n }\n },\n \"fallbackToClosedInmail\": true,\n \"minPaidInmailCreditsForFallback\": 25\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"INMAIL_OPEN\",\n \"messageSource\": {\n \"column\": \"Generate Message\",\n \"subjectPath\": \"subject\",\n \"bodyPath\": \"body\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.send_inmail_open\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"subject\",\n \"body\",\n \"LinkedIn profile URL\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"send_inmail_closed\",\n \"section\": \"LinkedIn\",\n \"label\": \"InMail (Closed Profile)\",\n \"columnType\": \"send_inmail_closed\",\n \"displayName\": \"InMail (Closed Profile)\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"InMail (Closed Profile)\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"INMAIL_CLOSED\",\n \"waitForEvent\": {\n \"event\": \"message_received\",\n \"timeoutDays\": 5\n }\n },\n \"fallbackAcrossTiers\": false,\n \"minPaidInmailCreditsForSend\": 25\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"INMAIL_CLOSED\",\n \"messageSource\": {\n \"column\": \"Generate Message\",\n \"subjectPath\": \"subject\",\n \"bodyPath\": \"body\"\n }\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.send_inmail_closed\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"subject\",\n \"body\",\n \"LinkedIn profile URL\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"react_and_comment\",\n \"section\": \"LinkedIn\",\n \"label\": \"React & Comment\",\n \"columnType\": \"react_and_comment\",\n \"displayName\": \"React & Comment\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"React & Comment\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"COMMENT\"\n }\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"COMMENT\"\n }\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.react_and_comment\"\n ],\n \"runtimeOwner\": \"LinkedIn action sweeper\",\n \"requiresInputs\": [\n \"LinkedIn post URL\",\n \"comment text\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"text\",\n \"section\": \"Data\",\n \"label\": \"Text\",\n \"columnType\": \"text\",\n \"displayName\": \"Text\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Text\",\n \"defaultConfig\": {\n \"placeholder\": \"LinkedIn URL or any text\"\n },\n \"configFixture\": {\n \"placeholder\": \"LinkedIn URL or any text\"\n },\n \"validationOwners\": [\n \"textConfigSchema\"\n ],\n \"runtimeOwner\": \"display/manual text owner\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"visible\",\n \"optionId\": \"checkbox\",\n \"section\": \"Data\",\n \"label\": \"Checkbox\",\n \"columnType\": \"checkbox\",\n \"displayName\": \"Checkbox\",\n \"lifecycleClass\": \"selectable\",\n \"createable\": true,\n \"allowedSurfaces\": [\n \"ui-dropdown\",\n \"api-add-column\",\n \"api-bulk-blueprint\",\n \"mcp-add-column\",\n \"mcp-commit-blueprint\"\n ],\n \"defaultName\": \"Checkbox\",\n \"defaultConfig\": {\n \"default\": false\n },\n \"configFixture\": {\n \"default\": false,\n \"editable\": true\n },\n \"validationOwners\": [\n \"checkboxConfigSchema\"\n ],\n \"runtimeOwner\": \"checkbox cell executor\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [\n \"id\",\n \"type\",\n \"name\",\n \"config\",\n \"inputMapping\",\n \"runCondition\"\n ],\n \"editFields\": [\n \"name\",\n \"config\",\n \"runCells\"\n ],\n \"runCellsBehavior\": \"manual or sweeper-owned; false is save-only and true only queues when backend supports it\",\n \"safetyVerdict\": \"create_update_delete_reorder_supported\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"generic_column_config\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": true,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": true,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"create_update_delete_reorder_supported\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.action\",\n \"section\": \"Hidden Active\",\n \"label\": \"LinkedIn Action\",\n \"columnType\": \"action\",\n \"displayName\": \"LinkedIn Action\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"LinkedIn Action\",\n \"defaultConfig\": {\n \"actionConfig\": {\n \"actionType\": \"INVITE\"\n }\n },\n \"configFixture\": {\n \"actionConfig\": {\n \"actionType\": \"INVITE\"\n }\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"sequence\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.datetime\",\n \"section\": \"Hidden Active\",\n \"label\": \"Date/Time\",\n \"columnType\": \"datetime\",\n \"displayName\": \"Date/Time\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Date/Time\",\n \"defaultConfig\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.eligible_senders\",\n \"section\": \"Hidden Active\",\n \"label\": \"Eligible Senders\",\n \"columnType\": \"eligible_senders\",\n \"displayName\": \"Eligible Senders\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Eligible Senders\",\n \"defaultConfig\": {\n \"processing\": {\n \"autoUpdate\": true\n }\n },\n \"configFixture\": {\n \"processing\": {\n \"autoUpdate\": true\n }\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"sequence\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": true,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.example_checkbox\",\n \"section\": \"Hidden Active\",\n \"label\": \"Example\",\n \"columnType\": \"example_checkbox\",\n \"displayName\": \"Example\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Example\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.json\",\n \"section\": \"Hidden Active\",\n \"label\": \"JSON\",\n \"columnType\": \"json\",\n \"displayName\": \"JSON\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"JSON\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.linkedin_url\",\n \"section\": \"Hidden Active\",\n \"label\": \"LinkedIn URL\",\n \"columnType\": \"linkedin_url\",\n \"displayName\": \"LinkedIn URL\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"LinkedIn URL\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.next_action_at\",\n \"section\": \"Hidden Active\",\n \"label\": \"Next Action\",\n \"columnType\": \"next_action_at\",\n \"displayName\": \"Next Action\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Next Action\",\n \"defaultConfig\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.reply_sentiment\",\n \"section\": \"Hidden Active\",\n \"label\": \"Reply Sentiment\",\n \"columnType\": \"reply_sentiment\",\n \"displayName\": \"Reply Sentiment\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Reply Sentiment\",\n \"defaultConfig\": {\n \"options\": [\n \"interested\",\n \"not_interested\",\n \"out_of_office\",\n \"question\",\n \"neutral\",\n \"negative\"\n ],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"options\": [\n \"interested\",\n \"not_interested\",\n \"out_of_office\",\n \"question\",\n \"neutral\",\n \"negative\"\n ],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [\n \"options\"\n ],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.select\",\n \"section\": \"Hidden Active\",\n \"label\": \"Select\",\n \"columnType\": \"select\",\n \"displayName\": \"Select\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Select\",\n \"defaultConfig\": {\n \"options\": [],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"options\": [],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [\n \"options\"\n ],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [\n \"name\",\n \"config\"\n ],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"limited_edit_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"generic_column_config\",\n \"genericFallbackAllowed\": true,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config.options\",\n \"config.editable\",\n \"config.source\"\n ]\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": true,\n \"rename\": true,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"limited_edit_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [\n \"config.options\",\n \"config.editable\",\n \"config.source\"\n ],\n \"genericFallbackAllowed\": true\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.sent_at\",\n \"section\": \"Hidden Active\",\n \"label\": \"Sent At\",\n \"columnType\": \"sent_at\",\n \"displayName\": \"Sent At\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Sent At\",\n \"defaultConfig\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"hidden_active\",\n \"optionId\": \"hidden.sequence_status\",\n \"section\": \"Hidden Active\",\n \"label\": \"Sequence Status\",\n \"columnType\": \"sequence_status\",\n \"displayName\": \"Sequence Status\",\n \"lifecycleClass\": \"system-owned\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Sequence Status\",\n \"defaultConfig\": {\n \"options\": [\n \"pending\",\n \"queued\",\n \"scheduled\",\n \"sent\",\n \"in_convo\",\n \"replied\",\n \"completed\",\n \"failed\"\n ],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"configFixture\": {\n \"options\": [\n \"pending\",\n \"queued\",\n \"scheduled\",\n \"sent\",\n \"in_convo\",\n \"replied\",\n \"completed\",\n \"failed\"\n ],\n \"editable\": false,\n \"source\": \"system\"\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [\n \"options\"\n ],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"not MCP-createable; existing-table safety only\",\n \"safetyVerdict\": \"read_delete_existing_table_only\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": true,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"read_delete_existing_table_only\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.enrich_company\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"Enrich Company\",\n \"columnType\": \"enrich_company\",\n \"displayName\": \"Enrich Company\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Enrich Company\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"enrichment\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_http_request\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_http_request\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.enrich_person\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"Enrich Prospect (legacy)\",\n \"columnType\": \"enrich_person\",\n \"displayName\": \"Enrich Prospect (legacy)\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Enrich Prospect (legacy)\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"enrichment\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_http_request\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_http_request\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.generate_message_sequence\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"Generate Message\",\n \"columnType\": \"generate_message_sequence\",\n \"displayName\": \"Generate Message\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Generate Message\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"generation\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_http_request\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_http_request\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.input\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"Text Input\",\n \"columnType\": \"input\",\n \"displayName\": \"Text Input\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"Text Input\",\n \"defaultConfig\": {},\n \"configFixture\": {},\n \"validationOwners\": [],\n \"runtimeOwner\": \"input\",\n \"requiresInputs\": [],\n \"manualOnly\": true,\n \"usesCredits\": false,\n \"autoRuns\": false,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_text\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_text\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.score_icp\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"ICP Score\",\n \"columnType\": \"score_icp\",\n \"displayName\": \"ICP Score\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"ICP Score\",\n \"defaultConfig\": {\n \"qualificationThreshold\": 60\n },\n \"configFixture\": {\n \"qualificationThreshold\": 60\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"scoring\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"fallback\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_score_icp_mcp\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_score_icp_mcp\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n },\n {\n \"kind\": \"deprecated_load_only\",\n \"optionId\": \"deprecated.score_icp_rubric\",\n \"section\": \"Deprecated Load Only\",\n \"label\": \"ICP Rubric Score (legacy alias)\",\n \"columnType\": \"score_icp_rubric\",\n \"displayName\": \"ICP Rubric Score (legacy alias)\",\n \"lifecycleClass\": \"load-only-deprecated\",\n \"createable\": false,\n \"allowedSurfaces\": [\n \"load-only\"\n ],\n \"defaultName\": \"ICP Rubric Score (legacy alias)\",\n \"defaultConfig\": {\n \"rubric\": []\n },\n \"configFixture\": {\n \"rubric\": []\n },\n \"validationOwners\": [],\n \"runtimeOwner\": \"scoring\",\n \"requiresInputs\": [],\n \"manualOnly\": false,\n \"usesCredits\": true,\n \"autoRuns\": true,\n \"schemaPolicy\": \"strict\",\n \"createFields\": [],\n \"editFields\": [],\n \"runCellsBehavior\": \"deprecated/load-only alias; use suggested replacement where present\",\n \"safetyVerdict\": \"load_only_use_score_icp_mcp\",\n \"configEditor\": {\n \"kind\": \"generic\",\n \"createKey\": \"none\",\n \"editKey\": \"none\",\n \"genericFallbackAllowed\": false,\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": []\n },\n \"mutationCapabilities\": {\n \"create\": false,\n \"editConfig\": false,\n \"rename\": false,\n \"delete\": false,\n \"reorder\": false,\n \"runCellsOnCreate\": false,\n \"runCellsOnEdit\": false,\n \"safetyVerdict\": \"load_only_use_score_icp_mcp\"\n },\n \"configWriteMode\": \"full_replace\",\n \"editableConfigFields\": [],\n \"genericFallbackAllowed\": false\n }\n ]\n}";
2
2
  export const columnSchemaManifest = JSON.parse(manifestJson);
3
3
  export const createableColumnTypes = columnSchemaManifest.createableTypes;
4
4
  export function getCreateableColumnTypeSet() {
package/dist/server.js CHANGED
@@ -15,6 +15,7 @@ import { handleDeleteColumn } from "./tools/column-delete.js";
15
15
  import { handleReorderColumns } from "./tools/column-reorder.js";
16
16
  import { handleGetColumnSchema, handleListColumnTypes, } from "./tools/column-schema.js";
17
17
  import { handleUpdateColumn } from "./tools/column-update.js";
18
+ import { getCompanyInfoTool, setCompanyInfoTool, } from "./tools/company-info.js";
18
19
  import { calculateLinkedInHookPreviewTool, capturePostIdeaTool, getPostDraftTool, getPostIdeaTool, getPublishedPostTool, listPostDraftIterationsTool, listPostDraftsTool, listPostIdeasTool, listPublishedPostsTool, markPostPublishedTool, renderLinkedInPostPreviewTool, saveHookResearchTool, savePostDraftTool, updatePostDraftTool, updatePublishedPostMetricsTool, } from "./tools/content-posts.js";
19
20
  import { getCampaignContext, hydrateCampaignContextFromCampaign, markCampaignContextDirty, } from "./tools/context.js";
20
21
  import { addToCommentCampaign, addToConnectionCampaign, addToInmailCampaign, getEngagedPosts, getOrCreateDirectCampaignTable, pauseDirectCampaign, startDirectCampaign, } from "./tools/direct-campaigns.js";
@@ -36,6 +37,7 @@ import { waitForCampaignTableReady, waitForLeadListReady, } from "./tools/readin
36
37
  import { allTools } from "./tools/registry.js";
37
38
  import { getRows, getTableRows, getTableRowsMinimal } from "./tools/rows.js";
38
39
  import { addRubricItem, checkRubric, deleteRubricItem, draftRubrics, saveRubrics, selectNecessaryRubrics, updateRubricItem, waitForRubricResults, } from "./tools/rubrics.js";
40
+ import { getSenderRoutingTool, setSenderRoutingTool, } from "./tools/sender-routing.js";
39
41
  import { getSender, listSenders } from "./tools/senders.js";
40
42
  import { attachRecommendedSequence, attachSequence, createWorkflowTable, } from "./tools/sequencer.js";
41
43
  import { exportTableCsv, listTables } from "./tools/tables.js";
@@ -432,6 +434,18 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
432
434
  case "get_engaged_posts":
433
435
  result = await getEngagedPosts(args);
434
436
  break;
437
+ case "get_sender_routing":
438
+ result = await getSenderRoutingTool();
439
+ break;
440
+ case "set_sender_routing":
441
+ result = await setSenderRoutingTool(args);
442
+ break;
443
+ case "get_company_info":
444
+ result = await getCompanyInfoTool();
445
+ break;
446
+ case "set_company_info":
447
+ result = await setCompanyInfoTool(args);
448
+ break;
435
449
  case "list_senders":
436
450
  result = await listSenders();
437
451
  break;
@@ -0,0 +1,78 @@
1
+ type CompanyInfoResponse = {
2
+ companyInfoMarkdown: string | null;
3
+ updatedAt: string | null;
4
+ characterCount: number;
5
+ maxLength: number;
6
+ };
7
+ type CompanyInfoInput = {
8
+ companyInfoMarkdown?: string | null;
9
+ expectedUpdatedAt?: string | null;
10
+ forceOverwrite?: boolean;
11
+ };
12
+ export declare const companyInfoToolDefinitions: ({
13
+ name: string;
14
+ description: string;
15
+ inputSchema: {
16
+ type: string;
17
+ properties: {
18
+ companyInfoMarkdown?: undefined;
19
+ expectedUpdatedAt?: undefined;
20
+ forceOverwrite?: undefined;
21
+ };
22
+ required: never[];
23
+ additionalProperties: boolean;
24
+ };
25
+ } | {
26
+ name: string;
27
+ description: string;
28
+ inputSchema: {
29
+ type: string;
30
+ properties: {
31
+ companyInfoMarkdown: {
32
+ type: string[];
33
+ description: string;
34
+ };
35
+ expectedUpdatedAt: {
36
+ type: string[];
37
+ description: string;
38
+ };
39
+ forceOverwrite: {
40
+ type: string;
41
+ description: string;
42
+ };
43
+ };
44
+ required: never[];
45
+ additionalProperties: boolean;
46
+ };
47
+ })[];
48
+ export declare function getCompanyInfoTool(): Promise<CompanyInfoResponse | {
49
+ ok: false;
50
+ error: string;
51
+ }>;
52
+ export declare function setCompanyInfoTool(input?: CompanyInfoInput): Promise<{
53
+ ok: false;
54
+ saved?: false;
55
+ error: string;
56
+ status?: number;
57
+ authError?: boolean;
58
+ guidance?: string;
59
+ } | {
60
+ ok: boolean;
61
+ saved: boolean;
62
+ error: string;
63
+ companyInfoMarkdown?: undefined;
64
+ updatedAt?: undefined;
65
+ characterCount?: undefined;
66
+ maxLength?: undefined;
67
+ cleared?: undefined;
68
+ } | {
69
+ saved: boolean;
70
+ companyInfoMarkdown: string | null;
71
+ updatedAt: string | null;
72
+ characterCount: number;
73
+ maxLength: number;
74
+ cleared: boolean;
75
+ ok?: undefined;
76
+ error?: undefined;
77
+ }>;
78
+ export {};
@@ -0,0 +1,152 @@
1
+ import { getApi, SellableApiError } from "../api.js";
2
+ const MAX_COMPANY_INFO_MARKDOWN_LENGTH = 65536;
3
+ export const companyInfoToolDefinitions = [
4
+ {
5
+ name: "get_company_info",
6
+ description: "Return the active workspace's canonical Company Info markdown document plus updatedAt metadata. Read this before calling set_company_info so you can pass expectedUpdatedAt and avoid overwriting someone else's edits.",
7
+ inputSchema: {
8
+ type: "object",
9
+ properties: {},
10
+ required: [],
11
+ additionalProperties: false,
12
+ },
13
+ },
14
+ {
15
+ name: "set_company_info",
16
+ description: 'Replace the active workspace Company Info markdown document in full through the narrow Company Info API. Use real newlines, never literal "\\n" sequences. Pass expectedUpdatedAt from get_company_info for normal writes; only pass forceOverwrite: true when the user deliberately approves overwriting the latest version. Omit companyInfoMarkdown or pass null/empty/whitespace to clear Company Info.',
17
+ inputSchema: {
18
+ type: "object",
19
+ properties: {
20
+ companyInfoMarkdown: {
21
+ type: ["string", "null"],
22
+ description: 'Complete Company Info markdown to store verbatim. Use real newlines, not literal "\\n" sequences. Empty, null, or omitted markdown clears Company Info.',
23
+ },
24
+ expectedUpdatedAt: {
25
+ type: ["string", "null"],
26
+ description: "The updatedAt returned by get_company_info. Use null only when get_company_info returned updatedAt: null for an unconfigured document.",
27
+ },
28
+ forceOverwrite: {
29
+ type: "boolean",
30
+ description: "Set true only when the user explicitly approves overwriting without an expectedUpdatedAt guard.",
31
+ },
32
+ },
33
+ required: [],
34
+ additionalProperties: false,
35
+ },
36
+ },
37
+ ];
38
+ function isCompanyInfoResponse(value) {
39
+ if (!value || typeof value !== "object")
40
+ return false;
41
+ const data = value;
42
+ const markdown = data.companyInfoMarkdown;
43
+ const updatedAt = data.updatedAt;
44
+ return ((typeof markdown === "string" || markdown === null) &&
45
+ (typeof updatedAt === "string" || updatedAt === null) &&
46
+ typeof data.characterCount === "number" &&
47
+ typeof data.maxLength === "number");
48
+ }
49
+ function parseErrorBody(body) {
50
+ try {
51
+ const parsed = JSON.parse(body);
52
+ for (const value of [parsed.message, parsed.error, parsed.details]) {
53
+ if (typeof value === "string" && value.trim()) {
54
+ return value;
55
+ }
56
+ }
57
+ }
58
+ catch {
59
+ // Body is plain text or invalid JSON; return it as-is below.
60
+ }
61
+ return body;
62
+ }
63
+ function toolError(action, error) {
64
+ if (error instanceof SellableApiError) {
65
+ const reason = parseErrorBody(error.body);
66
+ return {
67
+ ok: false,
68
+ ...(action === "save" ? { saved: false } : {}),
69
+ error: `Failed to ${action} Company Info: ${reason}`,
70
+ status: error.status,
71
+ authError: error.isAuthError,
72
+ ...(error.guidance ? { guidance: error.guidance } : {}),
73
+ };
74
+ }
75
+ const reason = error instanceof Error ? error.message : String(error);
76
+ return {
77
+ ok: false,
78
+ ...(action === "save" ? { saved: false } : {}),
79
+ error: `Failed to ${action} Company Info: ${reason}`,
80
+ };
81
+ }
82
+ function normalizeCompanyInfoResponse(value) {
83
+ if (!isCompanyInfoResponse(value)) {
84
+ return {
85
+ ok: false,
86
+ error: "Company Info API returned a malformed response. Retry after refreshing the Sellable MCP package.",
87
+ };
88
+ }
89
+ return value;
90
+ }
91
+ export async function getCompanyInfoTool() {
92
+ try {
93
+ const api = getApi();
94
+ const response = await api.get("/api/v3/reply-management/company-info");
95
+ return normalizeCompanyInfoResponse(response);
96
+ }
97
+ catch (error) {
98
+ return toolError("read", error);
99
+ }
100
+ }
101
+ export async function setCompanyInfoTool(input = {}) {
102
+ const markdown = typeof input.companyInfoMarkdown === "string"
103
+ ? input.companyInfoMarkdown
104
+ : null;
105
+ const normalizedMarkdown = markdown?.trim() ? markdown : null;
106
+ if (typeof markdown === "string" &&
107
+ markdown.length > MAX_COMPANY_INFO_MARKDOWN_LENGTH) {
108
+ return {
109
+ ok: false,
110
+ saved: false,
111
+ error: `companyInfoMarkdown exceeds the 64KB limit (got ${markdown.length} chars). Shorten the Company Info document and retry.`,
112
+ };
113
+ }
114
+ if (input.forceOverwrite !== true && input.expectedUpdatedAt === undefined) {
115
+ return {
116
+ ok: false,
117
+ saved: false,
118
+ error: "expectedUpdatedAt is required for set_company_info. Call get_company_info first, then retry with the returned updatedAt value, or pass forceOverwrite: true only after explicit user approval.",
119
+ };
120
+ }
121
+ const payload = {
122
+ companyInfoMarkdown: normalizedMarkdown,
123
+ };
124
+ if (input.forceOverwrite === true) {
125
+ payload.forceOverwrite = true;
126
+ }
127
+ else {
128
+ payload.expectedUpdatedAt = input.expectedUpdatedAt ?? null;
129
+ }
130
+ try {
131
+ const api = getApi();
132
+ const response = await api.put("/api/v3/reply-management/company-info", payload);
133
+ const normalizedResponse = normalizeCompanyInfoResponse(response);
134
+ if ("ok" in normalizedResponse) {
135
+ return {
136
+ ...normalizedResponse,
137
+ saved: false,
138
+ };
139
+ }
140
+ return {
141
+ saved: true,
142
+ companyInfoMarkdown: normalizedResponse.companyInfoMarkdown,
143
+ updatedAt: normalizedResponse.updatedAt,
144
+ characterCount: normalizedResponse.characterCount,
145
+ maxLength: normalizedResponse.maxLength,
146
+ cleared: normalizedResponse.companyInfoMarkdown === null,
147
+ };
148
+ }
149
+ catch (error) {
150
+ return toolError("save", error);
151
+ }
152
+ }
@@ -11,6 +11,7 @@ import { columnDeleteToolDefinitions } from "./column-delete.js";
11
11
  import { columnReorderToolDefinitions } from "./column-reorder.js";
12
12
  import { columnSchemaToolDefinitions } from "./column-schema.js";
13
13
  import { columnUpdateToolDefinitions } from "./column-update.js";
14
+ import { companyInfoToolDefinitions } from "./company-info.js";
14
15
  import { contentPostToolDefinitions } from "./content-posts.js";
15
16
  import { contextToolDefinitions } from "./context.js";
16
17
  import { directCampaignToolDefinitions } from "./direct-campaigns.js";
@@ -31,6 +32,7 @@ import { promptToolDefinitions } from "./prompts.js";
31
32
  import { readinessToolDefinitions } from "./readiness.js";
32
33
  import { rowToolDefinitions } from "./rows.js";
33
34
  import { rubricToolDefinitions } from "./rubrics.js";
35
+ import { senderRoutingToolDefinitions } from "./sender-routing.js";
34
36
  import { senderToolDefinitions } from "./senders.js";
35
37
  import { sequencerToolDefinitions } from "./sequencer.js";
36
38
  import { tableToolDefinitions } from "./tables.js";
@@ -66,6 +68,8 @@ export const allTools = [
66
68
  ...linkedinToolDefinitions,
67
69
  ...onDemandToolDefinitions,
68
70
  ...directCampaignToolDefinitions,
71
+ ...companyInfoToolDefinitions,
72
+ ...senderRoutingToolDefinitions,
69
73
  ...senderToolDefinitions,
70
74
  ...engageStateToolDefinitions,
71
75
  ...engageMemoryToolDefinitions,
@@ -0,0 +1,64 @@
1
+ type SenderRoutingResponse = {
2
+ configured: boolean;
3
+ rulesMarkdown: string | null;
4
+ senders: Array<{
5
+ id: string;
6
+ name: string | null;
7
+ }>;
8
+ senderCount: number;
9
+ updatedAt: string | null;
10
+ };
11
+ export declare const senderRoutingToolDefinitions: ({
12
+ name: string;
13
+ description: string;
14
+ inputSchema: {
15
+ type: string;
16
+ properties: {
17
+ rulesMarkdown?: undefined;
18
+ };
19
+ required: never[];
20
+ additionalProperties: boolean;
21
+ };
22
+ } | {
23
+ name: string;
24
+ description: string;
25
+ inputSchema: {
26
+ type: string;
27
+ properties: {
28
+ rulesMarkdown: {
29
+ type: string;
30
+ description: string;
31
+ };
32
+ };
33
+ required: never[];
34
+ additionalProperties: boolean;
35
+ };
36
+ })[];
37
+ export declare function getSenderRoutingTool(): Promise<SenderRoutingResponse>;
38
+ export declare function setSenderRoutingTool(input?: {
39
+ rulesMarkdown?: string;
40
+ }): Promise<{
41
+ ok: boolean;
42
+ error: string;
43
+ saved?: undefined;
44
+ configured?: undefined;
45
+ rulesMarkdown?: undefined;
46
+ characterCount?: undefined;
47
+ senders?: undefined;
48
+ senderCount?: undefined;
49
+ note?: undefined;
50
+ } | {
51
+ saved: boolean;
52
+ configured: boolean;
53
+ rulesMarkdown: string | null;
54
+ characterCount: number;
55
+ senders: {
56
+ id: string;
57
+ name: string | null;
58
+ }[];
59
+ senderCount: number;
60
+ note: string;
61
+ ok?: undefined;
62
+ error?: undefined;
63
+ }>;
64
+ export {};
@@ -0,0 +1,57 @@
1
+ import { getApi } from "../api.js";
2
+ const MAX_RULES_MARKDOWN_LENGTH = 65536;
3
+ export const senderRoutingToolDefinitions = [
4
+ {
5
+ name: "get_sender_routing",
6
+ description: "Return the workspace's territory routing rules markdown plus the connected sender roster. If configured is false, routing is inactive and all campaign senders are eligible everywhere.",
7
+ inputSchema: {
8
+ type: "object",
9
+ properties: {},
10
+ required: [],
11
+ additionalProperties: false,
12
+ },
13
+ },
14
+ {
15
+ name: "set_sender_routing",
16
+ description: 'Store free-form sender territory routing markdown verbatim for the active workspace. Use real newlines, never literal "\\n" sequences. Geography, segments, verticals, and named-account exceptions are all valid. Omit rulesMarkdown or pass an empty string to clear the rules and disable routing. Senders not mentioned in rules remain globally eligible. The response echoes the stored markdown and full sender roster; verify every sender is covered by a rule or intentionally unrestricted, then confirm coverage with the user.',
17
+ inputSchema: {
18
+ type: "object",
19
+ properties: {
20
+ rulesMarkdown: {
21
+ type: "string",
22
+ description: 'Free-form markdown rules to store verbatim. Use real newlines, not literal "\\n" sequences. Empty or omitted markdown clears the rules.',
23
+ },
24
+ },
25
+ required: [],
26
+ additionalProperties: false,
27
+ },
28
+ },
29
+ ];
30
+ export async function getSenderRoutingTool() {
31
+ const api = getApi();
32
+ return api.get("/api/v3/sender-routing");
33
+ }
34
+ export async function setSenderRoutingTool(input = {}) {
35
+ if (input.rulesMarkdown &&
36
+ input.rulesMarkdown.length > MAX_RULES_MARKDOWN_LENGTH) {
37
+ return {
38
+ ok: false,
39
+ error: `rulesMarkdown exceeds the 64KB limit (got ${input.rulesMarkdown.length} chars). Shorten the rules and retry.`,
40
+ };
41
+ }
42
+ const api = getApi();
43
+ const response = await api.put("/api/v3/sender-routing", {
44
+ rulesMarkdown: input.rulesMarkdown?.trim() ? input.rulesMarkdown : null,
45
+ });
46
+ return {
47
+ saved: true,
48
+ configured: response.configured,
49
+ rulesMarkdown: response.rulesMarkdown,
50
+ characterCount: response.rulesMarkdown?.length ?? 0,
51
+ senders: response.senders,
52
+ senderCount: response.senderCount,
53
+ note: response.senderCount === 0
54
+ ? "Rules saved but no connected senders to route - coverage cannot be verified. Connect senders, then re-check routing coverage."
55
+ : "Verify every sender above is either covered by a rule or intentionally unrestricted, then confirm coverage with the user.",
56
+ };
57
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/mcp",
3
- "version": "0.1.324",
3
+ "version": "0.1.325",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code and Codex campaign workflows",
6
6
  "main": "dist/index.js",
@@ -177,16 +177,18 @@ read/edit/delete safety, but they are not valid `add_column` or
177
177
  - type: `check_paid_inmail_credits`
178
178
  - displayName: `Check Paid InMail Credits`
179
179
  - category: LinkedIn Actions
180
- - inputs: sender/campaign context and a closed-profile branch, usually after
181
- `is_open_profile` returns false.
180
+ - inputs: sender/campaign context, sender-scoped Sales Navigator credit state,
181
+ and a closed-profile branch, usually after `is_open_profile` returns false.
182
182
  - config: optional `minPaidInmailCreditsForSend`; defaults to the paid InMail
183
183
  send threshold used by the closed-profile InMail action.
184
- - outputs: `has_paid_inmail_credits`, available credit count, freshness
185
- metadata, and reason labels for blocked sends.
186
- - when to use: Use before `send_inmail_closed` so paid InMail sends only run
187
- when the sender has enough fresh credits.
188
- - when NOT to use: Do not use this for open-profile InMail. It never spends
189
- credits or sends a message; it only gates the paid path.
184
+ - outputs: `has_paid_inmail_credits`, available credit count, freshness or
185
+ stale-state metadata, and reason labels for blocked sends.
186
+ - when to use: Use after Check Open Profile says a prospect is closed-profile
187
+ and the sequence is explicitly allowed to spend paid InMail credits. Branch
188
+ yes to `send_inmail_closed`; branch no to `check_connection` or invite flow.
189
+ - when NOT to use: Do not use for free open-profile InMail, do not spend
190
+ credits from this check itself, and do not add it unless the campaign policy
191
+ opts into the paid-InMail fallback mode.
190
192
 
191
193
  ### Check Connection
192
194
 
@@ -211,20 +213,19 @@ read/edit/delete safety, but they are not valid `add_column` or
211
213
  direct `send_dm` is acceptable because `send_dm` also performs the runtime
212
214
  connection lookup.
213
215
 
214
- ### Check Paid InMail Credits
216
+ ### Eligible Senders
215
217
 
216
- - type: `check_paid_inmail_credits`
217
- - displayName: `Check Paid InMail Credits`
218
+ - type: `eligible_senders`
219
+ - displayName: `Eligible Senders`
218
220
  - category: LinkedIn Actions
219
- - inputs: sender-scoped Sales Navigator credit state and optional paid-credit floor.
220
- - outputs: `has_paid_inmail_credits`, remaining-credit proof, stale-state flags,
221
- and fallback reason metadata.
222
- - when to use: Use after Check Open Profile says a prospect is closed-profile
223
- and the sequence is explicitly allowed to spend paid InMail credits. Branch
224
- yes to `send_inmail_closed`; branch no to `check_connection` or invite flow.
225
- - when NOT to use: Do not use for free open-profile InMail, do not spend credits
226
- from this check itself, and do not add it unless the campaign policy opts into
227
- the paid-InMail fallback mode.
221
+ - inputs: campaign sender roster plus workspace sender territory rules.
222
+ - outputs: surviving sender ids, optional assigned sender, rules hash, and
223
+ classification reasoning.
224
+ - when to use: Use before LinkedIn send/action columns when a multi-sender
225
+ campaign must respect territory rules before scheduling or budget allocation.
226
+ - when NOT to use: Do not use for single-sender campaigns or as a replacement
227
+ for connection/open-profile/credit checks; it only narrows which campaign
228
+ senders are territory-eligible.
228
229
 
229
230
  ### LinkedIn Action
230
231
 
@@ -39,7 +39,9 @@ Default evergreen plan per workspace (override only if the prompt specifies diff
39
39
 
40
40
  - The sequence is auto-selected by sender tier; do not hand-author sequence templates here. Never select a paid-InMail template.
41
41
  3. **Verify each slot** after create/reuse: `get_campaign` shows the table exists and a sequence is attached (`list_tables({ hasSequence: true })` as a cross-check).
42
- 4. **Report the reconcile plan and result** every slot tagged `reused` or `created`, nothing else:
42
+ 4. **Confirm the message template with the user.** Show the exact first-message template each created campaign's brief carries and ask the user to confirm or adjust it before moving on. If the user adjusts it, update the brief via `update_campaign_brief` and show the final version.
43
+ 5. **Prove the template on one real row.** For ONE campaign that has at least one lead row (add one via `add_on_demand_leads` if every lane is empty and the user provides/approves a test lead), generate a message for exactly one row (`queue_campaign_cells` with `columnRole: "generateMessage"`, `rowSelector: { type: "reviewBatch", limit: 1 }` or the single row's ID), wait for it, then show the user the generated message next to the template so they can confirm alignment (tone, structure, no internal vocabulary, correct token substitution). Do NOT approve the row or generate for more rows — one sample only.
44
+ 6. **Report the reconcile plan and result** — every slot tagged `reused` or `created`, plus the confirmed template and the sample message:
43
45
 
44
46
  ```
45
47
  Evergreen Reconcile — {date}