@sellable/install 0.1.430 → 0.1.432-wip.146.20260728055759

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.
@@ -1194,6 +1194,9 @@ const CREATE_EVERGREEN_CAMPAIGNS_ALLOWED_TOOLS = [
1194
1194
  ];
1195
1195
 
1196
1196
  const REFILL_SENDS_ALLOWED_TOOLS = [
1197
+ "mcp__sellable__refill_v3_sender_date_eligibility",
1198
+ "mcp__sellable__refill_v3_supply_assessment",
1199
+ "mcp__sellable__refill_v3_workspace_inventory",
1197
1200
  "mcp__sellable__refill_sends",
1198
1201
  "mcp__sellable__get_auth_status",
1199
1202
  "mcp__sellable__start_cli_login",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/install",
3
- "version": "0.1.430",
3
+ "version": "0.1.432-wip.146.20260728055759",
4
4
  "type": "module",
5
5
  "description": "One-command installer for Sellable MCP in Claude Code, Codex, and Hermes",
6
6
  "bin": {
@@ -3,6 +3,9 @@ name: refill-sends
3
3
  description: Refill projected sends across a workspace or selected senders through the canonical fenced coordinator.
4
4
  visibility: public
5
5
  allowed-tools:
6
+ - mcp__sellable__refill_v3_sender_date_eligibility
7
+ - mcp__sellable__refill_v3_supply_assessment
8
+ - mcp__sellable__refill_v3_workspace_inventory
6
9
  - mcp__sellable__refill_sends
7
10
  - mcp__sellable__get_refill_target_plan
8
11
  - mcp__sellable__get_scheduler_fill_capacity
@@ -30,14 +33,71 @@ Host commands:
30
33
  - Claude Code: `/sellable:refill-sends`
31
34
  - Codex: `$sellable:refill-sends`
32
35
 
36
+ ## Refill v3 Calls 1–3a — progressive observation gate
37
+
38
+ Use this gate only when the operator explicitly requests `--observe-v3`,
39
+ explicitly asks to inspect or preview Refill V3 eligibility and supply without
40
+ refilling, or invokes a UAT request that names Calls 1–3a. An ordinary fill or
41
+ refill intent without `--observe-v3` skips this gate and continues at
42
+ `Entry and exact scope` below.
43
+
44
+ Do not combine `--observe-v3` with `--yolo`, scheduled execution, or legacy
45
+ execution in one invocation. If they are combined, stop with no tool call and
46
+ ask the operator to choose observation or execution.
47
+
48
+ 1. Call `get_auth_status`. If Sellable authentication is not valid, run only
49
+ the returned login flow and recheck authentication.
50
+ 2. Load
51
+ `get_subskill_asset({ subskillName: "refill-sends", assetPath: "core/flow.v3.json" })`
52
+ completely. Require `workflow:"refill-sends-v3"` and `version:3`. Follow
53
+ only the current state's `allowedTools`, `doNotLoad`, and transition.
54
+ 3. Resolve the exact workspace by explicit ID, exact name, install mapping, or
55
+ an unambiguous accessible-workspace match using `get_active_workspace` and
56
+ `list_workspaces`. Never change the active workspace.
57
+ 4. Call
58
+ `refill_v3_workspace_inventory({ workspaceId, detail: "concise" })` exactly
59
+ once.
60
+ 5. For each globally eligible sender and requested sender-local date, call
61
+ `refill_v3_sender_date_eligibility` exactly once with the server-issued
62
+ `runId` and `fence`. Never call it for a globally ineligible sender.
63
+ 6. Only for a positively eligible lane, call `refill_v3_supply_assessment`
64
+ exactly once for each campaign/lane tuple issued by inventory. Pass the
65
+ backend-applied quota as the assessment bound; never invent or substitute a
66
+ campaign, lane, sender, date, run identity, or fence.
67
+ 7. Render the complete inventory, sender/date eligibility, and supply result,
68
+ including every typed blocker, then stop at `observed` or `blocked`.
69
+
70
+ A sender whose LinkedIn account is connected but whose Sales Navigator status
71
+ is disconnected remains eligible for real non-Sales-Nav lanes. For Thomas or
72
+ any equivalent sender, paid InMail must return `sales_nav_disconnected` at
73
+ eligibility and transition directly to terminal `blocked`: do not call supply,
74
+ refresh a provider, invoke Sales Navigator, or schedule or place anything.
75
+
76
+ While `--observe-v3` is selected, do not load `refill-sends-workflow`, call
77
+ `get_refill_target_plan`, or call `refill_sends`. The host consumes
78
+ `--observe-v3`; never pass it to `refill_sends`. Calls 1–3a are backend-owned
79
+ observation calls; they may append their fenced decision ledger and Call 2 may
80
+ perform its bounded single-flight paid-credit cache refresh. They never approve
81
+ or enrich rows, acquire supply, change campaign state, invoke a Sales Navigator
82
+ provider action, schedule, place, or send. Between calls, retain the
83
+ server-issued `runId` and `fence`; never reconstruct downstream policy in the
84
+ host.
85
+
86
+ The sections below remain the default path for ordinary fill and refill
87
+ requests. `refill_sends` remains the only mutation execution owner; this
88
+ explicit observation gate does not introduce another mutation owner.
89
+
33
90
  ## Entry and exact scope
34
91
 
35
- Accepted request fields are `--yolo`, `workspaceId`, `--sender`/`senderIds`/
36
- `senderNames`, `actionTypes`, `--until`/`untilDate`, `--target-date`/
37
- `targetDate`, and compatibility `horizonSendDays`. Omitted dates mean the
38
- scheduler-forward 48-hour window. `untilDate` is sender-local and inclusive;
39
- `targetDate` is one sender-local scheduler-fillable date. Skip no-send days and
40
- never extend beyond the requested date. Finish the full D1 reread before D2.
92
+ At the skill boundary, optional `--observe-v3` selects the explicit observation
93
+ gate above and is consumed by the host. It is not a `refill_sends` tool
94
+ argument. Existing coordinator request fields remain `--yolo`, `workspaceId`,
95
+ `--sender`/`senderIds`/`senderNames`, `actionTypes`, `--until`/`untilDate`,
96
+ `--target-date`/`targetDate`, and compatibility `horizonSendDays`. Omitted dates
97
+ mean the scheduler-forward 48-hour window. `untilDate` is sender-local and
98
+ inclusive; `targetDate` is one sender-local scheduler-fillable date. Skip
99
+ no-send days and never extend beyond the requested date. Finish the full D1
100
+ reread before D2.
41
101
 
42
102
  ```text
43
103
  refill_sends({ yolo?: boolean, executionMode?: "manual" | "scheduled" | "yolo", requireWorkspace?: boolean, workspaceId?: string, senders?: string[], senderIds?: string[], senderNames?: string[], actionTypes?: ("send_invite" | "send_inmail_closed")[], horizonSendDays?: number, untilDate?: "YYYY-MM-DD", targetDate?: "YYYY-MM-DD", runHandle?: RefillRunHandleV1, targetConfig?: RefillTargetConfigV1, reportingContext?: RefillReportingContextV2, messageTemplateRevision?: MessageTemplateRevisionV1 })