@sellable/install 0.1.252 → 0.1.254
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
|
@@ -310,9 +310,10 @@ acceptable only when it writes a fresh durable per-lane receipt artifact as it
|
|
|
310
310
|
works.
|
|
311
311
|
When visible Codex app thread tools are unavailable but local Codex CLI is
|
|
312
312
|
available, the accepted durable streaming-worker command shape is:
|
|
313
|
-
`codex -a never -s danger-full-access exec -m <worker-model> -C <repo> -o <worker-final-file> -`.
|
|
313
|
+
`codex -a never -s danger-full-access exec --skip-git-repo-check -m <worker-model> -C <repo> -o <worker-final-file> -`.
|
|
314
314
|
The approval and sandbox flags must come before the `exec` subcommand for Codex
|
|
315
|
-
CLI builds that expose `-a`/`-s` only at top level.
|
|
315
|
+
CLI builds that expose `-a`/`-s` only at top level. `--skip-git-repo-check` belongs after `exec` because current customer and VPS Codex CLI builds expose it
|
|
316
|
+
as an `exec` subcommand flag, not a top-level flag. Do not use
|
|
316
317
|
`codex exec --ask-for-approval never ...` or `codex exec -a never ...`; those
|
|
317
318
|
forms fail on current customer CLI installs. Pipe the lane packet prompt on
|
|
318
319
|
stdin, require the worker to write `workerDispatch.receiptArtifactHint`, and
|
|
@@ -320,7 +321,7 @@ pass exactly one lane packet per worker.
|
|
|
320
321
|
When launching durable Codex CLI workers from an automation parent, pass an
|
|
321
322
|
explicit supported worker model instead of relying on the Codex CLI default
|
|
322
323
|
model. Use the parent runtime model when known, for example:
|
|
323
|
-
`codex -a never -s danger-full-access exec -m <worker-model> -C <repo> -o <worker-final-file> -`.
|
|
324
|
+
`codex -a never -s danger-full-access exec --skip-git-repo-check -m <worker-model> -C <repo> -o <worker-final-file> -`.
|
|
324
325
|
Do not rely on the Codex CLI default model; some customer and VPS installs
|
|
325
326
|
default to unavailable model aliases. If the parent cannot identify a supported
|
|
326
327
|
worker model and a test `codex exec -m <worker-model>` launch is rejected, stop
|
|
@@ -336,20 +337,41 @@ Do not embed `<<'WORKER_PROMPT'` heredocs inside a single quoted or double
|
|
|
336
337
|
quoted `/bin/bash -lc '...'` command string; nested quoting is brittle and can
|
|
337
338
|
truncate the first worker before mutation. For multi-worker launchers, write one
|
|
338
339
|
plain prompt file per lane under the current run directory, then start each
|
|
339
|
-
worker with `codex -a never -s danger-full-access exec -m "$WORKER_MODEL" -C "$REPO" -o
|
|
340
|
+
worker with `codex -a never -s danger-full-access exec --skip-git-repo-check -m "$WORKER_MODEL" -C "$REPO" -o
|
|
340
341
|
"$worker_final_file" - < "$worker_prompt_file"`. Keep launcher shell variables
|
|
341
342
|
double-quoted and keep the prompt heredoc only in a standalone script/prompt-file
|
|
342
343
|
write step, not inside an already quoted shell argument. If the first launcher
|
|
343
344
|
attempt exits with a shell parse error or before starting the first worker,
|
|
344
345
|
stop with `blocked: worker_launcher_quoting_failed` and do not retry by
|
|
345
346
|
loosening sender scope or mutating in the parent.
|
|
347
|
+
Do not use `nohup`, detached background workers, or any launcher that returns
|
|
348
|
+
before the workers finish and before receipts/final files exist. A durable
|
|
349
|
+
worker must run in a foreground command session, visible Codex thread, or a shell
|
|
350
|
+
that stays alive until every worker has finished. If using background jobs inside
|
|
351
|
+
one shell, the same shell must stay alive, wait for every worker PID, poll only
|
|
352
|
+
the expected receipt paths, and record a per-worker exit code plus final-file
|
|
353
|
+
paths and stderr/log paths before returning. If workers exit with empty logs and
|
|
354
|
+
no final files because the subprocess detached or was reaped, stop with
|
|
355
|
+
`blocked: worker_subprocess_detached_without_output` before parent verify.
|
|
356
|
+
When launching multiple local Codex CLI workers from one shell, start each
|
|
357
|
+
background job in the same shell that will call `wait`. Do not capture worker
|
|
358
|
+
PIDs through command substitution, a subshell, a pipeline, or a helper function
|
|
359
|
+
invoked as `worker_pid=$(launch_worker ...)`; those patterns make the captured
|
|
360
|
+
PID non-waitable by the parent shell. Use the same-shell PID array pattern:
|
|
361
|
+
`pids=(); codex ... > "$log_file" 2>&1 & pids+=("$!")`, then
|
|
362
|
+
`for pid in "${pids[@]}"; do wait "$pid" || rc=1; done`. If `wait` reports
|
|
363
|
+
`pid is not a child of this shell`, stop with
|
|
364
|
+
`blocked: worker_subprocess_detached_without_output`.
|
|
346
365
|
Short form: run the wrapper with `/bin/bash -lc`.
|
|
347
366
|
Short form: Do not rely on zsh-specific behavior.
|
|
348
367
|
Short form: Do not use `status` as a shell variable; use `exit_code` or `rc`.
|
|
368
|
+
Short form: Do not capture worker PIDs through command substitution or a subshell.
|
|
369
|
+
Short form: Use same-shell `pids+=("$!")` before waiting on every PID.
|
|
349
370
|
Short form: Receipt polling uses `find <receipt-dir> -maxdepth 1 -name 'evg_*.json' -print`.
|
|
350
371
|
Short form: Do not use naked `*.json` globs under zsh; no `no matches found` diagnostics.
|
|
351
372
|
Short form: Do not embed `<<'WORKER_PROMPT'` heredocs inside a quoted `/bin/bash -lc` command string.
|
|
352
373
|
Short form: Multi-worker launchers write prompt files and run `codex ... - < "$worker_prompt_file"`.
|
|
374
|
+
Short form: Do not use `nohup`; keep the worker process attached until receipt or blocker.
|
|
353
375
|
After the auto-executable plan returns, take at most one short planning pass to
|
|
354
376
|
choose the visible/durable worker runtime and build the worker launch packet.
|
|
355
377
|
Do not keep reasoning, re-reading prompts, or restating the workflow instead of
|
|
@@ -394,7 +416,7 @@ launchers, write the same prompt body to `<worker-prompt-file>` and launch the
|
|
|
394
416
|
worker with stdin redirected from that file:
|
|
395
417
|
|
|
396
418
|
```
|
|
397
|
-
codex -a never -s danger-full-access exec -m <worker-model> -C <repo> -o <worker-final-file> - <<'WORKER_PROMPT'
|
|
419
|
+
codex -a never -s danger-full-access exec --skip-git-repo-check -m <worker-model> -C <repo> -o <worker-final-file> - <<'WORKER_PROMPT'
|
|
398
420
|
Use $sellable:create-evergreen-campaigns as the governing skill for this one lane worker.
|
|
399
421
|
|
|
400
422
|
Workspace id: <workspaceId>
|
|
@@ -417,7 +439,7 @@ Complete only this lane, write the required durable receipt JSON, and stop.
|
|
|
417
439
|
WORKER_PROMPT
|
|
418
440
|
|
|
419
441
|
# Multi-worker launcher equivalent:
|
|
420
|
-
codex -a never -s danger-full-access exec -m <worker-model> -C <repo> -o <worker-final-file> - < <worker-prompt-file>
|
|
442
|
+
codex -a never -s danger-full-access exec --skip-git-repo-check -m <worker-model> -C <repo> -o <worker-final-file> - < <worker-prompt-file>
|
|
421
443
|
```
|
|
422
444
|
|
|
423
445
|
If any placeholder cannot be filled from the current lane packet, do not inspect
|
|
@@ -603,7 +625,10 @@ not a parent-thread summary. The receipt must include:
|
|
|
603
625
|
Before writing the durable receipt, run a receipt self-check. The top-level
|
|
604
626
|
receipt must include top-level `planRevision`, `actionId`, `laneKey`,
|
|
605
627
|
`laneType`, `workspaceId`, and `senderIds`, plus campaign/table/source ids and
|
|
606
|
-
row/message/approval counts.
|
|
628
|
+
row/message/approval counts. It must also include top-level `receiptArtifactPath`,
|
|
629
|
+
top-level `durableReceiptWritten:true`, top-level `receiptRunId`, and top-level
|
|
630
|
+
`receiptWrittenAt`; do not leave `receiptArtifactPath` only under
|
|
631
|
+
`createCampaignWorkflowReceipt` for the parent to patch during verify. Inside
|
|
607
632
|
`createCampaignStepReceipt.messageDraftingReceipt`, `sampleMessages[]` must
|
|
608
633
|
include `rowId`, `generatedMessageText`, `verdict`, and `issues`. Do not
|
|
609
634
|
substitute `message` for `generatedMessageText`. Do not substitute
|
|
@@ -615,6 +640,8 @@ before writing JSON; do not leave only raw objects like
|
|
|
615
640
|
`get_campaign_message_preparation_status`, `attachRecommendedSequenceResult`,
|
|
616
641
|
`finalCampaignRead`, or `finalTableRead`.
|
|
617
642
|
Self-check shorthand: top-level `planRevision`, `actionId`, `laneKey`, `laneType`, `workspaceId`, and `senderIds` must exist before worker completion.
|
|
643
|
+
Self-check shorthand: top-level `receiptArtifactPath`, `durableReceiptWritten:true`, `receiptRunId`, and `receiptWrittenAt` must exist before worker completion.
|
|
644
|
+
Self-check shorthand: top-level `receiptWrittenAt` must exist before worker completion.
|
|
618
645
|
Self-check shorthand: `campaignBriefReceipt.briefHash`,
|
|
619
646
|
`campaignBriefReceipt.deliveryFormat`, `campaignBriefReceipt.tokenRules`,
|
|
620
647
|
`campaignBriefReceipt.hardAvoids`, and `campaignBriefReceipt.sourceUseRules`
|
|
@@ -933,6 +960,17 @@ Message proof for every customer-visible lane must come from the current
|
|
|
933
960
|
campaign/table basis and include at least 3 generated review rows from the
|
|
934
961
|
packaged `generate-messages` path before completion is reported.
|
|
935
962
|
Parent-thread handwritten copy or setting `currentStep` is not proof.
|
|
963
|
+
|
|
964
|
+
The parent must run its own sample-quality gate before final reporting, even
|
|
965
|
+
when worker receipts say `verdict:"passed"`. For each shared lane, normalize the
|
|
966
|
+
reviewed sample messages by removing leading greeting/name lines, first names,
|
|
967
|
+
and whitespace-only differences; reject shared-lane samples when the message body is identical after removing first names or when all samples share the same
|
|
968
|
+
paragraph skeleton. Also reject final shared-lane samples with `Hey <name>,`
|
|
969
|
+
letter punctuation, weak relevance hedges, internal workflow vocabulary,
|
|
970
|
+
self-intros, or any non-empty `issues`. If the parent finds repeated shared-lane
|
|
971
|
+
sample copy, report `blocked: repeated_shared_lane_sample_copy`, revise the
|
|
972
|
+
campaign brief/template through the packaged workflow, rerun Generate Message,
|
|
973
|
+
and verify current-revision sample messages before final completion.
|
|
936
974
|
</command_backed_workflow>
|
|
937
975
|
|
|
938
976
|
<objective>
|