@ratio-mcp/dev-server 1.3.0 → 1.4.1
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/services/session-state.d.ts +14 -0
- package/dist/services/session-state.d.ts.map +1 -1
- package/dist/services/session-state.js +21 -1
- package/dist/services/session-state.js.map +1 -1
- package/dist/services/tool-guard.d.ts.map +1 -1
- package/dist/services/tool-guard.js +14 -17
- package/dist/services/tool-guard.js.map +1 -1
- package/dist/templates/backend/.env.example +3 -0
- package/dist/templates/backend/package.json +2 -1
- package/dist/templates/backend/src/app.module.ts +2 -0
- package/dist/templates/backend/src/oauth/oauth-callback.controller.ts +62 -0
- package/dist/templates/backend/src/oauth/oauth-callback.module.ts +10 -0
- package/dist/templates/backend/src/oauth/oauth-callback.service.ts +158 -0
- package/dist/templates/frontend/README.md +16 -0
- package/dist/templates/frontend/eslint.config.js +29 -0
- package/dist/templates/frontend/index.html +4 -4
- package/dist/templates/frontend/jsconfig.json +22 -0
- package/dist/templates/frontend/package.json +14 -11
- package/dist/templates/frontend/public/favicon.svg +1 -0
- package/dist/templates/frontend/public/icons.svg +24 -0
- package/dist/templates/frontend/src/App.css +184 -0
- package/dist/templates/frontend/src/App.jsx +121 -0
- package/dist/templates/frontend/src/assets/hero.png +0 -0
- package/dist/templates/frontend/src/assets/react.svg +1 -0
- package/dist/templates/frontend/src/assets/vite.svg +1 -0
- package/dist/templates/frontend/src/index.css +94 -31
- package/dist/templates/frontend/src/main.jsx +10 -0
- package/dist/templates/frontend/vite.config.js +19 -0
- package/dist/tools/app-management.d.ts.map +1 -1
- package/dist/tools/app-management.js +73 -13
- package/dist/tools/app-management.js.map +1 -1
- package/dist/tools/auth.d.ts.map +1 -1
- package/dist/tools/auth.js +15 -3
- package/dist/tools/auth.js.map +1 -1
- package/dist/tools/codegen.d.ts.map +1 -1
- package/dist/tools/codegen.js +111 -13
- package/dist/tools/codegen.js.map +1 -1
- package/dist/tools/gather-requirements.d.ts.map +1 -1
- package/dist/tools/gather-requirements.js +19 -19
- 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 +0 -5
- package/dist/tools/get-status.js.map +1 -1
- package/dist/tools/hookdeck.d.ts +3 -0
- package/dist/tools/hookdeck.d.ts.map +1 -0
- package/dist/tools/hookdeck.js +101 -0
- package/dist/tools/hookdeck.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +5 -3
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/lifecycle.d.ts.map +1 -1
- package/dist/tools/lifecycle.js +21 -10
- package/dist/tools/lifecycle.js.map +1 -1
- package/dist/tools/reference-data.d.ts.map +1 -1
- package/dist/tools/reference-data.js +6 -4
- package/dist/tools/reference-data.js.map +1 -1
- package/dist/tools/requirements.d.ts.map +1 -1
- package/dist/tools/requirements.js +43 -1
- package/dist/tools/requirements.js.map +1 -1
- package/dist/tools/scaffold.d.ts.map +1 -1
- package/dist/tools/scaffold.js +23 -14
- package/dist/tools/scaffold.js.map +1 -1
- package/dist/tools/submission.d.ts.map +1 -1
- package/dist/tools/submission.js +33 -18
- package/dist/tools/submission.js.map +1 -1
- package/dist/tools/webhooks.d.ts.map +1 -1
- package/dist/tools/webhooks.js +30 -6
- package/dist/tools/webhooks.js.map +1 -1
- package/package.json +15 -16
- package/dist/templates/frontend/src/App.tsx +0 -32
- package/dist/templates/frontend/src/components/Layout.tsx +0 -53
- package/dist/templates/frontend/src/context/AuthContext.tsx +0 -59
- package/dist/templates/frontend/src/main.tsx +0 -16
- package/dist/templates/frontend/src/pages/Callback.tsx +0 -53
- package/dist/templates/frontend/src/pages/Dashboard.tsx +0 -24
- package/dist/templates/frontend/src/pages/Login.tsx +0 -42
- package/dist/templates/frontend/src/services/api.ts +0 -48
- package/dist/templates/frontend/tsconfig.json +0 -21
- package/dist/templates/frontend/vite.config.ts +0 -15
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { developerApiRequest } from '../api/developer.js';
|
|
3
3
|
import { resolveCategoryIdsToUUIDs } from './reference-data.js';
|
|
4
|
+
import { getSession } from '../services/session-state.js';
|
|
4
5
|
import { logger } from '../utils/logger.js';
|
|
5
6
|
export const appManagementTools = [
|
|
6
7
|
{
|
|
@@ -8,13 +9,17 @@ export const appManagementTools = [
|
|
|
8
9
|
description: 'Create a new application in the Ratio Developer Dashboard. Returns app_id, client_id, and client_secret. ' +
|
|
9
10
|
'PREREQUISITES before calling this tool:\n' +
|
|
10
11
|
'1. Call get_categories and let the developer pick categories\n' +
|
|
11
|
-
'2. Ask the developer: "Do you have a callback URL for OAuth, or should
|
|
12
|
+
'2. Ask the developer: "Do you have a callback URL for OAuth, or should we set one up for you?"\n' +
|
|
13
|
+
' - 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\n' +
|
|
12
15
|
'Only call create_app after both are answered.',
|
|
13
16
|
inputSchema: z.object({
|
|
14
17
|
name: z.string().min(1).max(100).describe('Application name (required)'),
|
|
15
18
|
description: z.string().max(2000).optional().describe('Application description'),
|
|
16
|
-
category_ids: z.array(z.string()).min(1).describe('Category slugs
|
|
17
|
-
|
|
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.'),
|
|
21
|
+
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
|
+
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.'),
|
|
18
23
|
contact_email: z.string().optional().describe('Contact email'),
|
|
19
24
|
tags: z.array(z.string()).optional().describe('Application tags'),
|
|
20
25
|
icon: z.string().optional().describe('Icon URL'),
|
|
@@ -22,25 +27,72 @@ export const appManagementTools = [
|
|
|
22
27
|
handler: async (input) => {
|
|
23
28
|
const inp = input;
|
|
24
29
|
logger.info(`Creating application: ${inp.name}`);
|
|
25
|
-
//
|
|
26
|
-
|
|
27
|
-
|
|
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
|
+
// ── Guard: callback URL choice must be confirmed by developer ───
|
|
44
|
+
if (!inp.callback_confirmed) {
|
|
45
|
+
logger.warn(`[create_app] BLOCKED: callback URL choice not confirmed by developer`);
|
|
46
|
+
return {
|
|
47
|
+
error: true,
|
|
48
|
+
message: 'Callback URL not confirmed by the developer. You MUST ask: ' +
|
|
49
|
+
'"Do you have a callback URL for OAuth, or should we set one up for you?" ' +
|
|
50
|
+
'- If they DON\'T have one: call setup_hookdeck first, then retry with callback_confirmed: true. ' +
|
|
51
|
+
'- If they DO have one: pass their URL as redirect_uri with callback_confirmed: true.',
|
|
52
|
+
required_action: 'Ask developer about callback URL before proceeding.',
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
// Accept category_ids OR common variants
|
|
28
56
|
const rawCategories = (inp.category_ids ?? inp.categories ?? inp.category_slugs ?? inp.categoryIds);
|
|
29
57
|
if (!rawCategories || !Array.isArray(rawCategories) || rawCategories.length === 0) {
|
|
30
58
|
throw new Error('category_ids is required and must be a non-empty array of category slugs. ' +
|
|
31
59
|
'Call get_categories first to see valid slugs, then provide them as category_ids: ["slug1", "slug2"].');
|
|
32
60
|
}
|
|
33
|
-
// Resolve category slugs/names to UUIDs
|
|
61
|
+
// Resolve category slugs/names to UUIDs
|
|
34
62
|
const resolvedCategories = await resolveCategoryIdsToUUIDs(rawCategories);
|
|
35
63
|
if (resolvedCategories.length === 0) {
|
|
36
64
|
throw new Error(`None of the provided categories could be resolved: [${rawCategories.join(', ')}]. ` +
|
|
37
65
|
'Call get_categories first to see valid category slugs.');
|
|
38
66
|
}
|
|
67
|
+
// Resolve redirect_uri: developer's URL > Hookdeck URL > block
|
|
68
|
+
const session = getSession();
|
|
69
|
+
let redirectUri = inp.redirect_uri;
|
|
70
|
+
if (!redirectUri && session.context.callbackUrl) {
|
|
71
|
+
redirectUri = session.context.callbackUrl;
|
|
72
|
+
logger.info(`[create_app] Auto-filled redirect_uri from Hookdeck: ${redirectUri}`);
|
|
73
|
+
}
|
|
74
|
+
if (!redirectUri || redirectUri === 'http://localhost:3000/callback') {
|
|
75
|
+
if (!session.context.hookdeckUrl && !session.context.useOwnCallback) {
|
|
76
|
+
logger.warn(`[create_app] BLOCKED: No callback URL configured despite callback_confirmed=true`);
|
|
77
|
+
return {
|
|
78
|
+
error: true,
|
|
79
|
+
message: 'No callback URL available. If the developer doesn\'t have one, call setup_hookdeck first to provision a Hookdeck URL.',
|
|
80
|
+
hint: 'Call setup_hookdeck, then retry create_app.',
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Track callback source
|
|
85
|
+
if (inp.redirect_uri && !session.context.hookdeckUrl) {
|
|
86
|
+
session.context.useOwnCallback = true;
|
|
87
|
+
session.context.callbackUrl = inp.redirect_uri;
|
|
88
|
+
}
|
|
89
|
+
session.context.callbackConfirmed = true;
|
|
90
|
+
session.context.categoriesConfirmed = true;
|
|
91
|
+
session.context.confirmedCategories = rawCategories;
|
|
39
92
|
const appData = { name: inp.name, categoryIds: resolvedCategories };
|
|
40
93
|
if (inp.description)
|
|
41
94
|
appData['description'] = inp.description;
|
|
42
|
-
|
|
43
|
-
appData['redirectUri'] = inp.redirect_uri;
|
|
95
|
+
appData['redirectUri'] = redirectUri;
|
|
44
96
|
if (inp.contact_email)
|
|
45
97
|
appData['contactEmail'] = inp.contact_email;
|
|
46
98
|
if (inp.tags)
|
|
@@ -49,6 +101,7 @@ export const appManagementTools = [
|
|
|
49
101
|
appData['icon'] = inp.icon;
|
|
50
102
|
const response = await developerApiRequest('POST', '/applications', appData);
|
|
51
103
|
const app = response.data;
|
|
104
|
+
const callbackSource = session.context.hookdeckUrl ? 'Hookdeck' : (session.context.useOwnCallback ? 'developer-provided' : 'localhost default');
|
|
52
105
|
return {
|
|
53
106
|
success: true,
|
|
54
107
|
message: 'Application created successfully',
|
|
@@ -59,13 +112,20 @@ export const appManagementTools = [
|
|
|
59
112
|
client_id: app.clientId,
|
|
60
113
|
client_secret: app.clientSecret,
|
|
61
114
|
status: app.status,
|
|
115
|
+
redirect_uri: redirectUri,
|
|
116
|
+
},
|
|
117
|
+
callback_info: {
|
|
118
|
+
url: redirectUri,
|
|
119
|
+
source: callbackSource,
|
|
120
|
+
hookdeck_active: !!session.context.hookdeckUrl,
|
|
62
121
|
},
|
|
63
122
|
next_steps: [
|
|
64
123
|
'1. Save client_id and client_secret securely',
|
|
65
|
-
'2. Call
|
|
66
|
-
'3. Call
|
|
67
|
-
'4.
|
|
68
|
-
'5.
|
|
124
|
+
'2. Call gather_requirements to analyze what the developer wants to build',
|
|
125
|
+
'3. Call define_app_requirements with scopes',
|
|
126
|
+
'4. Call scaffold_frontend to create the frontend project',
|
|
127
|
+
'5. Build, zip, upload, and submit for review',
|
|
128
|
+
'6. After admin approval: OAuth → scaffold_backend → generate_api_routes',
|
|
69
129
|
],
|
|
70
130
|
};
|
|
71
131
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-management.js","sourceRoot":"","sources":["../../src/tools/app-management.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C,MAAM,CAAC,MAAM,kBAAkB,GAAqB;IAClD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,2GAA2G;YAC3G,2CAA2C;YAC3C,gEAAgE;YAChE,
|
|
1
|
+
{"version":3,"file":"app-management.js","sourceRoot":"","sources":["../../src/tools/app-management.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/tools/auth.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/tools/auth.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAyJjD,eAAO,MAAM,SAAS,EAAE,cAAc,EA6ErC,CAAC"}
|
package/dist/tools/auth.js
CHANGED
|
@@ -10,7 +10,10 @@ const DEBUG_LOG = path.join(os.homedir(), 'Desktop', 'ratio-debug.log');
|
|
|
10
10
|
function debugLog(msg) {
|
|
11
11
|
fs.appendFileSync(DEBUG_LOG, `[${new Date().toISOString()}] ${msg}\n`);
|
|
12
12
|
}
|
|
13
|
-
|
|
13
|
+
// OAuth is now handled by the merchant install callback flow:
|
|
14
|
+
// Merchant clicks Install → code sent to callback URL → backend exchanges for token
|
|
15
|
+
// These tools are kept for reference but removed from the active tool list.
|
|
16
|
+
const _deprecatedOAuthTools = [
|
|
14
17
|
{
|
|
15
18
|
name: 'request_auth_code',
|
|
16
19
|
description: 'Request an authorization code for app installation (OAuth Step 1). App must be PUBLISHED first. ' +
|
|
@@ -135,6 +138,9 @@ export const authTools = [
|
|
|
135
138
|
};
|
|
136
139
|
},
|
|
137
140
|
},
|
|
141
|
+
];
|
|
142
|
+
// Active tools: token management (refresh + check status)
|
|
143
|
+
export const authTools = [
|
|
138
144
|
{
|
|
139
145
|
name: 'refresh_access_token',
|
|
140
146
|
description: 'Refresh an expired access token using the refresh token.',
|
|
@@ -175,7 +181,9 @@ export const authTools = [
|
|
|
175
181
|
},
|
|
176
182
|
{
|
|
177
183
|
name: 'check_token_status',
|
|
178
|
-
description: 'Check the current access token status for a given client_id.'
|
|
184
|
+
description: 'Check the current access token status for a given client_id. ' +
|
|
185
|
+
'NOTE: Tokens are received AUTOMATICALLY when merchants install your app via the /callback endpoint. ' +
|
|
186
|
+
'Do NOT attempt to manually initiate OAuth — just scaffold the backend and wait for merchant installs.',
|
|
179
187
|
inputSchema: z.object({
|
|
180
188
|
client_id: z.string().min(1).describe('Client ID to check token for'),
|
|
181
189
|
}),
|
|
@@ -183,7 +191,11 @@ export const authTools = [
|
|
|
183
191
|
const { client_id } = input;
|
|
184
192
|
const token = getToken(client_id);
|
|
185
193
|
if (!token) {
|
|
186
|
-
return {
|
|
194
|
+
return {
|
|
195
|
+
status: 'no_token_yet',
|
|
196
|
+
message: `No merchant has installed this app yet. Tokens arrive automatically when a merchant installs the app — the /callback endpoint handles the OAuth exchange. Do NOT manually initiate OAuth. Proceed to scaffold_backend if not done already.`,
|
|
197
|
+
next_step: 'scaffold_backend',
|
|
198
|
+
};
|
|
187
199
|
}
|
|
188
200
|
const expired = isTokenExpired(token);
|
|
189
201
|
return {
|
package/dist/tools/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/tools/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvG,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC5F,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;AACxE,SAAS,QAAQ,CAAC,GAAW;IAC3B,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;AACzE,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/tools/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/tools/codegen.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/tools/codegen.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAgbjD,eAAO,MAAM,YAAY,EAAE,cAAc,EA4PxC,CAAC"}
|
package/dist/tools/codegen.js
CHANGED
|
@@ -3,6 +3,7 @@ import { existsSync } from 'fs';
|
|
|
3
3
|
import { mkdir, writeFile, readFile } from 'fs/promises';
|
|
4
4
|
import { join } from 'path';
|
|
5
5
|
import { homedir } from 'os';
|
|
6
|
+
import { execSync, spawn } from 'child_process';
|
|
6
7
|
import { getRequirements } from '../store/requirements-store.js';
|
|
7
8
|
import { getSession } from '../services/session-state.js';
|
|
8
9
|
import { logger } from '../utils/logger.js';
|
|
@@ -53,18 +54,16 @@ function generateServiceCode(resource, endpoints) {
|
|
|
53
54
|
lines.push(`@Injectable()`);
|
|
54
55
|
lines.push(`export class ${className} {`);
|
|
55
56
|
lines.push(` private readonly apiBaseUrl: string;`);
|
|
56
|
-
lines.push(` private readonly accessToken: string;`);
|
|
57
|
-
lines.push(` private readonly merchantId: string;`);
|
|
58
57
|
lines.push('');
|
|
59
58
|
lines.push(` constructor(private configService: ConfigService) {`);
|
|
60
59
|
lines.push(` this.apiBaseUrl = this.configService.get<string>('RATIO_API_BASE_URL');`);
|
|
61
|
-
lines.push(` this.accessToken = this.configService.get<string>('RATIO_ACCESS_TOKEN', '');`);
|
|
62
|
-
lines.push(` this.merchantId = this.configService.get<string>('RATIO_MERCHANT_ID', '');`);
|
|
63
60
|
lines.push(` }`);
|
|
64
61
|
lines.push('');
|
|
65
62
|
lines.push(` private getHeaders(extra?: Record<string, string>) {`);
|
|
63
|
+
lines.push(` // Read token from process.env on each request — updated live by /callback handler`);
|
|
64
|
+
lines.push(` const accessToken = process.env.RATIO_ACCESS_TOKEN || '';`);
|
|
66
65
|
lines.push(` return {`);
|
|
67
|
-
lines.push(` Authorization: \`Bearer \${
|
|
66
|
+
lines.push(` Authorization: \`Bearer \${accessToken}\`,`);
|
|
68
67
|
lines.push(` 'Content-Type': 'application/json',`);
|
|
69
68
|
lines.push(` ...extra,`);
|
|
70
69
|
lines.push(` };`);
|
|
@@ -361,7 +360,7 @@ export class WebhookController {
|
|
|
361
360
|
* Webhook receiver endpoint.
|
|
362
361
|
* Verifies HMAC-SHA256 signature and routes to event handlers.
|
|
363
362
|
*/
|
|
364
|
-
@Post(
|
|
363
|
+
@Post()
|
|
365
364
|
@HttpCode(HttpStatus.OK)
|
|
366
365
|
async handleWebhook(
|
|
367
366
|
@Headers('x-ratio-hmac-sha256') signature: string,
|
|
@@ -518,10 +517,91 @@ export const codegenTools = [
|
|
|
518
517
|
}
|
|
519
518
|
}
|
|
520
519
|
logger.info(`[generate_api_routes] ══ DONE ══ Generated ${generatedModules.length} modules: [${generatedModules.join(', ')}], errors: ${allErrors.length > 0 ? JSON.stringify(allErrors) : 'none'}`);
|
|
520
|
+
// ── Auto-start backend ───────────────────────────────────────────
|
|
521
|
+
const backendDir = join(projectPath, 'backend');
|
|
522
|
+
let serverStarted = false;
|
|
523
|
+
let startError;
|
|
524
|
+
const port = process.env.PORT || '3000';
|
|
525
|
+
const useHookdeck = !!session.context.hookdeckUrl && !session.context.useOwnCallback;
|
|
526
|
+
const hookdeckSourceName = session.context.hookdeckSourceName;
|
|
527
|
+
try {
|
|
528
|
+
// Kill any existing process on the target port
|
|
529
|
+
try {
|
|
530
|
+
const existingPid = execSync(`lsof -ti :${port}`, { stdio: 'pipe', timeout: 5000 }).toString().trim();
|
|
531
|
+
if (existingPid) {
|
|
532
|
+
const pids = existingPid.split('\n').filter(Boolean);
|
|
533
|
+
logger.info(`[generate_api_routes] Killing existing processes on port ${port}: [${pids.join(', ')}]`);
|
|
534
|
+
for (const pid of pids) {
|
|
535
|
+
try {
|
|
536
|
+
execSync(`kill -9 ${pid}`, { stdio: 'pipe', timeout: 3000 });
|
|
537
|
+
}
|
|
538
|
+
catch { }
|
|
539
|
+
}
|
|
540
|
+
// Also kill any orphaned hookdeck/concurrently processes from previous runs
|
|
541
|
+
try {
|
|
542
|
+
execSync(`pkill -f "hookdeck listen ${port}" 2>/dev/null || true`, { stdio: 'pipe', timeout: 3000 });
|
|
543
|
+
}
|
|
544
|
+
catch { }
|
|
545
|
+
try {
|
|
546
|
+
execSync(`pkill -f "concurrently.*nest.*hookdeck" 2>/dev/null || true`, { stdio: 'pipe', timeout: 3000 });
|
|
547
|
+
}
|
|
548
|
+
catch { }
|
|
549
|
+
// Brief pause to let port release
|
|
550
|
+
execSync('sleep 1', { stdio: 'pipe' });
|
|
551
|
+
logger.info(`[generate_api_routes] Port ${port} cleared`);
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
catch {
|
|
555
|
+
// No process on port — good
|
|
556
|
+
logger.info(`[generate_api_routes] Port ${port} is available`);
|
|
557
|
+
}
|
|
558
|
+
// Run npm install
|
|
559
|
+
logger.info(`[generate_api_routes] Running npm install in ${backendDir}...`);
|
|
560
|
+
execSync('npm install', { cwd: backendDir, stdio: 'pipe', timeout: 120000 });
|
|
561
|
+
logger.info(`[generate_api_routes] npm install completed`);
|
|
562
|
+
// Start NestJS server in background
|
|
563
|
+
logger.info(`[generate_api_routes] Starting NestJS server on port ${port}...`);
|
|
564
|
+
const serverChild = spawn('npm', ['run', 'dev'], {
|
|
565
|
+
cwd: backendDir,
|
|
566
|
+
detached: true,
|
|
567
|
+
stdio: 'ignore',
|
|
568
|
+
env: { ...process.env, PORT: port },
|
|
569
|
+
});
|
|
570
|
+
serverChild.unref();
|
|
571
|
+
serverStarted = true;
|
|
572
|
+
logger.info(`[generate_api_routes] NestJS server started (pid=${serverChild.pid})`);
|
|
573
|
+
// Authenticate Hookdeck CLI (non-interactive, one-shot — this works without TTY)
|
|
574
|
+
if (useHookdeck && hookdeckSourceName) {
|
|
575
|
+
try {
|
|
576
|
+
const configPath = join(homedir(), '.ratio-v2', 'config.json');
|
|
577
|
+
let apiKey = '';
|
|
578
|
+
if (existsSync(configPath)) {
|
|
579
|
+
try {
|
|
580
|
+
apiKey = JSON.parse(readFileSync(configPath, 'utf-8'))?.hookdeck?.apiKey || '';
|
|
581
|
+
}
|
|
582
|
+
catch { }
|
|
583
|
+
}
|
|
584
|
+
if (apiKey) {
|
|
585
|
+
execSync(`hookdeck ci --api-key ${apiKey}`, { stdio: 'pipe', timeout: 10000 });
|
|
586
|
+
logger.info(`[generate_api_routes] Hookdeck CLI authenticated for source: ${hookdeckSourceName}`);
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
catch (hookdeckErr) {
|
|
590
|
+
logger.warn(`[generate_api_routes] Hookdeck CLI auth failed: ${hookdeckErr.message}`);
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
catch (err) {
|
|
595
|
+
startError = err.message;
|
|
596
|
+
logger.error(`[generate_api_routes] Failed to auto-start backend: ${startError}`);
|
|
597
|
+
}
|
|
598
|
+
const callbackUrl = session.context.callbackUrl || session.context.hookdeckUrl || 'http://localhost:3000/callback';
|
|
599
|
+
const hookdeckCommand = (useHookdeck && hookdeckSourceName) ? `hookdeck listen ${port} ${hookdeckSourceName}` : null;
|
|
521
600
|
return {
|
|
522
601
|
success: true,
|
|
523
602
|
message: `Generated ${generatedModules.length} resource module(s)` +
|
|
524
|
-
(webhookGenerated ? ' (including webhook handler with HMAC-SHA256 verification)' : '')
|
|
603
|
+
(webhookGenerated ? ' (including webhook handler with HMAC-SHA256 verification)' : '') +
|
|
604
|
+
(serverStarted ? '. Backend server started.' : ''),
|
|
525
605
|
generated_modules: generatedModules.map((mod) => ({
|
|
526
606
|
resource: mod,
|
|
527
607
|
files: mod === 'webhook'
|
|
@@ -529,14 +609,32 @@ export const codegenTools = [
|
|
|
529
609
|
: [`${mod}/${mod}.service.ts`, `${mod}/${mod}.controller.ts`, `${mod}/${mod}.module.ts`],
|
|
530
610
|
})),
|
|
531
611
|
webhook_handler_generated: webhookGenerated,
|
|
612
|
+
backend_status: {
|
|
613
|
+
server_running: serverStarted,
|
|
614
|
+
callback_url: callbackUrl,
|
|
615
|
+
start_error: startError,
|
|
616
|
+
},
|
|
532
617
|
errors: allErrors.length > 0 ? allErrors : undefined,
|
|
533
618
|
warning: 'DO NOT modify the generated code. Use validate_api_code (docs-server) to verify correctness before making any changes.',
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
619
|
+
hookdeck_tunnel_command: hookdeckCommand,
|
|
620
|
+
_instruction: hookdeckCommand
|
|
621
|
+
? 'IMPORTANT: Tell the developer to run the following command in their terminal to activate the OAuth callback tunnel. ' +
|
|
622
|
+
'Without this, merchants cannot install the app. The command is: ' + hookdeckCommand + ' . ' +
|
|
623
|
+
'Once they run it, merchants can install the app from the store and the access token will appear in the backend console.'
|
|
624
|
+
: undefined,
|
|
625
|
+
next_steps: serverStarted
|
|
626
|
+
? [
|
|
627
|
+
`Backend is running on localhost:${port}`,
|
|
628
|
+
hookdeckCommand
|
|
629
|
+
? `IMPORTANT: Run this command in your terminal to activate the OAuth tunnel: ${hookdeckCommand}`
|
|
630
|
+
: `Using callback URL: ${callbackUrl}`,
|
|
631
|
+
'When merchants install your app, the access token and merchant ID will be displayed in your backend console and stored in merchant-tokens.json',
|
|
632
|
+
webhookGenerated ? 'Webhook handler available at POST /webhooks' : '',
|
|
633
|
+
].filter(Boolean)
|
|
634
|
+
: [
|
|
635
|
+
`Auto-start failed: ${startError}`,
|
|
636
|
+
`Manually run: cd ${backendDir} && npm install && npm run dev`,
|
|
637
|
+
],
|
|
540
638
|
};
|
|
541
639
|
},
|
|
542
640
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/tools/codegen.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/tools/codegen.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":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"gather-requirements.d.ts","sourceRoot":"","sources":["../../src/tools/gather-requirements.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA0OjD,eAAO,MAAM,uBAAuB,EAAE,cAAc,EAqFnD,CAAC"}
|
|
@@ -11,7 +11,7 @@ import { logger } from '../utils/logger.js';
|
|
|
11
11
|
*
|
|
12
12
|
* How it works:
|
|
13
13
|
* 1. Tokenizes the developer's description into keywords
|
|
14
|
-
* 2. Matches against resource metadata (descriptions, example_app_types
|
|
14
|
+
* 2. Matches against resource metadata (descriptions, example_app_types) and resource names
|
|
15
15
|
* 3. Scores each resource by relevance
|
|
16
16
|
* 4. Returns recommended scopes grouped by resource with reasoning
|
|
17
17
|
* 5. The LLM reviews and picks the final scopes to pass to define_app_requirements
|
|
@@ -147,20 +147,19 @@ function scoreResources(description) {
|
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
|
-
// 3. Match against
|
|
151
|
-
for (const [resource
|
|
152
|
-
|
|
153
|
-
if (!entry)
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
}
|
|
150
|
+
// 3. Match against resource name directly (covers all 78 resources, not just ones with metadata)
|
|
151
|
+
for (const [resource] of Object.entries(SCOPES_BY_RESOURCE)) {
|
|
152
|
+
let entry = resourceScores.get(resource);
|
|
153
|
+
if (!entry) {
|
|
154
|
+
entry = { score: 0, keywords: new Set(), writeHits: 0, readHits: 0 };
|
|
155
|
+
resourceScores.set(resource, entry);
|
|
156
|
+
}
|
|
157
|
+
// Match tokens against resource name parts (e.g. "gift_cards" matches "gift" and "cards")
|
|
158
|
+
const resourceParts = resource.split('_');
|
|
159
|
+
for (const term of tokens) {
|
|
160
|
+
if (resourceParts.includes(term) || resource.includes(term)) {
|
|
161
|
+
entry.score += 2;
|
|
162
|
+
entry.keywords.add(term);
|
|
164
163
|
}
|
|
165
164
|
}
|
|
166
165
|
}
|
|
@@ -241,7 +240,6 @@ export const gatherRequirementsTools = [
|
|
|
241
240
|
.map((s) => ({
|
|
242
241
|
code: s.code,
|
|
243
242
|
label: s.label,
|
|
244
|
-
description: s.description.split('.')[0] + '.', // First sentence only
|
|
245
243
|
why: `Matched keywords: ${sr.matchedKeywords.join(', ')}`,
|
|
246
244
|
}));
|
|
247
245
|
return {
|
|
@@ -267,10 +265,12 @@ export const gatherRequirementsTools = [
|
|
|
267
265
|
reason: `Low match (score ${r.score}) — keywords: ${r.matchedKeywords.join(', ')}`,
|
|
268
266
|
}))
|
|
269
267
|
: undefined,
|
|
270
|
-
_instruction: '
|
|
271
|
-
'
|
|
268
|
+
_instruction: 'BEFORE presenting scopes to the developer, you MUST call validate_scopes with your final list of scope codes. ' +
|
|
269
|
+
'This is mandatory — do NOT skip this step. Only show scopes that validate_scopes returns as "valid".\n\n' +
|
|
270
|
+
'After validation:\n' +
|
|
271
|
+
'1. Show ONLY the validated scopes grouped by resource\n' +
|
|
272
272
|
'2. Highlight which resources have codegen_ready=true (backend code will be auto-generated)\n' +
|
|
273
|
-
'3.
|
|
273
|
+
'3. Do NOT add, invent, or suggest any scope that was not in the validated list\n' +
|
|
274
274
|
'4. Ask the developer: "Does this look right? Want to add or remove anything?"\n' +
|
|
275
275
|
'5. Once approved, call define_app_requirements with the final scope codes and confirmed=false for preview\n' +
|
|
276
276
|
'6. After preview approval, call define_app_requirements again with confirmed=true',
|