@sellable/install 0.1.201 → 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
|
@@ -1147,7 +1147,15 @@ updates.
|
|
|
1147
1147
|
copies of this file; packaged Claude Code and Codex runs must use the MCP
|
|
1148
1148
|
asset loader so they share the same config.
|
|
1149
1149
|
3. Follow that prompt and workflow config exactly.
|
|
1150
|
-
4. For message
|
|
1150
|
+
4. For filter and message setup, keep the parent thread as a lean orchestrator.
|
|
1151
|
+
The only normal background agent is \`post-find-leads-message-scout\` for
|
|
1152
|
+
Message Drafting. Both post-import choices must launch Message Drafting.
|
|
1153
|
+
When filters are chosen, launch Message Drafting, then keep filters in the
|
|
1154
|
+
parent thread: load \`references/filter-leads.md\`, draft production rubrics,
|
|
1155
|
+
call \`save_rubrics\`, ask filter approval, and then join Message Drafting for
|
|
1156
|
+
template review. When filters are skipped, launch only Message Drafting
|
|
1157
|
+
before treating the campaign as in Messages/message review.
|
|
1158
|
+
5. For message generation, use the \`post-find-leads-message-scout\` agent when
|
|
1151
1159
|
available. The worker and parent-thread fallback must load
|
|
1152
1160
|
\`mcp__sellable__get_subskill_prompt({ subskillName: "generate-messages" })\`,
|
|
1153
1161
|
then every required message asset named by \`generate-messages\` Mode 0 before
|
|
@@ -1163,7 +1171,7 @@ updates.
|
|
|
1163
1171
|
local markdown such as \`message-validation.md\`, inspect the database
|
|
1164
1172
|
directly, or synthesize local validation artifacts from general knowledge.
|
|
1165
1173
|
The message recommendation handoff is labeled Markdown, not raw JSON.
|
|
1166
|
-
|
|
1174
|
+
6. Create the campaign shell early with the v1 brief so the user can open the
|
|
1167
1175
|
watch link and see useful setup state immediately. Materialize the approved
|
|
1168
1176
|
source list, copy confirmed rows into the campaign, and internally process the
|
|
1169
1177
|
first campaign-table execution slice after the source is attached to the
|
|
@@ -1176,22 +1184,23 @@ updates.
|
|
|
1176
1184
|
call \`mcp__sellable__update_campaign({ campaignId, enableICPFilters: true, currentStep: "create-icp-rubric", watchNarration })\`
|
|
1177
1185
|
so the watched app moves to Filter Rules while rubrics are drafted/saved.
|
|
1178
1186
|
After rubrics save, keep Filter Rules visible for approval; after approval,
|
|
1179
|
-
move to Filter Leads
|
|
1180
|
-
|
|
1181
|
-
If filters are skipped,
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1187
|
+
move to Filter Leads with \`currentStep: "apply-icp-rubric"\` and wait there
|
|
1188
|
+
while Message Drafting finishes or the template is approved.
|
|
1189
|
+
If filters are skipped, launch Message Drafting before moving to
|
|
1190
|
+
Messages/message review; updating \`currentStep\` to \`messages\` is not proof
|
|
1191
|
+
that the background worker started. Queue the bounded campaign-table
|
|
1192
|
+
execution-slice \`enrichCellId\` cells only after message approval. Move to the
|
|
1193
|
+
generated-row Messages review only after at least one review row passes and
|
|
1194
|
+
one generated message is ready.
|
|
1185
1195
|
Do not ask the user to approve the brief before shell creation unless they
|
|
1186
1196
|
explicitly requested a no-write draft; the shell itself is the review surface.
|
|
1187
|
-
|
|
1197
|
+
7. The main thread owns watch navigation. Call
|
|
1188
1198
|
\`mcp__sellable__update_campaign({ campaignId, currentStep })\` before major
|
|
1189
1199
|
visible work so the user can watch progress in the app: \`create-offer\` for
|
|
1190
1200
|
the brief, \`pick-provider\` or the selected provider step while sourcing,
|
|
1191
1201
|
\`filter-choice\` after source rows are copied into the campaign table, \`create-icp-rubric\` as soon
|
|
1192
1202
|
as filters are chosen and while saved filters await approval,
|
|
1193
|
-
\`apply-icp-rubric\` after filter approval while message approval is pending,
|
|
1194
|
-
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
|
|
1195
1204
|
observation state,
|
|
1196
1205
|
\`auto-execute-messaging\` after at least one row passes and initial campaign-row
|
|
1197
1206
|
messages are being generated or reviewed, \`awaiting-user-greenlight\` only
|
|
@@ -2482,10 +2491,7 @@ function verify(opts) {
|
|
|
2482
2491
|
const pluginMcpContent = existsSync(pluginMcpPath)
|
|
2483
2492
|
? readFileSync(pluginMcpPath, "utf8")
|
|
2484
2493
|
: "";
|
|
2485
|
-
const hasCodexMcpDriver = hasWatchModeDriverMarker(
|
|
2486
|
-
configContent,
|
|
2487
|
-
"codex"
|
|
2488
|
-
);
|
|
2494
|
+
const hasCodexMcpDriver = hasWatchModeDriverMarker(configContent, "codex");
|
|
2489
2495
|
const hasCodexPluginDriver = hasWatchModeDriverMarker(
|
|
2490
2496
|
pluginMcpContent,
|
|
2491
2497
|
"codex"
|
|
@@ -2941,7 +2947,9 @@ async function main() {
|
|
|
2941
2947
|
const token = rawArgs[2];
|
|
2942
2948
|
const authSetFlags = rawArgs.slice(3);
|
|
2943
2949
|
const dryRun = authSetFlags.includes("--dry-run");
|
|
2944
|
-
const unknownAuthSetFlag = authSetFlags.find(
|
|
2950
|
+
const unknownAuthSetFlag = authSetFlags.find(
|
|
2951
|
+
(arg) => arg !== "--dry-run"
|
|
2952
|
+
);
|
|
2945
2953
|
if (unknownAuthSetFlag) {
|
|
2946
2954
|
console.error(`Unknown auth set option: ${unknownAuthSetFlag}`);
|
|
2947
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
|
|
@@ -427,14 +428,16 @@ After confirmed source rows exist in the campaign table, do not load the
|
|
|
427
428
|
message registry or any deep filter/message prompt
|
|
428
429
|
before the filter-choice question. After `confirm_lead_list`, ask add filters
|
|
429
430
|
vs skip filters immediately. Once the user answers, launch only Message Drafting
|
|
430
|
-
from the same campaign/table basis.
|
|
431
|
+
from the same campaign/table basis. This kickoff is required for both answers:
|
|
432
|
+
`Use filters` and `Skip filters`. If the user chooses filters, the parent
|
|
431
433
|
thread moves to Filter Rules, loads the filter reference, saves rubrics, then
|
|
432
434
|
asks for filter approval while Message Drafting runs. After approval, move to
|
|
433
|
-
Filter Leads
|
|
434
|
-
|
|
435
|
-
Messages/message review
|
|
436
|
-
|
|
437
|
-
|
|
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.
|
|
438
441
|
|
|
439
442
|
The Message Drafting handoff must stay lean. Include only `campaignId`,
|
|
440
443
|
`workflowTableId`, a concise brief summary, concise source summary/source-use
|
|
@@ -915,11 +918,12 @@ updates.
|
|
|
915
918
|
3. Follow that prompt and workflow config exactly.
|
|
916
919
|
4. For filter and message setup, keep the parent thread as a lean orchestrator.
|
|
917
920
|
The only normal background agent is `post-find-leads-message-scout` for
|
|
918
|
-
Message Drafting.
|
|
919
|
-
filters
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
Message Drafting
|
|
921
|
+
Message Drafting. Both post-import choices must launch Message Drafting.
|
|
922
|
+
When filters are chosen, launch Message Drafting, then keep filters in the
|
|
923
|
+
parent thread: load `references/filter-leads.md`, draft production rubrics,
|
|
924
|
+
call `save_rubrics`, ask filter approval, and then join Message Drafting for
|
|
925
|
+
template review. When filters are skipped, launch only Message Drafting
|
|
926
|
+
before treating the campaign as in Messages/message review.
|
|
923
927
|
5. For message generation, keep the parent thread as a lean orchestrator and
|
|
924
928
|
use the `post-find-leads-message-scout` compatibility agent for Message
|
|
925
929
|
Drafting whenever the host exposes it
|
|
@@ -966,12 +970,14 @@ updates.
|
|
|
966
970
|
so the watched app moves to Filter Rules while the parent drafts/saves
|
|
967
971
|
rubrics and Message Drafting runs.
|
|
968
972
|
After rubrics save, keep Filter Rules visible for approval; after approval,
|
|
969
|
-
move to Filter Leads
|
|
970
|
-
|
|
971
|
-
If filters are skipped,
|
|
972
|
-
|
|
973
|
-
|
|
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
|
+
If filters are skipped, launch Message Drafting before moving to
|
|
976
|
+
Messages/message review; updating `currentStep` to `messages` is not proof
|
|
977
|
+
that the background worker started. Queue the bounded campaign-table
|
|
978
|
+
execution-slice `enrichCellId` cells only after message approval. Move to the
|
|
979
|
+
generated-row Messages review only after at least one review row passes and
|
|
980
|
+
one generated message is ready.
|
|
975
981
|
Do not ask the user to approve the brief before shell creation unless they
|
|
976
982
|
explicitly requested a no-write draft; the shell itself is the review surface.
|
|
977
983
|
7. The main thread owns watch navigation. Call
|
|
@@ -980,8 +986,7 @@ updates.
|
|
|
980
986
|
the brief, `pick-provider` or the selected provider step while sourcing,
|
|
981
987
|
`filter-choice` after source rows are copied into the campaign table, `create-icp-rubric` as soon
|
|
982
988
|
as filters are chosen and while saved filters await approval,
|
|
983
|
-
`apply-icp-rubric` after filter approval while message approval is pending,
|
|
984
|
-
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
|
|
985
990
|
observation state,
|
|
986
991
|
`auto-execute-messaging` after at least one row passes and initial campaign-row
|
|
987
992
|
messages are being generated or reviewed, `awaiting-user-greenlight` only
|