@sellable/mcp 0.1.315 → 0.1.319

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.
@@ -18,7 +18,7 @@ function toGuidance(check, message) {
18
18
  return "Fix framework files and rerun bootstrap_create_campaign.";
19
19
  }
20
20
  if (check === "model_quality") {
21
- return `Use at least ${getCampaignModelMinimumSummary()} for campaign-critical generation.`;
21
+ return `Use trusted active-turn metadata before enforcing the campaign model floor: ${getCampaignModelMinimumSummary()}.`;
22
22
  }
23
23
  if (check === "resume_context") {
24
24
  return "Confirm the campaignId exists and is accessible, then retry bootstrap_create_campaign.";
@@ -98,15 +98,19 @@ export const bootstrapToolDefinitions = [
98
98
  },
99
99
  host: {
100
100
  type: "string",
101
- description: "Optional host label for model-quality preflight, for example Claude Code or Codex.",
101
+ description: "Optional host label for active model-quality preflight, for example Claude Code or Codex.",
102
102
  },
103
103
  model: {
104
104
  type: "string",
105
- description: `Optional current host model name. Minimum campaign quality config: ${getCampaignModelMinimumSummary()}.`,
105
+ description: "Optional active host model name from runtime metadata. Do not pass config defaults.",
106
106
  },
107
107
  reasoningEffort: {
108
108
  type: "string",
109
- description: `Optional current reasoning setting. Minimum campaign quality config: ${getCampaignModelMinimumSummary()}.`,
109
+ description: "Optional active reasoning setting from runtime metadata. Do not pass config defaults.",
110
+ },
111
+ modelMetadataSource: {
112
+ type: "string",
113
+ description: "Where active model metadata came from, for example codex_turn_metadata, claude_runtime_metadata, claude_session_context, active_turn_metadata, or user_confirmed.",
110
114
  },
111
115
  },
112
116
  additionalProperties: false,
@@ -129,6 +133,7 @@ export async function bootstrapCreateCampaign(input = {}) {
129
133
  host: input.host,
130
134
  model: input.model,
131
135
  reasoningEffort: input.reasoningEffort,
136
+ metadataSource: input.modelMetadataSource,
132
137
  });
133
138
  const runAuthCheck = async () => {
134
139
  let status = await getAuthStatus();
@@ -188,7 +193,7 @@ export async function bootstrapCreateCampaign(input = {}) {
188
193
  }
189
194
  requiredChecks.push({
190
195
  key: "model_quality",
191
- ok: modelQuality.status === "ok",
196
+ ok: modelQuality.status !== "warn",
192
197
  blocking: false,
193
198
  detail: modelQuality.message,
194
199
  });
@@ -0,0 +1,308 @@
1
+ type ToolTextContent = {
2
+ type: "text";
3
+ text: string;
4
+ };
5
+ type ToolResult<T extends Record<string, unknown>> = {
6
+ structuredContent: T;
7
+ content: [ToolTextContent];
8
+ isError?: boolean;
9
+ };
10
+ export declare const inboxToolDefinitions: ({
11
+ name: string;
12
+ description: string;
13
+ inputSchema: {
14
+ type: string;
15
+ properties: {
16
+ limit: {
17
+ type: string;
18
+ minimum: number;
19
+ maximum: number;
20
+ };
21
+ cursor: {
22
+ type: string;
23
+ };
24
+ filter: {
25
+ type: string;
26
+ enum: string[];
27
+ };
28
+ status: {
29
+ type: string;
30
+ enum: string[];
31
+ };
32
+ senderId: {
33
+ type: string;
34
+ };
35
+ classification: {
36
+ type: string;
37
+ };
38
+ search: {
39
+ type: string;
40
+ };
41
+ includeEnrichment: {
42
+ type: string;
43
+ };
44
+ includeReplyEligibility: {
45
+ type: string;
46
+ };
47
+ threadId?: undefined;
48
+ versionId?: undefined;
49
+ body?: undefined;
50
+ approvedBody?: undefined;
51
+ approvedBodyHash?: undefined;
52
+ approvedThreadSnapshot?: undefined;
53
+ idempotencyKey?: undefined;
54
+ approval?: undefined;
55
+ message?: undefined;
56
+ approvedMessageHash?: undefined;
57
+ };
58
+ required: never[];
59
+ additionalProperties: boolean;
60
+ };
61
+ outputSchema: {
62
+ type: string;
63
+ additionalProperties: boolean;
64
+ };
65
+ annotations: {
66
+ readOnlyHint: boolean;
67
+ destructiveHint: boolean;
68
+ openWorldHint: boolean;
69
+ idempotentHint?: undefined;
70
+ };
71
+ } | {
72
+ name: string;
73
+ description: string;
74
+ inputSchema: {
75
+ type: string;
76
+ properties: {
77
+ threadId: {
78
+ type: string;
79
+ };
80
+ limit?: undefined;
81
+ cursor?: undefined;
82
+ filter?: undefined;
83
+ status?: undefined;
84
+ senderId?: undefined;
85
+ classification?: undefined;
86
+ search?: undefined;
87
+ includeEnrichment?: undefined;
88
+ includeReplyEligibility?: undefined;
89
+ versionId?: undefined;
90
+ body?: undefined;
91
+ approvedBody?: undefined;
92
+ approvedBodyHash?: undefined;
93
+ approvedThreadSnapshot?: undefined;
94
+ idempotencyKey?: undefined;
95
+ approval?: undefined;
96
+ message?: undefined;
97
+ approvedMessageHash?: undefined;
98
+ };
99
+ required: string[];
100
+ additionalProperties: boolean;
101
+ };
102
+ outputSchema: {
103
+ type: string;
104
+ additionalProperties: boolean;
105
+ };
106
+ annotations: {
107
+ readOnlyHint: boolean;
108
+ destructiveHint: boolean;
109
+ openWorldHint: boolean;
110
+ idempotentHint?: undefined;
111
+ };
112
+ } | {
113
+ name: string;
114
+ description: string;
115
+ inputSchema: {
116
+ type: string;
117
+ properties: {
118
+ threadId: {
119
+ type: string;
120
+ };
121
+ versionId: {
122
+ type: string;
123
+ };
124
+ body: {
125
+ type: string;
126
+ };
127
+ limit?: undefined;
128
+ cursor?: undefined;
129
+ filter?: undefined;
130
+ status?: undefined;
131
+ senderId?: undefined;
132
+ classification?: undefined;
133
+ search?: undefined;
134
+ includeEnrichment?: undefined;
135
+ includeReplyEligibility?: undefined;
136
+ approvedBody?: undefined;
137
+ approvedBodyHash?: undefined;
138
+ approvedThreadSnapshot?: undefined;
139
+ idempotencyKey?: undefined;
140
+ approval?: undefined;
141
+ message?: undefined;
142
+ approvedMessageHash?: undefined;
143
+ };
144
+ required: string[];
145
+ additionalProperties: boolean;
146
+ };
147
+ outputSchema: {
148
+ type: string;
149
+ additionalProperties: boolean;
150
+ };
151
+ annotations: {
152
+ readOnlyHint: boolean;
153
+ destructiveHint: boolean;
154
+ openWorldHint: boolean;
155
+ idempotentHint: boolean;
156
+ };
157
+ } | {
158
+ name: string;
159
+ description: string;
160
+ inputSchema: {
161
+ type: string;
162
+ properties: {
163
+ threadId: {
164
+ type: string;
165
+ };
166
+ versionId: {
167
+ type: string;
168
+ };
169
+ approvedBody: {
170
+ type: string;
171
+ };
172
+ approvedBodyHash: {
173
+ type: string;
174
+ };
175
+ approvedThreadSnapshot: {
176
+ type: string;
177
+ properties: {
178
+ latestMessageTimestamp: {
179
+ type: string[];
180
+ };
181
+ lastInboundMessageAt: {
182
+ type: string[];
183
+ };
184
+ updatedAt: {
185
+ type: string[];
186
+ };
187
+ reasonCodes: {
188
+ type: string;
189
+ items: {
190
+ type: string;
191
+ };
192
+ };
193
+ };
194
+ additionalProperties: boolean;
195
+ };
196
+ idempotencyKey: {
197
+ type: string;
198
+ };
199
+ approval: {
200
+ type: string;
201
+ enum: string[];
202
+ };
203
+ limit?: undefined;
204
+ cursor?: undefined;
205
+ filter?: undefined;
206
+ status?: undefined;
207
+ senderId?: undefined;
208
+ classification?: undefined;
209
+ search?: undefined;
210
+ includeEnrichment?: undefined;
211
+ includeReplyEligibility?: undefined;
212
+ body?: undefined;
213
+ message?: undefined;
214
+ approvedMessageHash?: undefined;
215
+ };
216
+ required: string[];
217
+ additionalProperties: boolean;
218
+ };
219
+ outputSchema: {
220
+ type: string;
221
+ additionalProperties: boolean;
222
+ };
223
+ annotations: {
224
+ readOnlyHint: boolean;
225
+ destructiveHint: boolean;
226
+ openWorldHint: boolean;
227
+ idempotentHint: boolean;
228
+ };
229
+ } | {
230
+ name: string;
231
+ description: string;
232
+ inputSchema: {
233
+ type: string;
234
+ properties: {
235
+ threadId: {
236
+ type: string;
237
+ };
238
+ message: {
239
+ type: string;
240
+ };
241
+ approvedMessageHash: {
242
+ type: string;
243
+ };
244
+ approvedThreadSnapshot: {
245
+ type: string;
246
+ properties: {
247
+ latestMessageTimestamp: {
248
+ type: string[];
249
+ };
250
+ lastInboundMessageAt: {
251
+ type: string[];
252
+ };
253
+ updatedAt: {
254
+ type: string[];
255
+ };
256
+ reasonCodes: {
257
+ type: string;
258
+ items: {
259
+ type: string;
260
+ };
261
+ };
262
+ };
263
+ additionalProperties: boolean;
264
+ };
265
+ idempotencyKey: {
266
+ type: string;
267
+ };
268
+ approval: {
269
+ type: string;
270
+ enum: string[];
271
+ };
272
+ limit?: undefined;
273
+ cursor?: undefined;
274
+ filter?: undefined;
275
+ status?: undefined;
276
+ senderId?: undefined;
277
+ classification?: undefined;
278
+ search?: undefined;
279
+ includeEnrichment?: undefined;
280
+ includeReplyEligibility?: undefined;
281
+ versionId?: undefined;
282
+ body?: undefined;
283
+ approvedBody?: undefined;
284
+ approvedBodyHash?: undefined;
285
+ };
286
+ required: string[];
287
+ additionalProperties: boolean;
288
+ };
289
+ outputSchema: {
290
+ type: string;
291
+ additionalProperties: boolean;
292
+ };
293
+ annotations: {
294
+ readOnlyHint: boolean;
295
+ destructiveHint: boolean;
296
+ openWorldHint: boolean;
297
+ idempotentHint: boolean;
298
+ };
299
+ })[];
300
+ export declare function searchInboxThreads(input: Record<string, unknown>): Promise<ToolResult<{
301
+ routeCalled: string;
302
+ }>>;
303
+ export declare function getInboxThread(input: Record<string, unknown>): Promise<ToolResult<any>>;
304
+ export declare function checkInboxReplyEligibility(input: Record<string, unknown>): Promise<ToolResult<any>>;
305
+ export declare function updateInboxDraft(input: Record<string, unknown>): Promise<ToolResult<any>>;
306
+ export declare function sendInboxDraft(input: Record<string, unknown>): Promise<ToolResult<any>>;
307
+ export declare function sendInboxManualReply(input: Record<string, unknown>): Promise<ToolResult<any>>;
308
+ export {};