@sellable/mcp 0.1.396 → 0.1.397

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/mcp",
3
- "version": "0.1.396",
3
+ "version": "0.1.397",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code and Codex campaign workflows",
6
6
  "main": "dist/index.js",
@@ -60,6 +60,25 @@ step using campaign names first, and stop before mutation unless the user has
60
60
  explicitly approved the exact workspace, campaign/table/source ids, caps/dates,
61
61
  approval mode, expected side effects, and stop/rollback condition.
62
62
 
63
+ For interactive Codex or Claude Code sessions, that approval must use the
64
+ host-native structured question gate, not plain chat:
65
+
66
+ - Codex: use `request_user_input`.
67
+ - Claude Code: use `AskUserQuestion`.
68
+
69
+ The approval question must present the final refill step with exactly two
70
+ choices: `Accept` and `Decline`. Treat `Accept` as permission for only the
71
+ rendered target, caps, mode, and side effects. Treat `Decline` as a hard stop
72
+ with no mutation.
73
+
74
+ If Christian includes `--yolo` in the same refill request, treat that flag as
75
+ auto-accept for the rendered bounded refill packet after the required fresh state
76
+ reread. `--yolo` only covers the exact target, caps, approval mode, and side
77
+ effects in the packet. It does not authorize launch/start, sending, archive or
78
+ delete cleanup, direct scheduler writes, sender reassignment, or any expanded
79
+ target set. Stop and re-plan if the route, ids, caps, blockers, or side-effect
80
+ class drift before mutation.
81
+
63
82
  Public concepts are regular campaign and evergreen campaign. Internal direct
64
83
  campaign types are unsupported refill targets. `fill_campaign_horizon` is only a
65
84
  legacy evergreen-only lower-level primitive after route and refill-state
@@ -239,6 +239,42 @@ Before prep or approval mutation, reread `get_campaign_refill_state` and compare
239
239
  If they changed, stop. A second concurrent refill run must see the first run's
240
240
  import/prep state on reread and avoid duplicate work.
241
241
 
242
+ After the final reread and before the first mutating refill primitive, render
243
+ one final approval packet in campaign-name-first language, then ask a
244
+ host-native structured question with exactly two choices: `Accept` and
245
+ `Decline`. The question is the execution boundary.
246
+ Short form: exactly two choices: `Accept` and `Decline`.
247
+
248
+ - In Codex interactive sessions, use `request_user_input`.
249
+ - In Claude Code interactive sessions, use `AskUserQuestion`.
250
+ - The `Accept` choice must name the exact campaign, workspace id, campaign id,
251
+ workflow table id, source/action ids when relevant, caps/dates, approval mode,
252
+ expected side effects, and stop/rollback condition.
253
+ - The `Decline` choice must stop with no mutation.
254
+ - Do not proceed from a plain chat "ok", "yes", "go", or "do it" when the
255
+ structured question tool is available. If the structured question tool is not
256
+ available in an interactive session, stop and tell the user the quick question
257
+ panel is required for refill approvals. In non-interactive exec/automation,
258
+ print the approval packet and stop before mutation.
259
+
260
+ `--yolo` mode is explicit auto-accept. If Christian includes `--yolo` in the
261
+ same refill request, do not ask the `Accept` / `Decline` question. Instead:
262
+
263
+ 1. render the same final approval packet;
264
+ 2. reread `get_campaign_refill_state`;
265
+ 3. verify the route, workspace id, campaign id, table id, source/action ids,
266
+ caps/dates, approval mode, blockers, and side-effect class still match the
267
+ packet;
268
+ 4. execute only the exact packet.
269
+
270
+ `--yolo` never authorizes launch/start, sending, archive/delete cleanup, raw
271
+ scheduler writes, sender reassignment, unrelated campaigns, expanded campaign
272
+ sets, or higher caps than the packet named. If any state or scope drifts, stop
273
+ and re-plan instead of auto-accepting the changed action.
274
+ Short form: expanded campaign sets are not covered by `--yolo`.
275
+ Short form: direct scheduler writes are not covered by `--yolo`.
276
+ Short form: stop and re-plan instead of auto-accepting the changed action.
277
+
242
278
  After same-campaign source copy, inspect the actual campaign-table position of
243
279
  the copied rows before starting prep. Newly copied rows often land after the first 100 table rows. Use `get_campaign_table_schema` to read the `reviewBatch`,
244
280
  then use `select_campaign_cells` diagnostics against
@@ -292,6 +328,11 @@ the current source or ask for more research instead of walking the ladder.
292
328
  - No mutation in production unless Christian explicitly approves exact
293
329
  workspace, campaign/table ids, source/action ids, caps/dates, approval mode,
294
330
  expected side effects, and rollback/stop condition.
331
+ - In interactive Codex or Claude Code, that explicit approval must be collected
332
+ through the host-native `Accept` / `Decline` question gate.
333
+ - `--yolo` in the current refill request is explicit auto-accept for the
334
+ rendered bounded refill packet only; it does not loosen the launch/send,
335
+ scheduler-write, archive/delete, or drift rules above.
295
336
 
296
337
  ## Report
297
338