@sellable/install 0.1.202 → 0.1.203
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.
|
@@ -169,6 +169,13 @@ When reporting branch runtime proof, use this shape under
|
|
|
169
169
|
|
|
170
170
|
Do not tell the UI to show Message Draft Builder as running unless this proof
|
|
171
171
|
exists and points at the current non-empty campaign-table execution slice.
|
|
172
|
+
If the host cannot launch a background branch and the parent thread runs this
|
|
173
|
+
same contract inline, report `statusSource: "parent-thread-fallback"` and
|
|
174
|
+
`status: "fallback-active"` while working, then `status: "ready"` when the
|
|
175
|
+
inline recommendation passes. A validated parent-thread fallback is not a
|
|
176
|
+
background worker failure; it must satisfy the same live-context, prompt,
|
|
177
|
+
reference-asset, and validation requirements before the parent shows message
|
|
178
|
+
review.
|
|
172
179
|
|
|
173
180
|
## Basis Changes And Rewrites
|
|
174
181
|
|
package/bin/sellable-install.mjs
CHANGED
|
@@ -1184,8 +1184,8 @@ updates.
|
|
|
1184
1184
|
call \`mcp__sellable__update_campaign({ campaignId, enableICPFilters: true, currentStep: "create-icp-rubric", watchNarration })\`
|
|
1185
1185
|
so the watched app moves to Filter Rules while rubrics are drafted/saved.
|
|
1186
1186
|
After rubrics save, keep Filter Rules visible for approval; after approval,
|
|
1187
|
-
move to Filter Leads
|
|
1188
|
-
|
|
1187
|
+
move to Filter Leads with \`currentStep: "apply-icp-rubric"\` and wait there
|
|
1188
|
+
while Message Drafting finishes or the template is approved.
|
|
1189
1189
|
If filters are skipped, launch Message Drafting before moving to
|
|
1190
1190
|
Messages/message review; updating \`currentStep\` to \`messages\` is not proof
|
|
1191
1191
|
that the background worker started. Queue the bounded campaign-table
|
|
@@ -1200,8 +1200,7 @@ updates.
|
|
|
1200
1200
|
the brief, \`pick-provider\` or the selected provider step while sourcing,
|
|
1201
1201
|
\`filter-choice\` after source rows are copied into the campaign table, \`create-icp-rubric\` as soon
|
|
1202
1202
|
as filters are chosen and while saved filters await approval,
|
|
1203
|
-
\`apply-icp-rubric\` after filter approval while message approval is pending,
|
|
1204
|
-
and after message approval while bounded enrichment/filter scoring runs, \`validate-sample\` only as a recovery/legacy
|
|
1203
|
+
\`apply-icp-rubric\` after filter approval while message approval is pending and while bounded enrichment/filter scoring runs after approval, \`validate-sample\` only as a recovery/legacy
|
|
1205
1204
|
observation state,
|
|
1206
1205
|
\`auto-execute-messaging\` after at least one row passes and initial campaign-row
|
|
1207
1206
|
messages are being generated or reviewed, \`awaiting-user-greenlight\` only
|
|
@@ -2492,10 +2491,7 @@ function verify(opts) {
|
|
|
2492
2491
|
const pluginMcpContent = existsSync(pluginMcpPath)
|
|
2493
2492
|
? readFileSync(pluginMcpPath, "utf8")
|
|
2494
2493
|
: "";
|
|
2495
|
-
const hasCodexMcpDriver = hasWatchModeDriverMarker(
|
|
2496
|
-
configContent,
|
|
2497
|
-
"codex"
|
|
2498
|
-
);
|
|
2494
|
+
const hasCodexMcpDriver = hasWatchModeDriverMarker(configContent, "codex");
|
|
2499
2495
|
const hasCodexPluginDriver = hasWatchModeDriverMarker(
|
|
2500
2496
|
pluginMcpContent,
|
|
2501
2497
|
"codex"
|
|
@@ -2951,7 +2947,9 @@ async function main() {
|
|
|
2951
2947
|
const token = rawArgs[2];
|
|
2952
2948
|
const authSetFlags = rawArgs.slice(3);
|
|
2953
2949
|
const dryRun = authSetFlags.includes("--dry-run");
|
|
2954
|
-
const unknownAuthSetFlag = authSetFlags.find(
|
|
2950
|
+
const unknownAuthSetFlag = authSetFlags.find(
|
|
2951
|
+
(arg) => arg !== "--dry-run"
|
|
2952
|
+
);
|
|
2955
2953
|
if (unknownAuthSetFlag) {
|
|
2956
2954
|
console.error(`Unknown auth set option: ${unknownAuthSetFlag}`);
|
|
2957
2955
|
process.exit(2);
|
package/package.json
CHANGED
|
@@ -93,8 +93,9 @@ message-template approval before enrichment/filtering or Generate Message cells.
|
|
|
93
93
|
Filter work stays in the parent thread and must inspect visible campaign rows
|
|
94
94
|
with `get_rows_minimal` / `get_rows` before drafting and saving rubrics; use at
|
|
95
95
|
most one direct `enrich_with_prospeo` sample when row evidence is too thin.
|
|
96
|
-
After filter approval,
|
|
97
|
-
|
|
96
|
+
After filter approval, the browser should move to Filter Leads with
|
|
97
|
+
`currentStep: "apply-icp-rubric"` and show template waiting/approval copy until
|
|
98
|
+
the template is approved.
|
|
98
99
|
The default path stays the existing first campaign-table execution slice:
|
|
99
100
|
review the normal `reviewBatchLimit:15`, approve reviewed draft rows, then move
|
|
100
101
|
to Settings/sequence/final greenlight. Only call
|
|
@@ -431,13 +432,12 @@ from the same campaign/table basis. This kickoff is required for both answers:
|
|
|
431
432
|
`Use filters` and `Skip filters`. If the user chooses filters, the parent
|
|
432
433
|
thread moves to Filter Rules, loads the filter reference, saves rubrics, then
|
|
433
434
|
asks for filter approval while Message Drafting runs. After approval, move to
|
|
434
|
-
Filter Leads
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
path.
|
|
435
|
+
Filter Leads with `currentStep: "apply-icp-rubric"` and wait there while Message
|
|
436
|
+
Drafting finishes or the recommendation is reviewed. If the user skips filters, start Message Drafting
|
|
437
|
+
first, then move to Messages/message review after it has started or returned a
|
|
438
|
+
ready recommendation. `update_campaign({ currentStep: "messages" })` is not
|
|
439
|
+
proof of kickoff. Enrichment/filtering and Generate Message cells wait for
|
|
440
|
+
message approval. AI Generated is an explicit opt-out from the template path.
|
|
441
441
|
|
|
442
442
|
The Message Drafting handoff must stay lean. Include only `campaignId`,
|
|
443
443
|
`workflowTableId`, a concise brief summary, concise source summary/source-use
|
|
@@ -970,8 +970,8 @@ updates.
|
|
|
970
970
|
so the watched app moves to Filter Rules while the parent drafts/saves
|
|
971
971
|
rubrics and Message Drafting runs.
|
|
972
972
|
After rubrics save, keep Filter Rules visible for approval; after approval,
|
|
973
|
-
move to Filter Leads
|
|
974
|
-
|
|
973
|
+
move to Filter Leads with `currentStep: "apply-icp-rubric"` and wait there
|
|
974
|
+
while Message Drafting finishes or the template is approved.
|
|
975
975
|
If filters are skipped, launch Message Drafting before moving to
|
|
976
976
|
Messages/message review; updating `currentStep` to `messages` is not proof
|
|
977
977
|
that the background worker started. Queue the bounded campaign-table
|
|
@@ -986,8 +986,7 @@ updates.
|
|
|
986
986
|
the brief, `pick-provider` or the selected provider step while sourcing,
|
|
987
987
|
`filter-choice` after source rows are copied into the campaign table, `create-icp-rubric` as soon
|
|
988
988
|
as filters are chosen and while saved filters await approval,
|
|
989
|
-
`apply-icp-rubric` after filter approval while message approval is pending,
|
|
990
|
-
and after message approval while bounded enrichment/filter scoring runs, `validate-sample` only as a recovery/legacy
|
|
989
|
+
`apply-icp-rubric` after filter approval while message approval is pending and while bounded enrichment/filter scoring runs after approval, `validate-sample` only as a recovery/legacy
|
|
991
990
|
observation state,
|
|
992
991
|
`auto-execute-messaging` after at least one row passes and initial campaign-row
|
|
993
992
|
messages are being generated or reviewed, `awaiting-user-greenlight` only
|