@sellable/mcp 0.1.99 → 0.1.101

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.
@@ -319,7 +319,7 @@ export function listSubskillPrompts(limit, includePublic, includeInternal) {
319
319
  };
320
320
  }
321
321
  function markSubskillPromptLoaded(subskillName) {
322
- if (subskillName === "create-campaign") {
322
+ if (subskillName === "create-campaign" || subskillName === "create-campaign-v2") {
323
323
  markCreateCampaignPromptLoaded();
324
324
  }
325
325
  if (subskillName === "research") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/mcp",
3
- "version": "0.1.99",
3
+ "version": "0.1.101",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code and Codex campaign workflows",
6
6
  "main": "dist/index.js",
@@ -155,7 +155,8 @@ for them. The link is for deeper inspection; never use it as a substitute for
155
155
  showing the content in chat.
156
156
 
157
157
  Never mention MCP namespaces, prompt chunking, plugin cache paths, missing
158
- linked skill versions, runbooks, or local skill files in normal customer-facing
158
+ linked skill versions, runbooks, npm/package details, repo-local files, VPS or
159
+ browser automation limitations, or local skill files in normal customer-facing
159
160
  copy.
160
161
 
161
162
  ## Codex Watch Browser Handoff
@@ -173,16 +174,17 @@ In Codex Desktop, when in-app browser control is available, open the returned wa
173
174
  I’ll open the campaign view and keep it in sync as I build.
174
175
  ```
175
176
 
176
- If browser control is unavailable, say so briefly and provide the watch link.
177
- In VPS or other off-desktop Codex runs, this fallback is the expected handoff for
178
- the local headed watch observer: make the signed link easy to copy/open, then
179
- continue with explicit chat progress and `get_campaign_navigation_state`
180
- orientation checks.
177
+ If browser control is unavailable, provide the watch link without discussing the
178
+ runtime limitation. In off-desktop Codex runs, make the signed link easy to
179
+ copy/open, then continue with explicit customer-facing campaign progress and
180
+ `get_campaign_navigation_state` orientation checks.
181
181
  Use this fallback shape:
182
182
 
183
183
  ```text
184
- I can’t inspect the campaign browser from this Codex session, so I’ll keep the
185
- chat steps explicit here. Watch link: {watchUrl}
184
+ Watch link: {watchUrl}
185
+
186
+ I’ll keep the campaign brief, lead source, and message-review steps explicit
187
+ here as I build.
186
188
  ```
187
189
 
188
190
  If opening the watch link lands on an auth, 404, permission, blank, or visible
@@ -161,7 +161,9 @@ Optional debug/UAT draft directory, disabled in normal customer runs:
161
161
  - Customer-facing progress updates must use product language. Say "quick
162
162
  setup choices", "campaign brief", "lead sourcing", and "approval" instead of
163
163
  `request_user_input`, Default mode, MCP namespaces, plugin caches, prompt
164
- loading, runbooks, local skill files, skill versions, or "Sellable token".
164
+ loading, runbooks, local skill files, skill versions, npm/package details,
165
+ repo-local files, VPS/off-desktop/browser automation limitations, or
166
+ "Sellable token".
165
167
  "Quick question panel" is only acceptable when explaining a Codex/Claude setup
166
168
  blocker.
167
169
  - Before the 10-lead import/test batch, do not call `check_rubric`; Phase 84
@@ -728,8 +730,10 @@ Required behavior:
728
730
  - provider prompt preflight and interaction-mode approval are in-memory. On
729
731
  resume or MCP restart, call `get_provider_prompt({ provider, campaignOfferId })`
730
732
  again before any provider search/import; do not assume CampaignOffer state
731
- proves preflight happened in this process.
732
- on resume or MCP restart, call `get_provider_prompt({ provider, campaignOfferId })` again.
733
+ proves preflight happened in this process. Immediately before `import_leads`,
734
+ reload the provider prompt in the same turn with
735
+ `get_provider_prompt({ provider, campaignOfferId })`, even when source preview
736
+ loaded it in a previous turn.
733
737
  - if CampaignOffer campaignId is missing, stop and recover shell creation before
734
738
  sourcing; do not run a campaignless source path in the active flow.
735
739
  - do not import leads
@@ -840,6 +840,7 @@
840
840
  },
841
841
  {
842
842
  "tool": "import_leads",
843
+ "sameTurnPreflight": "Immediately before import_leads, call get_provider_prompt({ provider, campaignOfferId }) in the same resumed turn, even if source discovery loaded the provider prompt earlier.",
843
844
  "requiredFields": [
844
845
  "campaignOfferId",
845
846
  "targetLeadCount"