@sellable/mcp 0.1.948 → 0.1.950

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.
@@ -113,115 +113,157 @@ export declare const refillV3WorldStateToolDefinitions: {
113
113
  outputSchema: Readonly<{
114
114
  readonly type: "object";
115
115
  readonly additionalProperties: false;
116
- readonly required: readonly ["rows", "durationMs", "observationSideEffects"];
116
+ readonly required: readonly ["campaigns", "rows", "durationMs", "observationSideEffects"];
117
117
  readonly properties: {
118
- readonly rows: {
118
+ readonly campaigns: {
119
119
  readonly type: "array";
120
120
  readonly items: {
121
121
  readonly type: "object";
122
122
  readonly additionalProperties: false;
123
- readonly required: readonly ["date", "sender", "lane", "targetSlots", "takenSlots", "remainingTargetGap", "fillableSlotsNow", "blockedGap", "availableSlots", "reason", "activeCampaigns", "inactiveCampaigns"];
123
+ readonly required: ("name" | "status" | "id" | "evidence" | "activeJob" | "supply" | "leadSourceFamily" | "lanes" | "startEligible")[];
124
124
  readonly properties: {
125
- readonly date: {
125
+ id: {
126
126
  readonly type: "string";
127
- readonly pattern: "^\\d{4}-\\d{2}-\\d{2}$";
127
+ readonly minLength: 1;
128
128
  };
129
- readonly sender: {
130
- readonly type: "object";
129
+ name: {
130
+ readonly type: "string";
131
+ };
132
+ status: {
133
+ readonly type: "string";
134
+ readonly enum: readonly ["ACTIVE", "PAUSED"];
135
+ };
136
+ lanes: {
137
+ readonly type: "array";
138
+ readonly minItems: 1;
139
+ readonly items: {
140
+ readonly type: "string";
141
+ readonly enum: readonly ["connection_invite", "paid_inmail"];
142
+ };
143
+ };
144
+ startEligible: {
145
+ readonly type: "boolean";
146
+ };
147
+ activeJob: {
148
+ readonly type: readonly ["object", "null"];
131
149
  readonly additionalProperties: false;
132
- readonly required: readonly ["id", "name", "timezone"];
150
+ readonly required: readonly ["id", "kind", "status"];
133
151
  readonly properties: {
134
152
  readonly id: {
135
153
  readonly type: "string";
136
154
  readonly minLength: 1;
137
155
  };
138
- readonly name: {
156
+ readonly kind: {
139
157
  readonly type: "string";
158
+ readonly enum: readonly ["enrichment", "message_generation", "source_expansion", "scheduling"];
140
159
  };
141
- readonly timezone: {
160
+ readonly status: {
142
161
  readonly type: "string";
143
- readonly minLength: 1;
162
+ readonly enum: readonly ["queued", "running"];
144
163
  };
145
164
  };
146
165
  };
147
- readonly lane: {
148
- readonly type: "string";
149
- readonly enum: readonly ["connection_invite", "paid_inmail"];
150
- };
151
- readonly targetSlots: {
152
- readonly type: "integer";
153
- readonly minimum: 0;
154
- };
155
- readonly takenSlots: {
156
- readonly type: "integer";
157
- readonly minimum: 0;
158
- };
159
- readonly remainingTargetGap: {
160
- readonly type: "integer";
161
- readonly minimum: 0;
162
- };
163
- readonly fillableSlotsNow: {
164
- readonly type: "integer";
165
- readonly minimum: 0;
166
- };
167
- readonly blockedGap: {
168
- readonly type: "integer";
169
- readonly minimum: 0;
166
+ supply: {
167
+ readonly type: "object";
168
+ readonly additionalProperties: false;
169
+ readonly required: readonly ["readyToSchedule", "readyForApproval", "readyForMessageGeneration", "needsEnrichment"];
170
+ readonly properties: {
171
+ readonly readyToSchedule: {
172
+ readonly type: "integer";
173
+ readonly minimum: 0;
174
+ };
175
+ readonly readyForApproval: {
176
+ readonly type: "integer";
177
+ readonly minimum: 0;
178
+ };
179
+ readonly readyForMessageGeneration: {
180
+ readonly type: "integer";
181
+ readonly minimum: 0;
182
+ };
183
+ readonly needsEnrichment: {
184
+ readonly type: "integer";
185
+ readonly minimum: 0;
186
+ };
187
+ };
170
188
  };
171
- readonly availableSlots: {
172
- readonly type: "integer";
173
- readonly minimum: 0;
189
+ leadSourceFamily: {
190
+ readonly type: "string";
191
+ readonly enum: readonly ["post_engager", "signal_discovery", "cold"];
174
192
  };
175
- readonly reason: {
176
- readonly type: readonly ["object", "null"];
193
+ evidence: {
194
+ readonly type: "object";
177
195
  readonly additionalProperties: false;
178
- readonly required: readonly ["kind", "codes", "message"];
196
+ readonly required: readonly ["evergreen", "lastActualUseAt", "lastScheduledUseAt", "effectiveness", "supplyHealth"];
179
197
  readonly properties: {
180
- readonly kind: {
181
- readonly type: "string";
182
- readonly enum: readonly ["unavailable", "retry_required", "invalid_campaign_configuration"];
198
+ readonly evergreen: {
199
+ readonly type: "boolean";
183
200
  };
184
- readonly codes: {
185
- readonly type: "array";
186
- readonly items: {
187
- readonly type: "string";
188
- readonly enum: readonly ["global_cooldown", "connection_cooldown", "paid_inmail_cooldown", "endpoint_temporarily_unavailable", "date_in_past", "no_sending_hours", "sender_disconnected", "sender_limit_reached", "daily_target_met", "no_eligible_campaign", "no_ready_supply", "sales_nav_disconnected", "insufficient_paid_credits", "paid_inmail_connection_health_recheck_required", "paid_inmail_credit_refresh_failed", "invalid_paid_configuration", "campaign_table_missing", "campaign_sequence_invalid", "source_family_unresolved", "campaign_work_in_flight"];
189
- };
201
+ readonly createdAt: {
202
+ readonly type: readonly ["string", "null"];
190
203
  };
191
- readonly message: {
204
+ readonly lastActualUseAt: {
205
+ readonly type: readonly ["string", "null"];
206
+ };
207
+ readonly lastScheduledUseAt: {
208
+ readonly type: readonly ["string", "null"];
209
+ };
210
+ readonly effectiveness: {
192
211
  readonly type: "string";
212
+ readonly enum: readonly ["unknown", "low", "medium", "high"];
193
213
  };
194
- readonly resumeAt: {
214
+ readonly supplyHealth: {
195
215
  readonly type: "string";
216
+ readonly enum: readonly ["unknown", "healthy", "thin", "dry"];
217
+ };
218
+ readonly engagement: {
219
+ readonly type: "object";
220
+ readonly additionalProperties: false;
221
+ readonly required: readonly ["sends", "accepted", "replied", "acceptRate", "replyRate"];
222
+ readonly properties: {
223
+ readonly sends: {
224
+ readonly type: "number";
225
+ readonly minimum: 0;
226
+ };
227
+ readonly accepted: {
228
+ readonly type: "number";
229
+ readonly minimum: 0;
230
+ };
231
+ readonly replied: {
232
+ readonly type: "number";
233
+ readonly minimum: 0;
234
+ };
235
+ readonly acceptRate: {
236
+ readonly type: "number";
237
+ readonly minimum: 0;
238
+ readonly maximum: 100;
239
+ };
240
+ readonly replyRate: {
241
+ readonly type: "number";
242
+ readonly minimum: 0;
243
+ readonly maximum: 100;
244
+ };
245
+ };
196
246
  };
197
247
  };
198
248
  };
249
+ };
250
+ };
251
+ };
252
+ readonly rows: {
253
+ readonly type: "array";
254
+ readonly items: {
255
+ readonly properties: {
199
256
  readonly activeCampaigns: {
200
257
  readonly type: "array";
201
258
  readonly items: {
202
259
  readonly type: "object";
203
260
  readonly additionalProperties: false;
204
- readonly required: readonly ["id", "name", "status", "lanes", "eligible", "reason", "startEligible", "activeJob", "supply", "leadSourceFamily", "evidence"];
261
+ readonly required: readonly ["id", "eligible", "reason"];
205
262
  readonly properties: {
206
263
  readonly id: {
207
264
  readonly type: "string";
208
265
  readonly minLength: 1;
209
266
  };
210
- readonly name: {
211
- readonly type: "string";
212
- };
213
- readonly status: {
214
- readonly type: "string";
215
- readonly enum: readonly ["ACTIVE", "PAUSED"];
216
- };
217
- readonly lanes: {
218
- readonly type: "array";
219
- readonly minItems: 1;
220
- readonly items: {
221
- readonly type: "string";
222
- readonly enum: readonly ["connection_invite", "paid_inmail"];
223
- };
224
- };
225
267
  readonly eligible: {
226
268
  readonly type: "boolean";
227
269
  };
@@ -249,111 +291,6 @@ export declare const refillV3WorldStateToolDefinitions: {
249
291
  };
250
292
  };
251
293
  };
252
- readonly startEligible: {
253
- readonly type: "boolean";
254
- };
255
- readonly activeJob: {
256
- readonly type: readonly ["object", "null"];
257
- readonly additionalProperties: false;
258
- readonly required: readonly ["id", "kind", "status"];
259
- readonly properties: {
260
- readonly id: {
261
- readonly type: "string";
262
- readonly minLength: 1;
263
- };
264
- readonly kind: {
265
- readonly type: "string";
266
- readonly enum: readonly ["enrichment", "message_generation", "source_expansion", "scheduling"];
267
- };
268
- readonly status: {
269
- readonly type: "string";
270
- readonly enum: readonly ["queued", "running"];
271
- };
272
- };
273
- };
274
- readonly supply: {
275
- readonly type: "object";
276
- readonly additionalProperties: false;
277
- readonly required: readonly ["readyToSchedule", "readyForApproval", "readyForMessageGeneration", "needsEnrichment"];
278
- readonly properties: {
279
- readonly readyToSchedule: {
280
- readonly type: "integer";
281
- readonly minimum: 0;
282
- };
283
- readonly readyForApproval: {
284
- readonly type: "integer";
285
- readonly minimum: 0;
286
- };
287
- readonly readyForMessageGeneration: {
288
- readonly type: "integer";
289
- readonly minimum: 0;
290
- };
291
- readonly needsEnrichment: {
292
- readonly type: "integer";
293
- readonly minimum: 0;
294
- };
295
- };
296
- };
297
- readonly leadSourceFamily: {
298
- readonly type: "string";
299
- readonly enum: readonly ["post_engager", "signal_discovery", "cold"];
300
- };
301
- readonly evidence: {
302
- readonly type: "object";
303
- readonly additionalProperties: false;
304
- readonly required: readonly ["evergreen", "lastActualUseAt", "lastScheduledUseAt", "effectiveness", "supplyHealth"];
305
- readonly properties: {
306
- readonly evergreen: {
307
- readonly type: "boolean";
308
- };
309
- readonly createdAt: {
310
- readonly type: readonly ["string", "null"];
311
- };
312
- readonly lastActualUseAt: {
313
- readonly type: readonly ["string", "null"];
314
- };
315
- readonly lastScheduledUseAt: {
316
- readonly type: readonly ["string", "null"];
317
- };
318
- readonly effectiveness: {
319
- readonly type: "string";
320
- readonly enum: readonly ["unknown", "low", "medium", "high"];
321
- };
322
- readonly supplyHealth: {
323
- readonly type: "string";
324
- readonly enum: readonly ["unknown", "healthy", "thin", "dry"];
325
- };
326
- readonly engagement: {
327
- readonly type: "object";
328
- readonly additionalProperties: false;
329
- readonly required: readonly ["sends", "accepted", "replied", "acceptRate", "replyRate"];
330
- readonly properties: {
331
- readonly sends: {
332
- readonly type: "number";
333
- readonly minimum: 0;
334
- };
335
- readonly accepted: {
336
- readonly type: "number";
337
- readonly minimum: 0;
338
- };
339
- readonly replied: {
340
- readonly type: "number";
341
- readonly minimum: 0;
342
- };
343
- readonly acceptRate: {
344
- readonly type: "number";
345
- readonly minimum: 0;
346
- readonly maximum: 100;
347
- };
348
- readonly replyRate: {
349
- readonly type: "number";
350
- readonly minimum: 0;
351
- readonly maximum: 100;
352
- };
353
- };
354
- };
355
- };
356
- };
357
294
  };
358
295
  };
359
296
  };
@@ -362,27 +299,12 @@ export declare const refillV3WorldStateToolDefinitions: {
362
299
  readonly items: {
363
300
  readonly type: "object";
364
301
  readonly additionalProperties: false;
365
- readonly required: readonly ["id", "name", "status", "lanes", "eligible", "reason", "startEligible", "activeJob", "supply", "leadSourceFamily", "evidence"];
302
+ readonly required: readonly ["id", "eligible", "reason"];
366
303
  readonly properties: {
367
304
  readonly id: {
368
305
  readonly type: "string";
369
306
  readonly minLength: 1;
370
307
  };
371
- readonly name: {
372
- readonly type: "string";
373
- };
374
- readonly status: {
375
- readonly type: "string";
376
- readonly enum: readonly ["ACTIVE", "PAUSED"];
377
- };
378
- readonly lanes: {
379
- readonly type: "array";
380
- readonly minItems: 1;
381
- readonly items: {
382
- readonly type: "string";
383
- readonly enum: readonly ["connection_invite", "paid_inmail"];
384
- };
385
- };
386
308
  readonly eligible: {
387
309
  readonly type: "boolean";
388
310
  };
@@ -410,112 +332,81 @@ export declare const refillV3WorldStateToolDefinitions: {
410
332
  };
411
333
  };
412
334
  };
413
- readonly startEligible: {
414
- readonly type: "boolean";
415
- };
416
- readonly activeJob: {
417
- readonly type: readonly ["object", "null"];
418
- readonly additionalProperties: false;
419
- readonly required: readonly ["id", "kind", "status"];
420
- readonly properties: {
421
- readonly id: {
422
- readonly type: "string";
423
- readonly minLength: 1;
424
- };
425
- readonly kind: {
426
- readonly type: "string";
427
- readonly enum: readonly ["enrichment", "message_generation", "source_expansion", "scheduling"];
428
- };
429
- readonly status: {
430
- readonly type: "string";
431
- readonly enum: readonly ["queued", "running"];
432
- };
433
- };
434
- };
435
- readonly supply: {
436
- readonly type: "object";
437
- readonly additionalProperties: false;
438
- readonly required: readonly ["readyToSchedule", "readyForApproval", "readyForMessageGeneration", "needsEnrichment"];
439
- readonly properties: {
440
- readonly readyToSchedule: {
441
- readonly type: "integer";
442
- readonly minimum: 0;
443
- };
444
- readonly readyForApproval: {
445
- readonly type: "integer";
446
- readonly minimum: 0;
447
- };
448
- readonly readyForMessageGeneration: {
449
- readonly type: "integer";
450
- readonly minimum: 0;
451
- };
452
- readonly needsEnrichment: {
453
- readonly type: "integer";
454
- readonly minimum: 0;
455
- };
456
- };
457
- };
458
- readonly leadSourceFamily: {
335
+ };
336
+ };
337
+ };
338
+ readonly date: {
339
+ readonly type: "string";
340
+ readonly pattern: "^\\d{4}-\\d{2}-\\d{2}$";
341
+ };
342
+ readonly sender: {
343
+ readonly type: "object";
344
+ readonly additionalProperties: false;
345
+ readonly required: readonly ["id", "name", "timezone"];
346
+ readonly properties: {
347
+ readonly id: {
348
+ readonly type: "string";
349
+ readonly minLength: 1;
350
+ };
351
+ readonly name: {
352
+ readonly type: "string";
353
+ };
354
+ readonly timezone: {
355
+ readonly type: "string";
356
+ readonly minLength: 1;
357
+ };
358
+ };
359
+ };
360
+ readonly lane: {
361
+ readonly type: "string";
362
+ readonly enum: readonly ["connection_invite", "paid_inmail"];
363
+ };
364
+ readonly targetSlots: {
365
+ readonly type: "integer";
366
+ readonly minimum: 0;
367
+ };
368
+ readonly takenSlots: {
369
+ readonly type: "integer";
370
+ readonly minimum: 0;
371
+ };
372
+ readonly remainingTargetGap: {
373
+ readonly type: "integer";
374
+ readonly minimum: 0;
375
+ };
376
+ readonly fillableSlotsNow: {
377
+ readonly type: "integer";
378
+ readonly minimum: 0;
379
+ };
380
+ readonly blockedGap: {
381
+ readonly type: "integer";
382
+ readonly minimum: 0;
383
+ };
384
+ readonly availableSlots: {
385
+ readonly type: "integer";
386
+ readonly minimum: 0;
387
+ };
388
+ readonly reason: {
389
+ readonly type: readonly ["object", "null"];
390
+ readonly additionalProperties: false;
391
+ readonly required: readonly ["kind", "codes", "message"];
392
+ readonly properties: {
393
+ readonly kind: {
394
+ readonly type: "string";
395
+ readonly enum: readonly ["unavailable", "retry_required", "invalid_campaign_configuration"];
396
+ };
397
+ readonly codes: {
398
+ readonly type: "array";
399
+ readonly items: {
459
400
  readonly type: "string";
460
- readonly enum: readonly ["post_engager", "signal_discovery", "cold"];
461
- };
462
- readonly evidence: {
463
- readonly type: "object";
464
- readonly additionalProperties: false;
465
- readonly required: readonly ["evergreen", "lastActualUseAt", "lastScheduledUseAt", "effectiveness", "supplyHealth"];
466
- readonly properties: {
467
- readonly evergreen: {
468
- readonly type: "boolean";
469
- };
470
- readonly createdAt: {
471
- readonly type: readonly ["string", "null"];
472
- };
473
- readonly lastActualUseAt: {
474
- readonly type: readonly ["string", "null"];
475
- };
476
- readonly lastScheduledUseAt: {
477
- readonly type: readonly ["string", "null"];
478
- };
479
- readonly effectiveness: {
480
- readonly type: "string";
481
- readonly enum: readonly ["unknown", "low", "medium", "high"];
482
- };
483
- readonly supplyHealth: {
484
- readonly type: "string";
485
- readonly enum: readonly ["unknown", "healthy", "thin", "dry"];
486
- };
487
- readonly engagement: {
488
- readonly type: "object";
489
- readonly additionalProperties: false;
490
- readonly required: readonly ["sends", "accepted", "replied", "acceptRate", "replyRate"];
491
- readonly properties: {
492
- readonly sends: {
493
- readonly type: "number";
494
- readonly minimum: 0;
495
- };
496
- readonly accepted: {
497
- readonly type: "number";
498
- readonly minimum: 0;
499
- };
500
- readonly replied: {
501
- readonly type: "number";
502
- readonly minimum: 0;
503
- };
504
- readonly acceptRate: {
505
- readonly type: "number";
506
- readonly minimum: 0;
507
- readonly maximum: 100;
508
- };
509
- readonly replyRate: {
510
- readonly type: "number";
511
- readonly minimum: 0;
512
- readonly maximum: 100;
513
- };
514
- };
515
- };
516
- };
401
+ readonly enum: readonly ["global_cooldown", "connection_cooldown", "paid_inmail_cooldown", "endpoint_temporarily_unavailable", "date_in_past", "no_sending_hours", "sender_disconnected", "sender_limit_reached", "daily_target_met", "no_eligible_campaign", "no_ready_supply", "sales_nav_disconnected", "insufficient_paid_credits", "paid_inmail_connection_health_recheck_required", "paid_inmail_credit_refresh_failed", "invalid_paid_configuration", "campaign_table_missing", "campaign_sequence_invalid", "source_family_unresolved", "campaign_work_in_flight"];
517
402
  };
518
403
  };
404
+ readonly message: {
405
+ readonly type: "string";
406
+ };
407
+ readonly resumeAt: {
408
+ readonly type: "string";
409
+ };
519
410
  };
520
411
  };
521
412
  readonly paidCreditEvidence: {
@@ -564,6 +455,9 @@ export declare const refillV3WorldStateToolDefinitions: {
564
455
  };
565
456
  };
566
457
  };
458
+ readonly type: "object";
459
+ readonly additionalProperties: false;
460
+ readonly required: readonly ["date", "sender", "lane", "targetSlots", "takenSlots", "remainingTargetGap", "fillableSlotsNow", "blockedGap", "availableSlots", "reason", "activeCampaigns", "inactiveCampaigns"];
567
461
  };
568
462
  };
569
463
  readonly durationMs: {
@@ -28,7 +28,7 @@
28
28
  */
29
29
  import { getApi } from "../api.js";
30
30
  import { REFILL_V3_SCHEMA_VERSION_UNSUPPORTED } from "./refill-v3-attention-packet-contract.js";
31
- import { decodeRefillWorldStateResult, REFILL_V3_WORLD_STATE_OUTPUT_SCHEMA, } from "./refill-v3-world-state-contract.js";
31
+ import { decodeRefillWorldStateResult, REFILL_V3_WORLD_STATE_AGENT_OUTPUT_SCHEMA, } from "./refill-v3-world-state-contract.js";
32
32
  import { normalizeExplicitWorkspaceId, workspaceRequestOptions, } from "./workspace-context.js";
33
33
  /** The one authenticated backend boundary this projection may reach. */
34
34
  export const REFILL_V3_WORLD_STATE_ROUTE = "/api/v3/mcp/refill-v3/world-state";
@@ -98,9 +98,9 @@ const REFILL_V3_WORLD_STATE_TOOL_INPUT_SCHEMA = {
98
98
  export const refillV3WorldStateToolDefinitions = [
99
99
  {
100
100
  name: REFILL_V3_WORLD_STATE_TOOL_NAME,
101
- description: "One factual observation of Refill V3 send capacity. It returns one row per scoped sender, per scoped local date, per lane, where the two lanes connection_invite and paid_inmail are independent: each carries its own slots, its own typed blocker, and its own eligible and ineligible campaign options. A scoped sender/date request refreshes both lanes of that sender and date atomically, so the two lanes are never read from different instants. It states facts and never chooses: it schedules nothing, places nothing, sends nothing, approves nothing, enriches nothing, generates nothing, and mutates no campaign, and it reports each of those explicitly as false. The one bookkeeping effect it may perform is a paid-InMail credit cache read or refresh, reported as its own outcome.",
101
+ description: "One factual observation of Refill V3 send capacity. It returns one row per scoped sender, per scoped local date, per lane, where the two lanes connection_invite and paid_inmail are independent: each carries its own slots, its own typed blocker, and its own eligible and ineligible campaign options. Each campaign's facts (name, status, supply, evidence) appear once in top-level `campaigns`; a row's `activeCampaigns` and `inactiveCampaigns` name those campaigns by id with that row's own eligibility and reason. A scoped sender/date request refreshes both lanes of that sender and date atomically, so the two lanes are never read from different instants. It states facts and never chooses: it schedules nothing, places nothing, sends nothing, approves nothing, enriches nothing, generates nothing, and mutates no campaign, and it reports each of those explicitly as false. The one bookkeeping effect it may perform is a paid-InMail credit cache read or refresh, reported as its own outcome.",
102
102
  inputSchema: REFILL_V3_WORLD_STATE_TOOL_INPUT_SCHEMA,
103
- outputSchema: REFILL_V3_WORLD_STATE_OUTPUT_SCHEMA,
103
+ outputSchema: REFILL_V3_WORLD_STATE_AGENT_OUTPUT_SCHEMA,
104
104
  annotations: {
105
105
  title: "Refill V3 World State",
106
106
  // NOT literal read-only: the observation is allowed to perform paid-credit