@ratio-mcp/dev-server 1.5.1 → 1.6.0
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/dist/index.js +0 -0
- package/dist/schemas/app-distribution.json +36 -0
- package/dist/schemas/customers.json +26 -0
- package/dist/schemas/discounts.json +81 -0
- package/dist/schemas/draft_orders.json +112 -0
- package/dist/schemas/loyalty.json +147 -0
- package/dist/schemas/oauth.json +71 -0
- package/dist/schemas/orders.json +601 -106
- package/dist/schemas/product_reviews.json +45 -0
- package/dist/schemas/products.json +405 -122
- package/dist/schemas/tags.json +98 -0
- package/dist/schemas/variants.json +112 -0
- package/dist/schemas/webhooks.json +148 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +39 -5
- package/dist/server.js.map +1 -1
- package/dist/services/app-state-sync.d.ts +34 -0
- package/dist/services/app-state-sync.d.ts.map +1 -0
- package/dist/services/app-state-sync.js +85 -0
- package/dist/services/app-state-sync.js.map +1 -0
- package/dist/services/elicitation.d.ts +25 -0
- package/dist/services/elicitation.d.ts.map +1 -0
- package/dist/services/elicitation.js +101 -0
- package/dist/services/elicitation.js.map +1 -0
- package/dist/services/flow-profiles.d.ts +46 -0
- package/dist/services/flow-profiles.d.ts.map +1 -0
- package/dist/services/flow-profiles.js +100 -0
- package/dist/services/flow-profiles.js.map +1 -0
- package/dist/services/questionnaire.d.ts +89 -0
- package/dist/services/questionnaire.d.ts.map +1 -0
- package/dist/services/questionnaire.js +167 -0
- package/dist/services/questionnaire.js.map +1 -0
- package/dist/services/session-state.d.ts +17 -0
- package/dist/services/session-state.d.ts.map +1 -1
- package/dist/services/session-state.js +26 -1
- package/dist/services/session-state.js.map +1 -1
- package/dist/services/tool-guard.d.ts +15 -18
- package/dist/services/tool-guard.d.ts.map +1 -1
- package/dist/services/tool-guard.js +150 -97
- package/dist/services/tool-guard.js.map +1 -1
- package/dist/tools/app-management.d.ts.map +1 -1
- package/dist/tools/app-management.js +181 -33
- package/dist/tools/app-management.js.map +1 -1
- package/dist/tools/gather-requirements.d.ts.map +1 -1
- package/dist/tools/gather-requirements.js +5 -3
- package/dist/tools/gather-requirements.js.map +1 -1
- package/dist/tools/get-status.d.ts.map +1 -1
- package/dist/tools/get-status.js +45 -34
- package/dist/tools/get-status.js.map +1 -1
- package/dist/tools/index.js +1 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/lifecycle.d.ts.map +1 -1
- package/dist/tools/lifecycle.js +6 -3
- package/dist/tools/lifecycle.js.map +1 -1
- package/dist/tools/reference-data.d.ts +16 -0
- package/dist/tools/reference-data.d.ts.map +1 -1
- package/dist/tools/reference-data.js +12 -8
- package/dist/tools/reference-data.js.map +1 -1
- package/dist/tools/requirements.d.ts.map +1 -1
- package/dist/tools/requirements.js +17 -9
- package/dist/tools/requirements.js.map +1 -1
- package/dist/tools/submission.d.ts.map +1 -1
- package/dist/tools/submission.js +50 -13
- package/dist/tools/submission.js.map +1 -1
- package/dist/tools/webhooks.d.ts.map +1 -1
- package/dist/tools/webhooks.js +3 -1
- package/dist/tools/webhooks.js.map +1 -1
- package/dist/utils/logger.d.ts +3 -2
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +19 -10
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/schema-resources.d.ts +8 -0
- package/dist/utils/schema-resources.d.ts.map +1 -0
- package/dist/utils/schema-resources.js +25 -0
- package/dist/utils/schema-resources.js.map +1 -0
- package/package.json +12 -13
|
@@ -1,46 +1,76 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { APP_KINDS } from '@ratio-mcp/shared';
|
|
2
3
|
import { developerApiRequest } from '../api/developer.js';
|
|
3
4
|
import { resolveCategoryIdsToUUIDs } from './reference-data.js';
|
|
4
|
-
import { getSession } from '../services/session-state.js';
|
|
5
|
+
import { getSession, getPendingAppDraft, setPendingAppDraft, clearPendingAppDraft, } from '../services/session-state.js';
|
|
6
|
+
import { isElicitationSupported } from '../services/elicitation.js';
|
|
7
|
+
import { collectViaElicitation, applyRelayedAnswers, buildFallbackQuestions, outstanding, } from '../services/questionnaire.js';
|
|
8
|
+
import { getFlowProfile, describePipeline, isKindFullySupported } from '../services/flow-profiles.js';
|
|
9
|
+
import { saveRequirements, getRequirements } from '../store/requirements-store.js';
|
|
5
10
|
import { logger } from '../utils/logger.js';
|
|
11
|
+
function awaitingDeveloperInput(draft, note) {
|
|
12
|
+
return {
|
|
13
|
+
status: 'awaiting_developer_input',
|
|
14
|
+
stage: 'collecting_configuration',
|
|
15
|
+
app_created: false,
|
|
16
|
+
message: (note ? `${note} ` : '') +
|
|
17
|
+
'The app was NOT created. Ask the developer the questions below VERBATIM and WAIT for their reply — ' +
|
|
18
|
+
'never answer on their behalf. "assistant_inferred" values are your own earlier guesses; the developer ' +
|
|
19
|
+
'must explicitly confirm or change them. Then call create_app again with the same name/description ' +
|
|
20
|
+
'plus the developer\'s answers in app_type / app_kind / merchant_ids / category_ids.',
|
|
21
|
+
questions: buildFallbackQuestions(draft),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
6
24
|
export const appManagementTools = [
|
|
7
25
|
{
|
|
8
26
|
name: 'create_app',
|
|
9
27
|
description: 'Create a new application in the Ratio Developer Dashboard. Returns app_id, client_id, and client_secret. ' +
|
|
28
|
+
'The SERVER owns the configuration wizard: distribution type (public/private), app kind, merchant whitelist ' +
|
|
29
|
+
'(private only) and categories are collected FROM THE DEVELOPER — via an interactive form when the client ' +
|
|
30
|
+
'supports elicitation, otherwise create_app returns status "awaiting_developer_input" with questions you must ' +
|
|
31
|
+
'relay to the developer verbatim, then call create_app again with their answers. ' +
|
|
32
|
+
'Values you pass for app_type / app_kind / merchant_ids / category_ids are treated ONLY as suggested defaults ' +
|
|
33
|
+
'the developer will confirm or change — NEVER as their decision. ' +
|
|
10
34
|
'PREREQUISITES before calling this tool:\n' +
|
|
11
|
-
'1. Call get_categories
|
|
35
|
+
'1. Call get_categories so the category question can be discussed\n' +
|
|
12
36
|
'2. Ask the developer: "Do you have a callback URL for OAuth, or should we set one up for you?"\n' +
|
|
13
37
|
' - If NO: Call setup_hookdeck first to provision a Hookdeck URL, then use it as redirect_uri\n' +
|
|
14
|
-
' - If YES: Use the developer\'s URL as redirect_uri, skip setup_hookdeck
|
|
15
|
-
'Only call create_app after both are answered.',
|
|
38
|
+
' - If YES: Use the developer\'s URL as redirect_uri, skip setup_hookdeck',
|
|
16
39
|
inputSchema: z.object({
|
|
17
40
|
name: z.string().min(1).max(100).describe('Application name (required)'),
|
|
18
|
-
description: z.string().
|
|
19
|
-
category_ids: z.array(z.string()).min(1).describe('Category slugs CONFIRMED by the developer from get_categories. MUST show categories to developer and get their explicit choice first.'),
|
|
20
|
-
categories_confirmed: z.boolean().describe('Set to true ONLY after the developer has explicitly confirmed their category selection. You MUST show categories to the developer first.'),
|
|
41
|
+
description: z.string().min(10).max(5000).describe('Application description. REQUIRED by the backend — must be 10-5000 characters.'),
|
|
21
42
|
redirect_uri: z.string().optional().describe('OAuth callback URL. ONLY pass if the developer explicitly provided their own URL. If they said they don\'t have one, call setup_hookdeck instead — it auto-fills this.'),
|
|
22
43
|
callback_confirmed: z.boolean().describe('Set to true ONLY after the developer has explicitly answered whether they have a callback URL or want one set up. You MUST ask the developer first.'),
|
|
23
44
|
contact_email: z.string().optional().describe('Contact email'),
|
|
24
45
|
tags: z.array(z.string()).optional().describe('Application tags'),
|
|
25
46
|
icon: z.string().optional().describe('Icon URL'),
|
|
47
|
+
app_type: z
|
|
48
|
+
.enum(['public', 'private'])
|
|
49
|
+
.optional()
|
|
50
|
+
.describe('"public" = marketplace, any merchant, admin review. "private" = whitelisted merchants only, auto-published. ' +
|
|
51
|
+
'On the first call this is only a suggested default — the developer confirms it (form or chat). ' +
|
|
52
|
+
'After create_app returns awaiting_developer_input, pass the developer\'s actual answer here.'),
|
|
53
|
+
merchant_ids: z
|
|
54
|
+
.array(z.string())
|
|
55
|
+
.optional()
|
|
56
|
+
.describe('Merchant IDs to whitelist (private apps, at least one). Suggested default on the first call; the developer\'s relayed answer afterwards.'),
|
|
57
|
+
app_kind: z
|
|
58
|
+
.enum(APP_KINDS)
|
|
59
|
+
.optional()
|
|
60
|
+
.describe('How the app integrates: "embedded" (iframe frontend), "no_ui" (backend-only), "extension" / "web_pixel" / "flow" (creatable, uploads via portal). ' +
|
|
61
|
+
'On the first call this is only a suggested default — the developer confirms it (form or chat). ' +
|
|
62
|
+
'After create_app returns awaiting_developer_input, pass the developer\'s actual answer here.'),
|
|
63
|
+
category_ids: z
|
|
64
|
+
.array(z.string())
|
|
65
|
+
.optional()
|
|
66
|
+
.describe('Category slugs from get_categories. Suggested default on the first call; the developer\'s relayed answer afterwards.'),
|
|
26
67
|
}),
|
|
27
68
|
handler: async (input) => {
|
|
28
69
|
const inp = input;
|
|
29
70
|
logger.info(`Creating application: ${inp.name}`);
|
|
30
|
-
// ── Guard: categories must be confirmed by developer ────────────
|
|
31
|
-
if (!inp.categories_confirmed) {
|
|
32
|
-
logger.warn(`[create_app] BLOCKED: categories not confirmed by developer`);
|
|
33
|
-
return {
|
|
34
|
-
error: true,
|
|
35
|
-
message: 'Categories not confirmed by the developer. You MUST: ' +
|
|
36
|
-
'1. Call get_categories to fetch available categories. ' +
|
|
37
|
-
'2. Show the list to the developer. ' +
|
|
38
|
-
'3. Let the developer choose which categories fit their app. ' +
|
|
39
|
-
'4. Call create_app again with categories_confirmed: true and their chosen category_ids.',
|
|
40
|
-
required_action: 'Show categories to developer and get their explicit choice.',
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
71
|
// ── Guard: callback URL choice must be confirmed by developer ───
|
|
72
|
+
// (kept as a boolean: resolving "no URL" requires the setup_hookdeck
|
|
73
|
+
// tool, which cannot run from inside this call)
|
|
44
74
|
if (!inp.callback_confirmed) {
|
|
45
75
|
logger.warn(`[create_app] BLOCKED: callback URL choice not confirmed by developer`);
|
|
46
76
|
return {
|
|
@@ -52,12 +82,61 @@ export const appManagementTools = [
|
|
|
52
82
|
required_action: 'Ask developer about callback URL before proceeding.',
|
|
53
83
|
};
|
|
54
84
|
}
|
|
55
|
-
//
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
85
|
+
// ── Configuration questionnaire — the server owns these decisions ──
|
|
86
|
+
// LLM-passed values are only suggested defaults; the developer confirms
|
|
87
|
+
// via elicitation forms or the awaiting_developer_input chat protocol.
|
|
88
|
+
const passed = {};
|
|
89
|
+
if (inp.app_type !== undefined)
|
|
90
|
+
passed.app_type = inp.app_type;
|
|
91
|
+
if (inp.app_kind !== undefined)
|
|
92
|
+
passed.app_kind = inp.app_kind;
|
|
93
|
+
if (inp.merchant_ids !== undefined)
|
|
94
|
+
passed.merchant_ids = inp.merchant_ids;
|
|
95
|
+
const rawCategoryInput = inp.category_ids ?? inp.categories ?? inp.category_slugs ?? inp.categoryIds;
|
|
96
|
+
if (rawCategoryInput !== undefined)
|
|
97
|
+
passed.category_ids = rawCategoryInput;
|
|
98
|
+
let draft = getPendingAppDraft();
|
|
99
|
+
if (!draft && isElicitationSupported()) {
|
|
100
|
+
draft = { confirmedAnswers: {}, inferredAnswers: passed };
|
|
101
|
+
const result = await collectViaElicitation(draft);
|
|
102
|
+
if (result.status !== 'complete') {
|
|
103
|
+
// Keep whatever the human already confirmed; remaining answers
|
|
104
|
+
// arrive via the chat fallback protocol.
|
|
105
|
+
setPendingAppDraft(draft);
|
|
106
|
+
logger.warn(`[create_app] elicitation incomplete (${result.status}) — falling back to chat protocol`);
|
|
107
|
+
if (result.status === 'declined') {
|
|
108
|
+
return awaitingDeveloperInput(draft, 'The developer dismissed the configuration form.');
|
|
109
|
+
}
|
|
110
|
+
if (result.status === 'invalid') {
|
|
111
|
+
return awaitingDeveloperInput(draft, `The "${result.key}" answer was invalid: ${result.error}`);
|
|
112
|
+
}
|
|
113
|
+
return awaitingDeveloperInput(draft);
|
|
114
|
+
}
|
|
115
|
+
setPendingAppDraft(draft);
|
|
116
|
+
}
|
|
117
|
+
else if (!draft) {
|
|
118
|
+
draft = { confirmedAnswers: {}, inferredAnswers: passed };
|
|
119
|
+
setPendingAppDraft(draft);
|
|
120
|
+
logger.info(`[create_app] awaiting developer input (no elicitation support): ${outstanding(draft.confirmedAnswers).map((q) => q.key).join(', ')}`);
|
|
121
|
+
return awaitingDeveloperInput(draft);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
const { rejected } = await applyRelayedAnswers(draft, passed);
|
|
125
|
+
if (rejected.length > 0) {
|
|
126
|
+
return {
|
|
127
|
+
...awaitingDeveloperInput(draft, 'Some answers were invalid.'),
|
|
128
|
+
invalid_answers: rejected,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
if (outstanding(draft.confirmedAnswers).length > 0) {
|
|
132
|
+
return awaitingDeveloperInput(draft, 'Some questions are still unanswered.');
|
|
133
|
+
}
|
|
60
134
|
}
|
|
135
|
+
const answers = draft.confirmedAnswers;
|
|
136
|
+
const appType = answers.app_type;
|
|
137
|
+
const appKind = answers.app_kind;
|
|
138
|
+
const merchantIds = answers.merchant_ids ?? [];
|
|
139
|
+
const rawCategories = answers.category_ids;
|
|
61
140
|
// Resolve category slugs/names to UUIDs
|
|
62
141
|
const resolvedCategories = await resolveCategoryIdsToUUIDs(rawCategories);
|
|
63
142
|
if (resolvedCategories.length === 0) {
|
|
@@ -99,9 +178,42 @@ export const appManagementTools = [
|
|
|
99
178
|
appData['tags'] = inp.tags;
|
|
100
179
|
if (inp.icon)
|
|
101
180
|
appData['icon'] = inp.icon;
|
|
181
|
+
appData['appType'] = appType;
|
|
182
|
+
appData['appKind'] = appKind;
|
|
183
|
+
if (appType === 'private')
|
|
184
|
+
appData['merchantIds'] = merchantIds;
|
|
102
185
|
const response = await developerApiRequest('POST', '/applications', appData);
|
|
186
|
+
// The draft's job is done — the app exists; its config lives in the
|
|
187
|
+
// requirements store from here on.
|
|
188
|
+
clearPendingAppDraft();
|
|
103
189
|
const app = response.data;
|
|
104
190
|
const callbackSource = session.context.hookdeckUrl ? 'Hookdeck' : (session.context.useOwnCallback ? 'developer-provided' : 'localhost default');
|
|
191
|
+
// Persist type/kind so the flow profile survives MCP restarts
|
|
192
|
+
// (define_app_requirements merges into this entry later).
|
|
193
|
+
const existing = getRequirements(app.id);
|
|
194
|
+
saveRequirements(app.id, {
|
|
195
|
+
app_id: app.id,
|
|
196
|
+
app_name: app.name,
|
|
197
|
+
client_id: app.clientId,
|
|
198
|
+
app_type: appType,
|
|
199
|
+
app_kind: appKind,
|
|
200
|
+
scopes: existing?.scopes ?? [],
|
|
201
|
+
data_needs: existing?.data_needs ?? [],
|
|
202
|
+
features: existing?.features ?? [],
|
|
203
|
+
project_path: existing?.project_path,
|
|
204
|
+
created_at: existing?.created_at ?? new Date().toISOString(),
|
|
205
|
+
updated_at: new Date().toISOString(),
|
|
206
|
+
});
|
|
207
|
+
const profile = getFlowProfile(appType, appKind);
|
|
208
|
+
const kindSupported = isKindFullySupported(appKind);
|
|
209
|
+
const nextSteps = [
|
|
210
|
+
'Save client_id and client_secret securely',
|
|
211
|
+
'Call gather_requirements to analyze what the developer wants to build',
|
|
212
|
+
'Call define_app_requirements with scopes',
|
|
213
|
+
...(kindSupported
|
|
214
|
+
? describePipeline(profile).map((s) => s.replace(/^\d+\. /, ''))
|
|
215
|
+
: [`Upload builds for "${appKind}" apps via the developer portal (the MCP does not scaffold their manifest/bundle toolchain yet)`]),
|
|
216
|
+
].map((step, i) => `${i + 1}. ${step}`);
|
|
105
217
|
return {
|
|
106
218
|
success: true,
|
|
107
219
|
message: 'Application created successfully',
|
|
@@ -113,20 +225,20 @@ export const appManagementTools = [
|
|
|
113
225
|
client_secret: app.clientSecret,
|
|
114
226
|
status: app.status,
|
|
115
227
|
redirect_uri: redirectUri,
|
|
228
|
+
app_type: appType,
|
|
229
|
+
app_kind: appKind,
|
|
230
|
+
...(appType === 'private' ? { whitelisted_merchant_ids: merchantIds } : {}),
|
|
116
231
|
},
|
|
117
232
|
callback_info: {
|
|
118
233
|
url: redirectUri,
|
|
119
234
|
source: callbackSource,
|
|
120
235
|
hookdeck_active: !!session.context.hookdeckUrl,
|
|
121
236
|
},
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
'5. Build, zip, upload, and submit for review',
|
|
128
|
-
'6. After admin approval: OAuth → scaffold_backend → generate_api_routes',
|
|
129
|
-
],
|
|
237
|
+
flow_summary: profile.summary,
|
|
238
|
+
...(kindSupported ? {} : {
|
|
239
|
+
kind_note: `"${appKind}" apps can be managed here (scopes, webhooks, status) but their build upload requires a manifest/bundle zip — use the developer portal for uploads until the MCP supports it.`,
|
|
240
|
+
}),
|
|
241
|
+
next_steps: nextSteps,
|
|
130
242
|
};
|
|
131
243
|
},
|
|
132
244
|
},
|
|
@@ -209,5 +321,41 @@ export const appManagementTools = [
|
|
|
209
321
|
};
|
|
210
322
|
},
|
|
211
323
|
},
|
|
324
|
+
{
|
|
325
|
+
name: 'manage_private_merchants',
|
|
326
|
+
description: 'List, add, or remove whitelisted merchants for a PRIVATE app. ' +
|
|
327
|
+
'Only meaningful for apps created with app_type: "private" — these are installable only by their whitelisted merchants. ' +
|
|
328
|
+
'action: "list" (show current whitelist), "add" (whitelist merchant_ids, optional notes), "remove" (un-whitelist a single merchant_id).',
|
|
329
|
+
inputSchema: z.object({
|
|
330
|
+
app_id: z.string().min(1).describe('Application ID (must be a private app)'),
|
|
331
|
+
action: z.enum(['list', 'add', 'remove']).describe('list | add | remove'),
|
|
332
|
+
merchant_ids: z.array(z.string()).optional().describe('Merchant IDs to whitelist. REQUIRED when action is "add".'),
|
|
333
|
+
merchant_id: z.string().optional().describe('Single merchant ID to remove. REQUIRED when action is "remove".'),
|
|
334
|
+
notes: z.string().max(500).optional().describe('Optional note explaining why these merchants are whitelisted (action: "add").'),
|
|
335
|
+
}),
|
|
336
|
+
handler: async (input) => {
|
|
337
|
+
const { app_id, action, merchant_ids, merchant_id, notes } = input;
|
|
338
|
+
if (action === 'list') {
|
|
339
|
+
const response = await developerApiRequest('GET', `/applications/${app_id}/private-merchants`);
|
|
340
|
+
return { success: true, action, app_id, merchants: response.data ?? response };
|
|
341
|
+
}
|
|
342
|
+
if (action === 'add') {
|
|
343
|
+
if (!merchant_ids || merchant_ids.length === 0) {
|
|
344
|
+
return { error: true, message: 'merchant_ids is required (non-empty) for action "add".' };
|
|
345
|
+
}
|
|
346
|
+
const body = { merchantIds: merchant_ids };
|
|
347
|
+
if (notes)
|
|
348
|
+
body['notes'] = notes;
|
|
349
|
+
const response = await developerApiRequest('POST', `/applications/${app_id}/private-merchants`, body);
|
|
350
|
+
return { success: true, action, app_id, added: merchant_ids, result: response.data ?? response };
|
|
351
|
+
}
|
|
352
|
+
// action === 'remove'
|
|
353
|
+
if (!merchant_id) {
|
|
354
|
+
return { error: true, message: 'merchant_id is required for action "remove".' };
|
|
355
|
+
}
|
|
356
|
+
await developerApiRequest('DELETE', `/applications/${app_id}/private-merchants/${merchant_id}`);
|
|
357
|
+
return { success: true, action, app_id, removed: merchant_id };
|
|
358
|
+
},
|
|
359
|
+
},
|
|
212
360
|
];
|
|
213
361
|
//# sourceMappingURL=app-management.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-management.js","sourceRoot":"","sources":["../../src/tools/app-management.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app-management.js","sourceRoot":"","sources":["../../src/tools/app-management.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gather-requirements.d.ts","sourceRoot":"","sources":["../../src/tools/gather-requirements.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gather-requirements.d.ts","sourceRoot":"","sources":["../../src/tools/gather-requirements.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA0OjD,eAAO,MAAM,uBAAuB,EAAE,cAAc,EAsFnD,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { RESOURCE_METADATA, SCOPES_BY_RESOURCE } from '@ratio-mcp/shared';
|
|
3
|
+
import { getCodegenReadyResources } from '../utils/schema-resources.js';
|
|
3
4
|
import { logger } from '../utils/logger.js';
|
|
4
5
|
/**
|
|
5
6
|
* Gather Requirements tool — takes the developer's natural language description
|
|
@@ -222,10 +223,11 @@ export const gatherRequirementsTools = [
|
|
|
222
223
|
const scoredResources = scoreResources(app_description);
|
|
223
224
|
const relevantResources = scoredResources.filter((r) => r.score >= 2);
|
|
224
225
|
const maybeResources = scoredResources.filter((r) => r.score > 0 && r.score < 2);
|
|
225
|
-
// Build scope recommendations per resource
|
|
226
|
+
// Build scope recommendations per resource.
|
|
227
|
+
// codegen_ready is DERIVED from schema presence (single source of truth), not a flag.
|
|
228
|
+
const codegenReady = getCodegenReadyResources();
|
|
226
229
|
const recommendations = relevantResources.map((sr) => {
|
|
227
230
|
const scopes = SCOPES_BY_RESOURCE[sr.resource] || [];
|
|
228
|
-
const meta = RESOURCE_METADATA[sr.resource];
|
|
229
231
|
// Pick read vs write scopes based on intent
|
|
230
232
|
const recommendedScopes = scopes
|
|
231
233
|
.filter((s) => {
|
|
@@ -245,7 +247,7 @@ export const gatherRequirementsTools = [
|
|
|
245
247
|
return {
|
|
246
248
|
resource: sr.resource,
|
|
247
249
|
relevance_score: sr.score,
|
|
248
|
-
codegen_ready:
|
|
250
|
+
codegen_ready: codegenReady.has(sr.resource),
|
|
249
251
|
matched_keywords: sr.matchedKeywords,
|
|
250
252
|
recommended_scopes: recommendedScopes,
|
|
251
253
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gather-requirements.js","sourceRoot":"","sources":["../../src/tools/gather-requirements.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"gather-requirements.js","sourceRoot":"","sources":["../../src/tools/gather-requirements.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-status.d.ts","sourceRoot":"","sources":["../../src/tools/get-status.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-status.d.ts","sourceRoot":"","sources":["../../src/tools/get-status.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA8CjD,eAAO,MAAM,WAAW,EAAE,cAAc,EAoGvC,CAAC"}
|
package/dist/tools/get-status.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { getSession, getAppState, getActiveAppId, getAllCompletedTools } from '../services/session-state.js';
|
|
3
3
|
import { checkToolPrerequisites } from '../services/tool-guard.js';
|
|
4
|
+
import { getAppFacts, effectiveStatus } from '../services/app-state-sync.js';
|
|
5
|
+
import { getFlowProfile, isKindFullySupported } from '../services/flow-profiles.js';
|
|
4
6
|
import { logger } from '../utils/logger.js';
|
|
5
7
|
/**
|
|
6
8
|
* All tools in the system, grouped by purpose.
|
|
@@ -25,43 +27,30 @@ const ALL_TOOLS = [
|
|
|
25
27
|
// Backend
|
|
26
28
|
'scaffold_backend', 'generate_api_routes',
|
|
27
29
|
];
|
|
30
|
+
/** Setup steps common to every profile (before the pipeline begins) */
|
|
31
|
+
const SETUP_STEPS = ['developer_login', 'create_app', 'gather_requirements', 'define_app_requirements'];
|
|
28
32
|
/**
|
|
29
|
-
* Compute suggested next tool
|
|
30
|
-
*
|
|
33
|
+
* Compute suggested next tool: setup steps first, then the app's profile pipeline.
|
|
34
|
+
* Skipped steps (not applicable for the profile) are passed over silently.
|
|
31
35
|
*/
|
|
32
|
-
function computeSuggestedNext(completed) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
'
|
|
40
|
-
'build_frontend',
|
|
41
|
-
'validate_build',
|
|
42
|
-
'create_submission_zip',
|
|
43
|
-
'upload_build',
|
|
44
|
-
'submit_for_review',
|
|
45
|
-
'get_app_status',
|
|
46
|
-
'publish_app',
|
|
47
|
-
'scaffold_backend',
|
|
48
|
-
'generate_api_routes',
|
|
49
|
-
];
|
|
50
|
-
for (const tool of HAPPY_PATH) {
|
|
51
|
-
if (!completed.has(tool)) {
|
|
52
|
-
const guard = checkToolPrerequisites(tool);
|
|
53
|
-
if (guard.allowed)
|
|
54
|
-
return tool;
|
|
55
|
-
}
|
|
36
|
+
async function computeSuggestedNext(completed, pipelineSteps) {
|
|
37
|
+
for (const tool of [...SETUP_STEPS, ...pipelineSteps]) {
|
|
38
|
+
if (completed.has(tool))
|
|
39
|
+
continue;
|
|
40
|
+
const guard = await checkToolPrerequisites(tool);
|
|
41
|
+
if (guard.allowed)
|
|
42
|
+
return tool;
|
|
43
|
+
// skipped steps don't count as pending work — keep scanning
|
|
56
44
|
}
|
|
57
45
|
return undefined;
|
|
58
46
|
}
|
|
59
47
|
export const statusTools = [
|
|
60
48
|
{
|
|
61
49
|
name: 'get_status',
|
|
62
|
-
description: 'Returns the current session status: authenticated developer, active app
|
|
63
|
-
'
|
|
64
|
-
'
|
|
50
|
+
description: 'Returns the current session status: authenticated developer, active app (with its LIVE platform status, ' +
|
|
51
|
+
'app_type and app_kind), the flow pipeline for this app, completed tools, available tools, ' +
|
|
52
|
+
'blocked tools (with reasons), skipped tools (not applicable for this app kind/type), and a suggested next step. ' +
|
|
53
|
+
'Call this tool to orient yourself before taking any action, or when resuming a conversation. ' +
|
|
65
54
|
'This is a read-only tool with no prerequisites — it can be called at any time.',
|
|
66
55
|
inputSchema: z.object({
|
|
67
56
|
app_id: z.string().optional().describe('Optional app ID to check status for. If omitted, uses the currently active app.'),
|
|
@@ -71,26 +60,35 @@ export const statusTools = [
|
|
|
71
60
|
const session = getSession();
|
|
72
61
|
const targetAppId = app_id || getActiveAppId();
|
|
73
62
|
logger.info(`[get_status] Checking status for app_id=${targetAppId || 'none'}`);
|
|
63
|
+
// Hydrate live app facts from the platform (survives MCP restarts,
|
|
64
|
+
// catches private auto-publish and admin approvals done outside this session)
|
|
65
|
+
const facts = targetAppId ? await getAppFacts(targetAppId) : undefined;
|
|
66
|
+
const profile = facts ? getFlowProfile(facts.appType, facts.appKind) : undefined;
|
|
74
67
|
// Build completed set (global + app-specific)
|
|
75
68
|
const completedGlobal = new Set(session.completedTools);
|
|
76
69
|
const appState = targetAppId ? getAppState(targetAppId) : undefined;
|
|
77
70
|
const completedAll = new Set(getAllCompletedTools());
|
|
78
|
-
// Compute available
|
|
71
|
+
// Compute available / blocked / skipped tools
|
|
79
72
|
const available = [];
|
|
80
73
|
const blocked = {};
|
|
74
|
+
const skippedTools = {};
|
|
81
75
|
for (const tool of ALL_TOOLS) {
|
|
82
76
|
if (completedAll.has(tool))
|
|
83
77
|
continue; // Already done
|
|
84
|
-
const guard = checkToolPrerequisites(tool);
|
|
78
|
+
const guard = await checkToolPrerequisites(tool);
|
|
85
79
|
if (guard.allowed) {
|
|
86
80
|
available.push(tool);
|
|
87
81
|
}
|
|
82
|
+
else if (guard.skipped) {
|
|
83
|
+
skippedTools[tool] = guard.message || 'Not applicable for this app';
|
|
84
|
+
}
|
|
88
85
|
else {
|
|
89
86
|
blocked[tool] = guard.hint || guard.message || 'Prerequisites not met';
|
|
90
87
|
}
|
|
91
88
|
}
|
|
92
|
-
const suggestedNext = computeSuggestedNext(completedAll);
|
|
89
|
+
const suggestedNext = await computeSuggestedNext(completedAll, profile ? [...profile.steps] : []);
|
|
93
90
|
const confirmedScopes = appState?.context.confirmedScopes || session.context.confirmedScopes;
|
|
91
|
+
const liveStatus = facts ? effectiveStatus(facts) : undefined;
|
|
94
92
|
return {
|
|
95
93
|
authenticated: completedGlobal.has('developer_login') || completedGlobal.has('developer_verify_otp'),
|
|
96
94
|
developer_id: session.context.developerId || null,
|
|
@@ -98,17 +96,30 @@ export const statusTools = [
|
|
|
98
96
|
app_id: targetAppId,
|
|
99
97
|
name: appState?.context.appName || session.context.appName || null,
|
|
100
98
|
client_id: appState?.context.clientId || session.context.clientId || null,
|
|
99
|
+
app_type: facts?.appType || appState?.context.appType || null,
|
|
100
|
+
app_kind: facts?.appKind || appState?.context.appKind || null,
|
|
101
|
+
platform_status: liveStatus || null,
|
|
102
|
+
status_source: facts?.source || null,
|
|
101
103
|
scopes_confirmed: appState?.context.scopesConfirmed || false,
|
|
102
104
|
confirmed_scopes: appState?.context.confirmedScopes || [],
|
|
103
105
|
webhooks_configured: appState?.context.webhooksConfigured || false,
|
|
104
|
-
app_approved: appState?.context.appApproved || false,
|
|
105
|
-
app_published: appState?.context.appPublished || false,
|
|
106
|
+
app_approved: liveStatus === 'approved' || liveStatus === 'published' || appState?.context.appApproved || false,
|
|
107
|
+
app_published: liveStatus === 'published' || appState?.context.appPublished || false,
|
|
106
108
|
project_path: appState?.context.projectPath || session.context.projectPath || null,
|
|
107
109
|
completed_tools: appState ? [...appState.completedTools] : [],
|
|
108
110
|
} : null,
|
|
111
|
+
flow: profile ? {
|
|
112
|
+
summary: profile.summary,
|
|
113
|
+
pipeline: profile.steps.map((step) => ({
|
|
114
|
+
step,
|
|
115
|
+
done: completedAll.has(step),
|
|
116
|
+
})),
|
|
117
|
+
kind_fully_supported: isKindFullySupported(facts?.appKind),
|
|
118
|
+
} : null,
|
|
109
119
|
completed: [...completedAll],
|
|
110
120
|
available_now: available,
|
|
111
121
|
blocked,
|
|
122
|
+
skipped: Object.keys(skippedTools).length > 0 ? skippedTools : undefined,
|
|
112
123
|
suggested_next: suggestedNext || null,
|
|
113
124
|
// Hint for webhook setup if scopes confirmed but webhooks not configured
|
|
114
125
|
webhook_hint: (confirmedScopes && confirmedScopes.length > 0 && !appState?.context.webhooksConfigured)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-status.js","sourceRoot":"","sources":["../../src/tools/get-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAC7G,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C;;;GAGG;AACH,MAAM,SAAS,GAAG;IAChB,OAAO;IACP,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB;IAC7D,YAAY;IACZ,gBAAgB,EAAE,oBAAoB;IACtC,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,qBAAqB,EAAE,yBAAyB;IAChD,WAAW;IACX,iBAAiB;IACjB,oBAAoB;IACpB,mBAAmB,EAAE,gBAAgB,EAAE,gBAAgB;IACvD,uBAAuB,EAAE,cAAc,EAAE,mBAAmB;IAC5D,mBAAmB;IACnB,gBAAgB,EAAE,aAAa;IAC/B,UAAU;IACV,kBAAkB,EAAE,qBAAqB;CAC1C,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"get-status.js","sourceRoot":"","sources":["../../src/tools/get-status.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.js
CHANGED
|
@@ -21,7 +21,7 @@ export const allDevTools = [
|
|
|
21
21
|
...developerAuthTools, // 3 tools
|
|
22
22
|
...referenceDataTools, // 1 tool (get_categories — call before create_app)
|
|
23
23
|
...hookdeckTools, // 1 tool (setup_hookdeck — optional, before create_app)
|
|
24
|
-
...appManagementTools, //
|
|
24
|
+
...appManagementTools, // 6 tools (incl. manage_private_merchants)
|
|
25
25
|
...gatherRequirementsTools, // 1 tool (gather_requirements — NL → scope recommendations)
|
|
26
26
|
...requirementsTools, // 2 tools (define_app_requirements, validate_scopes)
|
|
27
27
|
...scaffoldTools, // 2 tools
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAYA,yBAAyB;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAqB;IAC3C,GAAG,kBAAkB,EAAK,UAAU;IACpC,GAAG,kBAAkB,EAAK,oDAAoD;IAC9E,GAAG,aAAa,EAAU,yDAAyD;IACnF,GAAG,kBAAkB,EAAK,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAYA,yBAAyB;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAqB;IAC3C,GAAG,kBAAkB,EAAK,UAAU;IACpC,GAAG,kBAAkB,EAAK,oDAAoD;IAC9E,GAAG,aAAa,EAAU,yDAAyD;IACnF,GAAG,kBAAkB,EAAK,2CAA2C;IACrE,GAAG,uBAAuB,EAAE,6DAA6D;IACzF,GAAG,iBAAiB,EAAM,qDAAqD;IAC/E,GAAG,aAAa,EAAU,UAAU;IACpC,GAAG,SAAS,EAAc,mJAAmJ;IAC7K,GAAG,YAAY,EAAW,SAAS;IACnC,GAAG,UAAU,EAAa,UAAU;IACpC,GAAG,eAAe,EAAQ,UAAU;IACpC,GAAG,YAAY,EAAW,+FAA+F;IACzH,GAAG,cAAc,EAAS,SAAS;IACnC,GAAG,WAAW,EAAY,4DAA4D;CACvF,CAAC;AACF,kBAAkB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/tools/lifecycle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/tools/lifecycle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA+FjD,eAAO,MAAM,cAAc,EAAE,cAAc,EA4B1C,CAAC"}
|