@sellable/mcp 0.1.319 → 0.1.320

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -474,6 +474,23 @@ compatibility and as the tested foundation-memory engine.
474
474
  - `import_leads` - Create a lead list and start importing leads
475
475
  - `confirm_lead_list` - Import confirmed lead list into campaign table
476
476
 
477
+ ### Inbox Reply Tools (Approval-Gated)
478
+
479
+ These tools use the existing product `/api/v3/inbox` routes, the same backend
480
+ surface as the Sellable UI.
481
+
482
+ - `search_inbox_threads` - Search inbox threads through `GET /api/v3/inbox`
483
+ - `get_inbox_thread` - Load one inbox thread through `GET /api/v3/inbox/[threadId]`
484
+ - `check_inbox_reply_eligibility` - Load product reply eligibility for one thread
485
+ - `update_inbox_draft` - Edit an existing draft through `PATCH /api/v3/inbox/[threadId]/draft`
486
+ - `send_inbox_draft` - Send the approved current draft after exact body, version, thread snapshot, idempotency key, and explicit operator approval checks
487
+ - `send_inbox_manual_reply` - Send one exact approved manual reply after message hash, thread snapshot, idempotency key, and explicit operator approval checks
488
+
489
+ No production send smoke may run without explicit operator approval for the
490
+ workspace, sender, thread or recipient, exact body, tool, route, and expected
491
+ side effect. Draft editing only edits an existing draft; new reply draft
492
+ generation is not part of these inbox tools.
493
+
477
494
  ### Processing Tools (Free)
478
495
 
479
496
  - `draft_rubrics` - Draft rubric criteria (stored in MCP state)
@@ -1,4 +1,4 @@
1
- const manifestJson = "{\n \"generatedAt\": \"deterministic\",\n \"counts\": {\n \"visible\": 18,\n \"hiddenActive\": 10,\n \"deprecatedLoadOnly\": 6\n },\n \"createableTypes\": [\n \"ai_column\",\n \"check_connection\",\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 \"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_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\": 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_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\": \"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 \"executorType\": \"check_paid_inmail_credits\",\n \"minPaidInmailCreditsForSend\": 25,\n \"refreshPolicy\": \"cache_only\"\n },\n \"configFixture\": {\n \"executorType\": \"check_paid_inmail_credits\"\n },\n \"validationOwners\": [\n \"CONFIG_SCHEMA_BY_TYPE.check_paid_inmail_credits\"\n ],\n \"runtimeOwner\": \"check_paid_inmail_credits local executor\",\n \"requiresInputs\": [\n \"campaign sender\"\n ],\n \"manualOnly\": false,\n \"usesCredits\": false,\n \"autoRuns\": true,\n \"schemaPolicy\": \"fallback\",\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}";
2
2
  export const columnSchemaManifest = JSON.parse(manifestJson);
3
3
  export const createableColumnTypes = columnSchemaManifest.createableTypes;
4
4
  export function getCreateableColumnTypeSet() {
package/dist/index-dev.js CHANGED
File without changes
package/dist/index.js CHANGED
File without changes
package/dist/server.js CHANGED
@@ -25,6 +25,7 @@ import { getEngageStateTool, setEngageStateTool, } from "./tools/engage-state.js
25
25
  import { bulkEnrichWithProspeo, enrichWithProspeo, getProspeoCredits, } from "./tools/enrichment.js";
26
26
  import { getCampaignFramework } from "./tools/framework.js";
27
27
  import { confirmHarvestJobCompanies, searchHarvestJobs, } from "./tools/harvest-jobs.js";
28
+ import { checkInboxReplyEligibility, getInboxThread, searchInboxThreads, sendInboxDraft, sendInboxManualReply, updateInboxDraft, } from "./tools/inbox.js";
28
29
  import { cancelLeadImport, confirmLeadList, confirmProspeoCompanyAccounts, getProviderPrompt, importLeads, listDncEntriesTool, loadCsvDncEntriesTool, loadCsvDomains, loadCsvLinkedinLeads, lookupSalesNavFilter, saveDomainFilters, searchApollo, searchProspeo, searchProspeoCompanies, searchSalesNav, searchSignals, selectPromisingPosts, setHeadlineICPCriteria, } from "./tools/leads.js";
29
30
  import { fetchCompany, fetchCompanyPosts, fetchLinkedInPosts, fetchLinkedInProfile, fetchPostEngagers, getLinkedInProfile, getUserPosts, } from "./tools/linkedin.js";
30
31
  import { getCampaignNavigationState } from "./tools/navigation.js";
@@ -80,6 +81,11 @@ function formatSubskillPromptText(result) {
80
81
  : "";
81
82
  return `${header}${result.prompt}${footer}`;
82
83
  }
84
+ function isStructuredToolResult(result) {
85
+ return (!!result &&
86
+ typeof result === "object" &&
87
+ Array.isArray(result.content));
88
+ }
83
89
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
84
90
  tools: allTools,
85
91
  }));
@@ -330,6 +336,24 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
330
336
  case "export_table_csv":
331
337
  result = await exportTableCsv(args);
332
338
  break;
339
+ case "search_inbox_threads":
340
+ result = await searchInboxThreads(args);
341
+ break;
342
+ case "get_inbox_thread":
343
+ result = await getInboxThread(args);
344
+ break;
345
+ case "check_inbox_reply_eligibility":
346
+ result = await checkInboxReplyEligibility(args);
347
+ break;
348
+ case "update_inbox_draft":
349
+ result = await updateInboxDraft(args);
350
+ break;
351
+ case "send_inbox_draft":
352
+ result = await sendInboxDraft(args);
353
+ break;
354
+ case "send_inbox_manual_reply":
355
+ result = await sendInboxManualReply(args);
356
+ break;
333
357
  case "commit_blueprint":
334
358
  result = await handleCommitBlueprint(args);
335
359
  break;
@@ -591,6 +615,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
591
615
  throw new Error(`Unknown tool: ${name}`);
592
616
  }
593
617
  const safeResult = sanitizeWatchUrlsForMcpResult(result);
618
+ if (isStructuredToolResult(safeResult)) {
619
+ return safeResult;
620
+ }
594
621
  return {
595
622
  content: [
596
623
  {
@@ -24,7 +24,10 @@ export const inboxToolDefinitions = [
24
24
  limit: { type: "number", minimum: 1, maximum: 50 },
25
25
  cursor: { type: "string" },
26
26
  filter: { type: "string", enum: ["all", "drafts"] },
27
- status: { type: "string", enum: ["all", "unread", "replied", "awaiting"] },
27
+ status: {
28
+ type: "string",
29
+ enum: ["all", "unread", "replied", "awaiting"],
30
+ },
28
31
  senderId: { type: "string" },
29
32
  classification: { type: "string" },
30
33
  search: { type: "string" },
@@ -182,6 +185,17 @@ function requireString(value, field) {
182
185
  }
183
186
  return value.trim();
184
187
  }
188
+ function requireStrings(input, fields) {
189
+ const values = {};
190
+ for (const field of fields) {
191
+ const value = requireString(input[field], field);
192
+ if (typeof value !== "string") {
193
+ return { ok: false, result: value };
194
+ }
195
+ values[field] = value;
196
+ }
197
+ return { ok: true, values };
198
+ }
185
199
  function normalizeTimestamp(value) {
186
200
  if (value == null)
187
201
  return null;
@@ -221,8 +235,7 @@ function snapshotsMatch(current, approved) {
221
235
  const snapshot = approved;
222
236
  return (current.latestMessageTimestamp ===
223
237
  (snapshot.latestMessageTimestamp ?? null) &&
224
- current.lastInboundMessageAt === (snapshot.lastInboundMessageAt ?? null) &&
225
- current.updatedAt === (snapshot.updatedAt ?? null));
238
+ current.lastInboundMessageAt === (snapshot.lastInboundMessageAt ?? null));
226
239
  }
227
240
  function chronologicalTranscript(thread) {
228
241
  const messages = Array.isArray(thread?.messages) ? thread.messages : [];
@@ -282,9 +295,10 @@ export async function searchInboxThreads(input) {
282
295
  }, `${threads.length} inbox thread${threads.length === 1 ? "" : "s"} returned.`);
283
296
  }
284
297
  export async function getInboxThread(input) {
285
- const threadId = requireString(input.threadId, "threadId");
286
- if (typeof threadId !== "string")
287
- return threadId;
298
+ const required = requireStrings(input, ["threadId"]);
299
+ if (!required.ok)
300
+ return required.result;
301
+ const { threadId } = required.values;
288
302
  const routeCalled = `/api/v3/inbox/${encodeURIComponent(threadId)}`;
289
303
  const response = await getApi().get(routeCalled);
290
304
  const thread = getThread(response);
@@ -298,9 +312,10 @@ export async function getInboxThread(input) {
298
312
  : `Loaded inbox thread ${threadId}.`);
299
313
  }
300
314
  export async function checkInboxReplyEligibility(input) {
301
- const threadId = requireString(input.threadId, "threadId");
302
- if (typeof threadId !== "string")
303
- return threadId;
315
+ const required = requireStrings(input, ["threadId"]);
316
+ if (!required.ok)
317
+ return required.result;
318
+ const { threadId } = required.values;
304
319
  const routeCalled = `/api/v3/inbox/${encodeURIComponent(threadId)}?includeReplyEligibility=true`;
305
320
  const response = await getApi().get(routeCalled);
306
321
  const thread = getThread(response);
@@ -326,15 +341,10 @@ export async function checkInboxReplyEligibility(input) {
326
341
  }, `Eligibility loaded for inbox thread ${threadId}.`);
327
342
  }
328
343
  export async function updateInboxDraft(input) {
329
- const threadId = requireString(input.threadId, "threadId");
330
- if (typeof threadId !== "string")
331
- return threadId;
332
- const versionId = requireString(input.versionId, "versionId");
333
- if (typeof versionId !== "string")
334
- return versionId;
335
- const body = requireString(input.body, "body");
336
- if (typeof body !== "string")
337
- return body;
344
+ const required = requireStrings(input, ["threadId", "versionId", "body"]);
345
+ if (!required.ok)
346
+ return required.result;
347
+ const { threadId, versionId, body } = required.values;
338
348
  const bodyHash = hashText(body);
339
349
  const routeCalled = `/api/v3/inbox/${encodeURIComponent(threadId)}/draft`;
340
350
  try {
@@ -348,22 +358,51 @@ export async function updateInboxDraft(input) {
348
358
  bodyHash,
349
359
  },
350
360
  });
351
- const detail = await getApi().get(`/api/v3/inbox/${encodeURIComponent(threadId)}?includeReplyEligibility=true`);
361
+ const detail = await getApi().get(`/api/v3/inbox/${encodeURIComponent(threadId)}`);
352
362
  const thread = getThread(detail);
353
363
  const draft = getDraft(thread);
354
364
  const currentVersionId = getDraftVersionId(draft);
355
- const persistedBody = typeof draft?.body === "string"
356
- ? draft.body
357
- : typeof patchResponse.body === "string"
358
- ? patchResponse.body
359
- : null;
360
365
  const returnedVersionId = typeof patchResponse.versionId === "string"
361
366
  ? patchResponse.versionId
362
367
  : currentVersionId;
363
- if (!draft || !persistedBody || returnedVersionId !== currentVersionId) {
368
+ const returnedBody = typeof patchResponse.body === "string" ? patchResponse.body : null;
369
+ const currentBody = typeof draft?.body === "string" ? draft.body : null;
370
+ if (!returnedVersionId || !returnedBody) {
364
371
  return errorResult("persisted_draft_snapshot_missing", "Could not verify the persisted edited draft after PATCH.", { routeCalled, threadId, versionId: returnedVersionId ?? null });
365
372
  }
366
- if (persistedBody !== body || hashText(persistedBody) !== bodyHash) {
373
+ if (!draft || returnedVersionId !== currentVersionId) {
374
+ return textResult({
375
+ routeCalled,
376
+ approvalRequired: false,
377
+ status: "applied_but_superseded",
378
+ threadId,
379
+ versionId: returnedVersionId,
380
+ appliedDraftSnapshot: {
381
+ threadId,
382
+ versionId: returnedVersionId,
383
+ versionNumber: patchResponse.versionNumber ?? null,
384
+ body: returnedBody,
385
+ bodyHash: hashText(returnedBody),
386
+ bodyLength: returnedBody.length,
387
+ routeCalled,
388
+ snapshotAt: new Date().toISOString(),
389
+ },
390
+ currentDraftSnapshot: draft && currentVersionId && currentBody
391
+ ? {
392
+ threadId,
393
+ versionId: currentVersionId,
394
+ versionNumber: draft.versionNumber ?? null,
395
+ body: currentBody,
396
+ bodyHash: hashText(currentBody),
397
+ bodyLength: currentBody.length,
398
+ }
399
+ : null,
400
+ threadSnapshot: buildThreadSnapshot(thread),
401
+ }, `Edited inbox draft ${returnedVersionId}, but a newer draft is now current. Re-load before approving send.`);
402
+ }
403
+ if (!currentBody ||
404
+ currentBody !== body ||
405
+ hashText(currentBody) !== bodyHash) {
367
406
  return errorResult("persisted_draft_body_mismatch", "Persisted edited draft did not match the requested body.", { routeCalled, threadId, versionId: currentVersionId });
368
407
  }
369
408
  return textResult({
@@ -376,9 +415,9 @@ export async function updateInboxDraft(input) {
376
415
  threadId,
377
416
  versionId: currentVersionId,
378
417
  versionNumber: draft.versionNumber ?? patchResponse.versionNumber ?? null,
379
- body: persistedBody,
418
+ body: currentBody,
380
419
  bodyHash,
381
- bodyLength: persistedBody.length,
420
+ bodyLength: currentBody.length,
382
421
  routeCalled,
383
422
  snapshotAt: new Date().toISOString(),
384
423
  },
@@ -396,21 +435,16 @@ function validateApproval(value) {
396
435
  return value === "approved";
397
436
  }
398
437
  export async function sendInboxDraft(input) {
399
- const threadId = requireString(input.threadId, "threadId");
400
- if (typeof threadId !== "string")
401
- return threadId;
402
- const versionId = requireString(input.versionId, "versionId");
403
- if (typeof versionId !== "string")
404
- return versionId;
405
- const approvedBody = requireString(input.approvedBody, "approvedBody");
406
- if (typeof approvedBody !== "string")
407
- return approvedBody;
408
- const approvedBodyHash = requireString(input.approvedBodyHash, "approvedBodyHash");
409
- if (typeof approvedBodyHash !== "string")
410
- return approvedBodyHash;
411
- const idempotencyKey = requireString(input.idempotencyKey, "idempotencyKey");
412
- if (typeof idempotencyKey !== "string")
413
- return idempotencyKey;
438
+ const required = requireStrings(input, [
439
+ "threadId",
440
+ "versionId",
441
+ "approvedBody",
442
+ "approvedBodyHash",
443
+ "idempotencyKey",
444
+ ]);
445
+ if (!required.ok)
446
+ return required.result;
447
+ const { threadId, versionId, approvedBody, approvedBodyHash, idempotencyKey, } = required.values;
414
448
  if (!validateApproval(input.approval)) {
415
449
  return errorResult("approval_required", "approval must be approved.");
416
450
  }
@@ -431,7 +465,8 @@ export async function sendInboxDraft(input) {
431
465
  if (currentVersionId !== versionId) {
432
466
  return errorResult("stale_draft_snapshot", "Current draft version does not match the approved version.", { threadId, versionId, currentVersionId });
433
467
  }
434
- if (typeof draft?.body !== "string" || hashText(draft.body) !== approvedBodyHash) {
468
+ if (typeof draft?.body !== "string" ||
469
+ hashText(draft.body) !== approvedBodyHash) {
435
470
  return errorResult("approved_body_mismatch", "Current draft body does not match the approved body hash.", { threadId, versionId });
436
471
  }
437
472
  if (thread.replyEligibility.canSendDraft !== true) {
@@ -481,18 +516,15 @@ export async function sendInboxManualReply(input) {
481
516
  ])) {
482
517
  return errorResult("batch_manual_reply_not_supported", "send_inbox_manual_reply supports one exact approved message for one thread.");
483
518
  }
484
- const threadId = requireString(input.threadId, "threadId");
485
- if (typeof threadId !== "string")
486
- return threadId;
487
- const message = requireString(input.message, "message");
488
- if (typeof message !== "string")
489
- return message;
490
- const approvedMessageHash = requireString(input.approvedMessageHash, "approvedMessageHash");
491
- if (typeof approvedMessageHash !== "string")
492
- return approvedMessageHash;
493
- const idempotencyKey = requireString(input.idempotencyKey, "idempotencyKey");
494
- if (typeof idempotencyKey !== "string")
495
- return idempotencyKey;
519
+ const required = requireStrings(input, [
520
+ "threadId",
521
+ "message",
522
+ "approvedMessageHash",
523
+ "idempotencyKey",
524
+ ]);
525
+ if (!required.ok)
526
+ return required.result;
527
+ const { threadId, message, approvedMessageHash, idempotencyKey } = required.values;
496
528
  if (!validateApproval(input.approval)) {
497
529
  return errorResult("approval_required", "approval must be approved.");
498
530
  }
@@ -2426,6 +2426,234 @@ export declare const allTools: ({
2426
2426
  required: string[];
2427
2427
  additionalProperties: boolean;
2428
2428
  };
2429
+ } | {
2430
+ name: string;
2431
+ description: string;
2432
+ inputSchema: {
2433
+ type: string;
2434
+ properties: {
2435
+ threadId: {
2436
+ type: string;
2437
+ };
2438
+ limit?: undefined;
2439
+ cursor?: undefined;
2440
+ filter?: undefined;
2441
+ status?: undefined;
2442
+ senderId?: undefined;
2443
+ classification?: undefined;
2444
+ search?: undefined;
2445
+ includeEnrichment?: undefined;
2446
+ includeReplyEligibility?: undefined;
2447
+ versionId?: undefined;
2448
+ body?: undefined;
2449
+ approvedBody?: undefined;
2450
+ approvedBodyHash?: undefined;
2451
+ approvedThreadSnapshot?: undefined;
2452
+ idempotencyKey?: undefined;
2453
+ approval?: undefined;
2454
+ message?: undefined;
2455
+ approvedMessageHash?: undefined;
2456
+ };
2457
+ required: string[];
2458
+ additionalProperties: boolean;
2459
+ };
2460
+ outputSchema: {
2461
+ type: string;
2462
+ additionalProperties: boolean;
2463
+ };
2464
+ annotations: {
2465
+ readOnlyHint: boolean;
2466
+ destructiveHint: boolean;
2467
+ openWorldHint: boolean;
2468
+ idempotentHint?: undefined;
2469
+ };
2470
+ } | {
2471
+ name: string;
2472
+ description: string;
2473
+ inputSchema: {
2474
+ type: string;
2475
+ properties: {
2476
+ threadId: {
2477
+ type: string;
2478
+ };
2479
+ versionId: {
2480
+ type: string;
2481
+ };
2482
+ body: {
2483
+ type: string;
2484
+ };
2485
+ limit?: undefined;
2486
+ cursor?: undefined;
2487
+ filter?: undefined;
2488
+ status?: undefined;
2489
+ senderId?: undefined;
2490
+ classification?: undefined;
2491
+ search?: undefined;
2492
+ includeEnrichment?: undefined;
2493
+ includeReplyEligibility?: undefined;
2494
+ approvedBody?: undefined;
2495
+ approvedBodyHash?: undefined;
2496
+ approvedThreadSnapshot?: undefined;
2497
+ idempotencyKey?: undefined;
2498
+ approval?: undefined;
2499
+ message?: undefined;
2500
+ approvedMessageHash?: undefined;
2501
+ };
2502
+ required: string[];
2503
+ additionalProperties: boolean;
2504
+ };
2505
+ outputSchema: {
2506
+ type: string;
2507
+ additionalProperties: boolean;
2508
+ };
2509
+ annotations: {
2510
+ readOnlyHint: boolean;
2511
+ destructiveHint: boolean;
2512
+ openWorldHint: boolean;
2513
+ idempotentHint: boolean;
2514
+ };
2515
+ } | {
2516
+ name: string;
2517
+ description: string;
2518
+ inputSchema: {
2519
+ type: string;
2520
+ properties: {
2521
+ threadId: {
2522
+ type: string;
2523
+ };
2524
+ versionId: {
2525
+ type: string;
2526
+ };
2527
+ approvedBody: {
2528
+ type: string;
2529
+ };
2530
+ approvedBodyHash: {
2531
+ type: string;
2532
+ };
2533
+ approvedThreadSnapshot: {
2534
+ type: string;
2535
+ properties: {
2536
+ latestMessageTimestamp: {
2537
+ type: string[];
2538
+ };
2539
+ lastInboundMessageAt: {
2540
+ type: string[];
2541
+ };
2542
+ updatedAt: {
2543
+ type: string[];
2544
+ };
2545
+ reasonCodes: {
2546
+ type: string;
2547
+ items: {
2548
+ type: string;
2549
+ };
2550
+ };
2551
+ };
2552
+ additionalProperties: boolean;
2553
+ };
2554
+ idempotencyKey: {
2555
+ type: string;
2556
+ };
2557
+ approval: {
2558
+ type: string;
2559
+ enum: string[];
2560
+ };
2561
+ limit?: undefined;
2562
+ cursor?: undefined;
2563
+ filter?: undefined;
2564
+ status?: undefined;
2565
+ senderId?: undefined;
2566
+ classification?: undefined;
2567
+ search?: undefined;
2568
+ includeEnrichment?: undefined;
2569
+ includeReplyEligibility?: undefined;
2570
+ body?: undefined;
2571
+ message?: undefined;
2572
+ approvedMessageHash?: undefined;
2573
+ };
2574
+ required: string[];
2575
+ additionalProperties: boolean;
2576
+ };
2577
+ outputSchema: {
2578
+ type: string;
2579
+ additionalProperties: boolean;
2580
+ };
2581
+ annotations: {
2582
+ readOnlyHint: boolean;
2583
+ destructiveHint: boolean;
2584
+ openWorldHint: boolean;
2585
+ idempotentHint: boolean;
2586
+ };
2587
+ } | {
2588
+ name: string;
2589
+ description: string;
2590
+ inputSchema: {
2591
+ type: string;
2592
+ properties: {
2593
+ threadId: {
2594
+ type: string;
2595
+ };
2596
+ message: {
2597
+ type: string;
2598
+ };
2599
+ approvedMessageHash: {
2600
+ type: string;
2601
+ };
2602
+ approvedThreadSnapshot: {
2603
+ type: string;
2604
+ properties: {
2605
+ latestMessageTimestamp: {
2606
+ type: string[];
2607
+ };
2608
+ lastInboundMessageAt: {
2609
+ type: string[];
2610
+ };
2611
+ updatedAt: {
2612
+ type: string[];
2613
+ };
2614
+ reasonCodes: {
2615
+ type: string;
2616
+ items: {
2617
+ type: string;
2618
+ };
2619
+ };
2620
+ };
2621
+ additionalProperties: boolean;
2622
+ };
2623
+ idempotencyKey: {
2624
+ type: string;
2625
+ };
2626
+ approval: {
2627
+ type: string;
2628
+ enum: string[];
2629
+ };
2630
+ limit?: undefined;
2631
+ cursor?: undefined;
2632
+ filter?: undefined;
2633
+ status?: undefined;
2634
+ senderId?: undefined;
2635
+ classification?: undefined;
2636
+ search?: undefined;
2637
+ includeEnrichment?: undefined;
2638
+ includeReplyEligibility?: undefined;
2639
+ versionId?: undefined;
2640
+ body?: undefined;
2641
+ approvedBody?: undefined;
2642
+ approvedBodyHash?: undefined;
2643
+ };
2644
+ required: string[];
2645
+ additionalProperties: boolean;
2646
+ };
2647
+ outputSchema: {
2648
+ type: string;
2649
+ additionalProperties: boolean;
2650
+ };
2651
+ annotations: {
2652
+ readOnlyHint: boolean;
2653
+ destructiveHint: boolean;
2654
+ openWorldHint: boolean;
2655
+ idempotentHint: boolean;
2656
+ };
2429
2657
  } | {
2430
2658
  name: string;
2431
2659
  description: string;
@@ -21,6 +21,7 @@ import { engageStateToolDefinitions } from "./engage-state.js";
21
21
  import { enrichmentToolDefinitions } from "./enrichment.js";
22
22
  import { frameworkToolDefinitions } from "./framework.js";
23
23
  import { harvestJobToolDefinitions } from "./harvest-jobs.js";
24
+ import { inboxToolDefinitions } from "./inbox.js";
24
25
  import { leadToolDefinitions } from "./leads.js";
25
26
  import { linkedinToolDefinitions } from "./linkedin.js";
26
27
  import { navigationToolDefinitions } from "./navigation.js";
@@ -53,6 +54,7 @@ export const allTools = [
53
54
  ...navigationToolDefinitions,
54
55
  ...leadToolDefinitions,
55
56
  ...harvestJobToolDefinitions,
57
+ ...inboxToolDefinitions,
56
58
  ...enrichmentToolDefinitions,
57
59
  ...processingToolDefinitions,
58
60
  ...rubricToolDefinitions,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/mcp",
3
- "version": "0.1.319",
3
+ "version": "0.1.320",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code and Codex campaign workflows",
6
6
  "main": "dist/index.js",
@@ -195,6 +195,21 @@ read/edit/delete safety, but they are not valid `add_column` or
195
195
  direct `send_dm` is acceptable because `send_dm` also performs the runtime
196
196
  connection lookup.
197
197
 
198
+ ### Check Paid InMail Credits
199
+
200
+ - type: `check_paid_inmail_credits`
201
+ - displayName: `Check Paid InMail Credits`
202
+ - category: LinkedIn Actions
203
+ - inputs: sender-scoped Sales Navigator credit state and optional paid-credit floor.
204
+ - outputs: `has_paid_inmail_credits`, remaining-credit proof, stale-state flags,
205
+ and fallback reason metadata.
206
+ - when to use: Use after Check Open Profile says a prospect is closed-profile
207
+ and the sequence is explicitly allowed to spend paid InMail credits. Branch
208
+ yes to `send_inmail_closed`; branch no to `check_connection` or invite flow.
209
+ - when NOT to use: Do not use for free open-profile InMail, do not spend credits
210
+ from this check itself, and do not add it unless the campaign policy opts into
211
+ the paid-InMail fallback mode.
212
+
198
213
  ### LinkedIn Action
199
214
 
200
215
  - type: `action`
@@ -80,6 +80,14 @@ It bootstraps auth and host capabilities, then loads the internal
80
80
  the internal campaign workflow prompt and `core/flow.v2.json` through MCP. Keep
81
81
  this wrapper thin; the packaged workflow is the operational source of truth.
82
82
 
83
+ ## Inbox Reply Tool Boundary
84
+
85
+ Inbox reply tools are outside campaign creation. If a user asks to search,
86
+ review, edit, or send inbox replies, treat that as a separate inbox workflow
87
+ using the existing product /api/v3/inbox routes. Any draft edit or send requires
88
+ exact approval for the workspace, sender, thread, body, tool, and expected side
89
+ effect before the write tool is called.
90
+
83
91
  CampaignOffer state and the watch link are the customer-facing source of truth.
84
92
  Disk artifacts are optional debug/UAT diagnostics; normal customer runs should
85
93
  not create, link, or surface local draft files unless the user explicitly asks
@@ -40,6 +40,13 @@ active flow. Legacy packet/mint artifacts stay in
40
40
  7. Choose filters, save/approve criteria, then review the message template.
41
41
  8. Sync the approved template, queue bounded filtering, review one generated pass, then Settings and launch.
42
42
 
43
+ ## Inbox Reply Tool Boundary
44
+
45
+ Inbox reply tools are outside campaign creation. Stop the campaign lane for
46
+ reply search/review/edit/send asks and use existing product /api/v3/inbox routes.
47
+ Before any draft edit/send tool call, require exact approval for workspace,
48
+ sender, thread, body, tool, and expected side effect.
49
+
43
50
  ## Identity-First Campaign Setup
44
51
 
45
52
  Do not treat the active workspace as the campaign subject. Resolve the