@sellable/install 0.1.228 → 0.1.230
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/bin/sellable-install.mjs
CHANGED
package/package.json
CHANGED
|
@@ -24,10 +24,19 @@ run without user input, or similar, run in **automation mode**:
|
|
|
24
24
|
- Reconcile structure and record any template/config polish as `created`,
|
|
25
25
|
`reused`, `repaired`, `flagged`, or `blocked`.
|
|
26
26
|
- Choose the automation depth from the invoking prompt:
|
|
27
|
+
- Sparse `--yolo` create/repair invocations default to customer-visible completion:
|
|
28
|
+
when the user says run/create/repair/setup `$sellable:create-evergreen-campaigns`,
|
|
29
|
+
create evergreen campaigns, or similar without saying heartbeat/structure-only,
|
|
30
|
+
set `depth:"customer_visible"`. Customers usually expect usable campaigns,
|
|
31
|
+
not empty shells.
|
|
27
32
|
- **Structure-only reconcile** is for heartbeat prompts that only say to
|
|
28
|
-
ensure slots exist.
|
|
29
|
-
|
|
30
|
-
|
|
33
|
+
ensure slots exist. Only choose `depth:"structure_only"` for
|
|
34
|
+
heartbeat/ensure-slots-only automation where the prompt explicitly says it
|
|
35
|
+
does not need source rows, generated messages, approvals, or sequence. It may
|
|
36
|
+
create/reuse shells and apply metadata repairs, but it does not create rows,
|
|
37
|
+
generate messages, approve rows, or attach new send work.
|
|
38
|
+
Short form: only choose `depth:"structure_only"` for
|
|
39
|
+
heartbeat/ensure-slots-only runs.
|
|
31
40
|
- **Customer-visible completion** is required when the prompt says full
|
|
32
41
|
campaign, customer-ready, send-review-ready, went through
|
|
33
42
|
`$sellable:create-campaign`, fill out, approve one, only needs enrich and
|
|
@@ -138,6 +147,16 @@ for that shared-only sender. Example: if Justin already has a Post Engagers
|
|
|
138
147
|
campaign and Jell/Hulan should only participate in the two shared campaigns,
|
|
139
148
|
call `setup_evergreen_campaigns` with `postEngagerSenderIds:["<justin id>"]`
|
|
140
149
|
and `sharedSenderIds:["<justin id>","<jell or hulan id>"]`.
|
|
150
|
+
If the operator says to keep a protected existing Post Engagers campaign unchanged
|
|
151
|
+
and create/repair only the shared lanes, pass `postEngagerSenderIds:[]` and the
|
|
152
|
+
full shared sender set in `sharedSenderIds`. Do not include the protected active
|
|
153
|
+
Post Engagers lane as a reuse packet in that shared-only execution scope: an
|
|
154
|
+
ACTIVE protected lane can correctly produce a backend `launched_campaign`
|
|
155
|
+
blocker and would make the whole yolo plan non-autoExecutable even though the
|
|
156
|
+
operator asked to leave it untouched. Inventory and waterfall proof may mention
|
|
157
|
+
the protected lane, but selectedActionIds and lane workers must cover only the
|
|
158
|
+
shared lane packets.
|
|
159
|
+
Short form: Do not include the protected active Post Engagers lane as a reuse packet when the operator requested only shared lane execution.
|
|
141
160
|
|
|
142
161
|
When senders are ambiguous, ask which sender ids belong in the Post Engagers
|
|
143
162
|
sender scope and which belong in the shared lane sender scope before planning.
|
|
@@ -155,6 +174,12 @@ plan execution, paid InMail spend, or ambiguous target choice. Stop on wrong
|
|
|
155
174
|
workspace, cleanup/archive/delete need, stale plan, disconnected sender,
|
|
156
175
|
duplicate candidate, unsafe side effect, missing source proof, or missing
|
|
157
176
|
message proof.
|
|
177
|
+
In exec/automation mode, do not call `request_user_input`. If a plan under
|
|
178
|
+
`--yolo` returns `autoExecutable:false` and the run cannot receive interactive
|
|
179
|
+
bounded delegated approval, stop with
|
|
180
|
+
`blocked: bounded_approval_unavailable_in_exec_mode` before any mutation and
|
|
181
|
+
state whether the operator should rerun with a safe autoExecutable plan, narrower
|
|
182
|
+
sender scopes, explicit bindings, or an interactive session.
|
|
158
183
|
|
|
159
184
|
When safe-yolo is blocked only because the plan needs normal setup work, ask
|
|
160
185
|
for a **bounded delegated approval** over the rendered current plan instead of
|
|
@@ -219,6 +244,15 @@ written by the current worker, stop with `blocked: stale_receipt_artifact`
|
|
|
219
244
|
before parent verify or completion. A streaming worker or branch worker is
|
|
220
245
|
acceptable only when it writes a fresh durable per-lane receipt artifact as it
|
|
221
246
|
works.
|
|
247
|
+
When visible Codex app thread tools are unavailable but local Codex CLI is
|
|
248
|
+
available, the accepted durable streaming-worker command shape is:
|
|
249
|
+
`codex -a never -s danger-full-access exec -C <repo> -o <worker-final-file> -`.
|
|
250
|
+
The approval and sandbox flags must come before the `exec` subcommand for Codex
|
|
251
|
+
CLI builds that expose `-a`/`-s` only at top level. Do not use
|
|
252
|
+
`codex exec --ask-for-approval never ...` or `codex exec -a never ...`; those
|
|
253
|
+
forms fail on current customer CLI installs. Pipe the lane packet prompt on
|
|
254
|
+
stdin, require the worker to write `workerDispatch.receiptArtifactHint`, and
|
|
255
|
+
pass exactly one lane packet per worker.
|
|
222
256
|
`multi_agent_v1.spawn_agent`, raw `spawn_agent`, or any opaque Task/subagent
|
|
223
257
|
runtime that cannot expose a visible thread id or durable receipt artifact is
|
|
224
258
|
not accepted as command-level UAT proof and must not be used for mutating
|