@sellable/install 0.1.243 → 0.1.244

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/install",
3
- "version": "0.1.243",
3
+ "version": "0.1.244",
4
4
  "type": "module",
5
5
  "description": "One-command installer for Sellable MCP in Claude Code and Codex",
6
6
  "bin": {
@@ -58,6 +58,22 @@ Default evergreen plan per workspace (override only if the prompt specifies diff
58
58
  1. **`<Sender Name> - Post Engagers`** — one per sender (warm lane, highest priority)
59
59
  2. **`<Workspace/Team> - Shared Signal Discovery`** — one shared warm-signal campaign lane across senders
60
60
  3. **`<Workspace/Team> - Shared Cold Fallback`** — one shared cold/fallback campaign lane across senders
61
+
62
+ Sender scope resolution is safety-critical. Do not pass
63
+ `allConnectedSenders:true` unless the invoking prompt explicitly says "all
64
+ connected senders", "every connected sender", "all seats", or names an
65
+ equivalent all-sender scope. If the user says "all 4 campaigns", "the four
66
+ evergreen campaigns", or names specific senders, resolve those exact senders
67
+ and pass explicit `postEngagerSenderIds` plus `sharedSenderIds`; do not broaden
68
+ the plan to every connected sender. In non-interactive or `--yolo` mode, when
69
+ more than two connected senders exist and the prompt does not explicitly
70
+ authorize all connected senders, stop before mutation with
71
+ `blocked: ambiguous_post_engager_sender_scope` and report the sender ids/names
72
+ needed for approval. Never let "workspace default" silently create Post
73
+ Engagers lanes for extra senders.
74
+ Short form: Do not pass `allConnectedSenders:true` unless the prompt explicitly says all/every connected sender.
75
+ Short form: "all 4 campaigns" means explicit sender scope plus two shared lanes, not all connected senders.
76
+ Short form: In `--yolo`, ambiguous multi-sender scope blocks before mutation.
61
77
  </inputs>
62
78
 
63
79
  <command_backed_workflow>
@@ -281,11 +297,24 @@ zsh treats it as read-only; use `exit_code` or `rc` instead. Receipt polling
281
297
  must use `find <receipt-dir> -maxdepth 1 -name 'evg_*.json' -print` or an
282
298
  explicit nullglob-safe equivalent. Do not use naked `*.json` globs under zsh,
283
299
  and keep zero-receipt polls quiet with no `no matches found` diagnostics.
300
+ Do not embed `<<'WORKER_PROMPT'` heredocs inside a single quoted or double
301
+ quoted `/bin/bash -lc '...'` command string; nested quoting is brittle and can
302
+ truncate the first worker before mutation. For multi-worker launchers, write one
303
+ plain prompt file per lane under the current run directory, then start each
304
+ worker with `codex -a never -s danger-full-access exec -C "$REPO" -o
305
+ "$worker_final_file" - < "$worker_prompt_file"`. Keep launcher shell variables
306
+ double-quoted and keep the prompt heredoc only in a standalone script/prompt-file
307
+ write step, not inside an already quoted shell argument. If the first launcher
308
+ attempt exits with a shell parse error or before starting the first worker,
309
+ stop with `blocked: worker_launcher_quoting_failed` and do not retry by
310
+ loosening sender scope or mutating in the parent.
284
311
  Short form: run the wrapper with `/bin/bash -lc`.
285
312
  Short form: Do not rely on zsh-specific behavior.
286
313
  Short form: Do not use `status` as a shell variable; use `exit_code` or `rc`.
287
314
  Short form: Receipt polling uses `find <receipt-dir> -maxdepth 1 -name 'evg_*.json' -print`.
288
315
  Short form: Do not use naked `*.json` globs under zsh; no `no matches found` diagnostics.
316
+ Short form: Do not embed `<<'WORKER_PROMPT'` heredocs inside a quoted `/bin/bash -lc` command string.
317
+ Short form: Multi-worker launchers write prompt files and run `codex ... - < "$worker_prompt_file"`.
289
318
  After creating receipt directories, dispatch workers immediately; do not perform extended parent reasoning, extra inventory, or prompt rewriting loops.
290
319
  Use a compact worker prompt: include lane packet JSON, original selectedActionIds,
291
320
  original planRevision, parent postEngagerSenderIds, parent sharedSenderIds,
@@ -299,8 +328,11 @@ current lane packet for receipt paths.
299
328
  Do not hardcode machine-specific paths, workspace ids, campaign ids, sender ids, or UAT/phase artifact paths in this MCP prompt or any worker prompt.
300
329
  After the receipt-directory `mkdir`, the next shell/tool call must launch the first lane worker.
301
330
  Do not run `find`, `ls`, extra inventory, or another preflight between directory setup and the first worker launch.
302
- For the local Codex CLI fallback, use this literal durable CLI worker launch template
303
- and fill only the lane-specific placeholders:
331
+ For the local Codex CLI fallback, use this literal durable CLI worker launch
332
+ template and fill only the lane-specific placeholders. For one-off direct worker
333
+ launches you may pipe a heredoc directly to `codex`; for multi-worker shell
334
+ launchers, write the same prompt body to `<worker-prompt-file>` and launch the
335
+ worker with stdin redirected from that file:
304
336
 
305
337
  ```
306
338
  codex -a never -s danger-full-access exec -C <repo> -o <worker-final-file> - <<'WORKER_PROMPT'
@@ -324,6 +356,9 @@ Use mcp__sellable only. Do not use admin tools, direct DB, Prisma, SQL, web sear
324
356
  Do not launch, start, schedule, send, or use paid InMail.
325
357
  Complete only this lane, write the required durable receipt JSON, and stop.
326
358
  WORKER_PROMPT
359
+
360
+ # Multi-worker launcher equivalent:
361
+ codex -a never -s danger-full-access exec -C <repo> -o <worker-final-file> - < <worker-prompt-file>
327
362
  ```
328
363
 
329
364
  If any placeholder cannot be filled from the current lane packet, do not inspect