@sellable/install 0.1.303 → 0.1.305
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/README.md +101 -10
- package/bin/sellable-install.mjs +1202 -56
- package/lib/runtime-verify.mjs +5 -0
- package/package.json +5 -3
- package/skill-templates/refill-sends-v2.md +11 -0
- package/skill-templates/refill-sends.md +23 -4
package/lib/runtime-verify.mjs
CHANGED
|
@@ -32,6 +32,7 @@ export const REQUIRED_SELLABLE_MCP_TOOLS = [
|
|
|
32
32
|
"get_campaign_refill_state",
|
|
33
33
|
"get_refill_target_plan",
|
|
34
34
|
"get_scheduler_fill_capacity",
|
|
35
|
+
"run_scheduler_sweep",
|
|
35
36
|
"refill_sends",
|
|
36
37
|
"setup_evergreen_campaigns",
|
|
37
38
|
"start_campaign_message_preparation",
|
|
@@ -188,6 +189,10 @@ function summarizeToolResult(name, result) {
|
|
|
188
189
|
return {
|
|
189
190
|
...summary,
|
|
190
191
|
authOk: parsed.ok === true,
|
|
192
|
+
configPath: parsed.configPath || null,
|
|
193
|
+
configExists: parsed.configExists === true,
|
|
194
|
+
configsDir: parsed.configsDir || null,
|
|
195
|
+
tokenPresent: parsed.tokenPresent === true,
|
|
191
196
|
errorType: parsed.error?.type || null,
|
|
192
197
|
activeWorkspaceId: parsed.activeWorkspaceId || null,
|
|
193
198
|
activeWorkspaceName: parsed.activeWorkspaceName || null,
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sellable/install",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.305",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"description": "One-command installer for Sellable MCP in Claude Code and
|
|
5
|
+
"description": "One-command installer for Sellable MCP in Claude Code, Codex, and Hermes",
|
|
6
6
|
"bin": {
|
|
7
7
|
"sellable": "bin/sellable-install.mjs"
|
|
8
8
|
},
|
|
@@ -18,13 +18,15 @@
|
|
|
18
18
|
"README.md"
|
|
19
19
|
],
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@modelcontextprotocol/sdk": "^1.25.2"
|
|
21
|
+
"@modelcontextprotocol/sdk": "^1.25.2",
|
|
22
|
+
"yaml": "^2.8.1"
|
|
22
23
|
},
|
|
23
24
|
"keywords": [
|
|
24
25
|
"sellable",
|
|
25
26
|
"mcp",
|
|
26
27
|
"claude-code",
|
|
27
28
|
"codex",
|
|
29
|
+
"hermes",
|
|
28
30
|
"linkedin",
|
|
29
31
|
"outbound"
|
|
30
32
|
],
|
|
@@ -128,6 +128,17 @@ Reinvoke with that handle. The approximately five minute scheduler budget is at
|
|
|
128
128
|
the run level, not one tool call. A window-closed or loaded-awaiting scheduler
|
|
129
129
|
report must include remaining-ready count, exact expected pickup time, and the
|
|
130
130
|
resume handle; never treat bare "awaiting scheduler" copy as a final answer.
|
|
131
|
+
Scheduler-run receipt interpretation still applies to terminal progress:
|
|
132
|
+
`cellsConsidered is allocation-attempt count`, not total ready supply, while
|
|
133
|
+
`readyCellsFound` is ready inventory found before prefilters. Inspect
|
|
134
|
+
`campaignScopeSummary` before assuming the selected refill campaign/table was
|
|
135
|
+
included; if absent, do not infer that target was ready-but-blocked. Interpret
|
|
136
|
+
`prefiltered`, `skipped`, and `deferred` separately. For ready closed-InMail
|
|
137
|
+
cells with stale paid-credit reasons, route to
|
|
138
|
+
`refresh_paid_inmail_credits_then_rerun` once, then rerun/status.
|
|
139
|
+
`wait_for_capacity_or_window` means report loaded/capped/waiting and do not
|
|
140
|
+
source or prep more rows; `no_ready_cells_continue_refill_prep` means return to
|
|
141
|
+
the refill/prep ladder. Do not treat `cellsScheduled:0` alone as failure.
|
|
131
142
|
|
|
132
143
|
After the first prep batch, read the conversion-verdict journal line. It is
|
|
133
144
|
rendered from packet facts: `supplyCensus`, `censusReason`, and
|
|
@@ -6,6 +6,7 @@ allowed-tools:
|
|
|
6
6
|
- mcp__sellable__refill_sends
|
|
7
7
|
- mcp__sellable__get_refill_target_plan
|
|
8
8
|
- mcp__sellable__get_scheduler_fill_capacity
|
|
9
|
+
- mcp__sellable__run_scheduler_sweep
|
|
9
10
|
- mcp__sellable__refresh_paid_inmail_credits
|
|
10
11
|
- mcp__sellable__get_subskill_asset
|
|
11
12
|
- mcp__sellable__get_auth_status
|
|
@@ -114,10 +115,11 @@ or install-time workspace mapping. Pass `workspaceId` on every scheduled or
|
|
|
114
115
|
`--yolo` refill tool call, including setup/read calls such as
|
|
115
116
|
`refill_sends`, `get_refill_target_plan`, `list_senders`,
|
|
116
117
|
`get_sender_routing`, `resolve_campaign_fill_route`,
|
|
117
|
-
`get_campaign_refill_state`, `get_scheduler_fill_capacity`,
|
|
118
|
-
refill mutation covered by the packet.
|
|
119
|
-
`--yolo` mode is a blocker; stop with
|
|
120
|
-
against an implicit or guessed
|
|
118
|
+
`get_campaign_refill_state`, `get_scheduler_fill_capacity`,
|
|
119
|
+
`run_scheduler_sweep`, and any later refill mutation covered by the packet.
|
|
120
|
+
Missing `workspaceId` in scheduled or `--yolo` mode is a blocker; stop with
|
|
121
|
+
`WORKSPACE_REQUIRED` instead of running against an implicit or guessed
|
|
122
|
+
workspace.
|
|
121
123
|
|
|
122
124
|
Do not solve scheduled or `--yolo` workspace uncertainty by changing the shared
|
|
123
125
|
active workspace. Manual interactive workspace switching remains a separate
|
|
@@ -269,6 +271,23 @@ need raw proof, call the read-only `get_scheduler_fill_capacity` query for the
|
|
|
269
271
|
same sender/action/date; it tells the MCP how many cells the product scheduler
|
|
270
272
|
will try to place and does not import, approve, schedule, refresh credits, or
|
|
271
273
|
mutate.
|
|
274
|
+
When the refill loop has ready rows and needs scheduler pickup now, use
|
|
275
|
+
`run_scheduler_sweep` with the same explicit `workspaceId`; it can place cells
|
|
276
|
+
within existing scheduler gates and returns the receipt, but it never sends or
|
|
277
|
+
bypasses limits.
|
|
278
|
+
Scheduler-run receipt interpretation: `cellsConsidered is allocation-attempt
|
|
279
|
+
count`, not total ready supply, while `readyCellsFound` is ready inventory found
|
|
280
|
+
before prefilters. Inspect `campaignScopeSummary` before assuming the selected
|
|
281
|
+
refill campaign/table was included; if absent, do not infer that target was
|
|
282
|
+
ready-but-blocked. Interpret `prefiltered` as ready cells removed before
|
|
283
|
+
allocation, `skipped` as considered cells blocked by scheduler gates, and
|
|
284
|
+
`deferred` as considered cells waiting on windows/capacity/cooldown. For ready
|
|
285
|
+
closed-InMail cells with stale paid-credit prefilter/defer reasons, refresh
|
|
286
|
+
paid-InMail credits once through existing tools, then rerun `run_scheduler_sweep`
|
|
287
|
+
or read `action:"status"`; `refresh_paid_inmail_credits_then_rerun` is that
|
|
288
|
+
path. `wait_for_capacity_or_window` means report loaded/capped/waiting and do
|
|
289
|
+
not source or prep more rows; `no_ready_cells_continue_refill_prep` means return
|
|
290
|
+
to the refill/prep ladder. Do not treat `cellsScheduled:0` alone as failure.
|
|
272
291
|
If the target plan is complete by projected coverage, report that the selected
|
|
273
292
|
target is already filled and no-op without asking for approval. If the ready
|
|
274
293
|
buffer covers the projected gap, paid InMail credit facts are fresh for every
|