@ratio-mcp/dev-server 1.5.0 → 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.
Files changed (99) hide show
  1. package/README.md +118 -0
  2. package/dist/schemas/app-distribution.json +36 -0
  3. package/dist/schemas/customers.json +26 -0
  4. package/dist/schemas/discounts.json +81 -0
  5. package/dist/schemas/draft_orders.json +112 -0
  6. package/dist/schemas/loyalty.json +147 -0
  7. package/dist/schemas/oauth.json +71 -0
  8. package/dist/schemas/orders.json +597 -102
  9. package/dist/schemas/product_reviews.json +45 -0
  10. package/dist/schemas/products.json +401 -118
  11. package/dist/schemas/tags.json +98 -0
  12. package/dist/schemas/variants.json +112 -0
  13. package/dist/schemas/webhooks.json +148 -0
  14. package/dist/server.d.ts.map +1 -1
  15. package/dist/server.js +39 -5
  16. package/dist/server.js.map +1 -1
  17. package/dist/services/app-state-sync.d.ts +34 -0
  18. package/dist/services/app-state-sync.d.ts.map +1 -0
  19. package/dist/services/app-state-sync.js +85 -0
  20. package/dist/services/app-state-sync.js.map +1 -0
  21. package/dist/services/elicitation.d.ts +25 -0
  22. package/dist/services/elicitation.d.ts.map +1 -0
  23. package/dist/services/elicitation.js +101 -0
  24. package/dist/services/elicitation.js.map +1 -0
  25. package/dist/services/flow-profiles.d.ts +46 -0
  26. package/dist/services/flow-profiles.d.ts.map +1 -0
  27. package/dist/services/flow-profiles.js +100 -0
  28. package/dist/services/flow-profiles.js.map +1 -0
  29. package/dist/services/questionnaire.d.ts +89 -0
  30. package/dist/services/questionnaire.d.ts.map +1 -0
  31. package/dist/services/questionnaire.js +167 -0
  32. package/dist/services/questionnaire.js.map +1 -0
  33. package/dist/services/session-state.d.ts +17 -0
  34. package/dist/services/session-state.d.ts.map +1 -1
  35. package/dist/services/session-state.js +26 -1
  36. package/dist/services/session-state.js.map +1 -1
  37. package/dist/services/tool-guard.d.ts +15 -18
  38. package/dist/services/tool-guard.d.ts.map +1 -1
  39. package/dist/services/tool-guard.js +150 -97
  40. package/dist/services/tool-guard.js.map +1 -1
  41. package/dist/tools/app-management.d.ts.map +1 -1
  42. package/dist/tools/app-management.js +181 -33
  43. package/dist/tools/app-management.js.map +1 -1
  44. package/dist/tools/codegen.d.ts.map +1 -1
  45. package/dist/tools/codegen.js +21 -0
  46. package/dist/tools/codegen.js.map +1 -1
  47. package/dist/tools/gather-requirements.d.ts.map +1 -1
  48. package/dist/tools/gather-requirements.js +5 -3
  49. package/dist/tools/gather-requirements.js.map +1 -1
  50. package/dist/tools/get-status.d.ts.map +1 -1
  51. package/dist/tools/get-status.js +45 -34
  52. package/dist/tools/get-status.js.map +1 -1
  53. package/dist/tools/index.js +1 -1
  54. package/dist/tools/index.js.map +1 -1
  55. package/dist/tools/lifecycle.d.ts.map +1 -1
  56. package/dist/tools/lifecycle.js +6 -3
  57. package/dist/tools/lifecycle.js.map +1 -1
  58. package/dist/tools/reference-data.d.ts +16 -0
  59. package/dist/tools/reference-data.d.ts.map +1 -1
  60. package/dist/tools/reference-data.js +12 -8
  61. package/dist/tools/reference-data.js.map +1 -1
  62. package/dist/tools/requirements.d.ts.map +1 -1
  63. package/dist/tools/requirements.js +17 -9
  64. package/dist/tools/requirements.js.map +1 -1
  65. package/dist/tools/submission.d.ts.map +1 -1
  66. package/dist/tools/submission.js +50 -13
  67. package/dist/tools/submission.js.map +1 -1
  68. package/dist/tools/webhooks.d.ts.map +1 -1
  69. package/dist/tools/webhooks.js +3 -1
  70. package/dist/tools/webhooks.js.map +1 -1
  71. package/dist/utils/logger.d.ts +3 -2
  72. package/dist/utils/logger.d.ts.map +1 -1
  73. package/dist/utils/logger.js +19 -10
  74. package/dist/utils/logger.js.map +1 -1
  75. package/dist/utils/schema-resources.d.ts +8 -0
  76. package/dist/utils/schema-resources.d.ts.map +1 -0
  77. package/dist/utils/schema-resources.js +25 -0
  78. package/dist/utils/schema-resources.js.map +1 -0
  79. package/package.json +3 -3
  80. package/dist/orchestrated-index.d.ts +0 -11
  81. package/dist/orchestrated-index.d.ts.map +0 -1
  82. package/dist/orchestrated-index.js +0 -33
  83. package/dist/orchestrated-index.js.map +0 -1
  84. package/dist/orchestrated-server.d.ts +0 -21
  85. package/dist/orchestrated-server.d.ts.map +0 -1
  86. package/dist/orchestrated-server.js +0 -101
  87. package/dist/orchestrated-server.js.map +0 -1
  88. package/dist/services/orchestrator.d.ts +0 -63
  89. package/dist/services/orchestrator.d.ts.map +0 -1
  90. package/dist/services/orchestrator.js +0 -845
  91. package/dist/services/orchestrator.js.map +0 -1
  92. package/dist/services/response-formatter.d.ts +0 -24
  93. package/dist/services/response-formatter.d.ts.map +0 -1
  94. package/dist/services/response-formatter.js +0 -311
  95. package/dist/services/response-formatter.js.map +0 -1
  96. package/dist/tools/agent-chat.d.ts +0 -9
  97. package/dist/tools/agent-chat.d.ts.map +0 -1
  98. package/dist/tools/agent-chat.js +0 -465
  99. package/dist/tools/agent-chat.js.map +0 -1
@@ -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 based on what's done and what's available.
30
- * Picks the tool that unblocks the most downstream work.
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
- // Priority order the main happy path
34
- const HAPPY_PATH = [
35
- 'developer_login',
36
- 'create_app',
37
- 'gather_requirements',
38
- 'define_app_requirements',
39
- 'scaffold_frontend',
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, completed tools, ' +
63
- 'available tools (unblocked), blocked tools (with reasons), and a suggested next step. ' +
64
- 'Call this tool to orient yourself before taking any action. ' +
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 and blocked tools
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":"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"}
1
+ {"version":3,"file":"get-status.js","sourceRoot":"","sources":["../../src/tools/get-status.ts"],"names":[],"mappings":"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"}
@@ -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, // 5 tools
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
@@ -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,UAAU;IACpC,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
+ {"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;AA4FjD,eAAO,MAAM,cAAc,EAAE,cAAc,EA4B1C,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"}
@@ -21,8 +21,11 @@ const LIFECYCLE_PHASES = [
21
21
  '2) Ask the developer: "Do you have a callback URL for OAuth, or should we set one up for you?" ' +
22
22
  ' - If NO: Call setup_hookdeck to provision a persistent public URL (tunnels to their localhost). ' +
23
23
  ' - If YES: Use their URL directly, skip setup_hookdeck. ' +
24
- '3) Call create_app with name, description, categories, and callback URL (auto-filled from Hookdeck if set up).',
25
- tools: ['get_categories', 'setup_hookdeck', 'create_app'],
24
+ '3) Call create_app with name, description, categories, and callback URL (auto-filled from Hookdeck if set up). ' +
25
+ '4) Choose a distribution type via app_type: "public" (default — listed in the marketplace, any merchant can install, requires admin review) ' +
26
+ 'or "private" (installable only by whitelisted merchant_ids, skips human review and auto-publishes). ' +
27
+ 'For private apps, pass merchant_ids (at least one) and manage the whitelist later with manage_private_merchants.',
28
+ tools: ['get_categories', 'setup_hookdeck', 'create_app', 'manage_private_merchants'],
26
29
  },
27
30
  {
28
31
  phase: 3,
@@ -102,7 +105,7 @@ export const lifecycleTools = [
102
105
  'Scope selection is critical — it drives backend code generation AND webhook suggestions',
103
106
  'Always call define_app_requirements with confirmed=false first to preview scopes',
104
107
  'Phase 4 (Webhooks) is optional — ask the developer if they need event notifications',
105
- 'Backend code generation only works for codegen_ready resources (currently: orders, products)',
108
+ 'Backend code generation works for any resource that has an endpoint schema (codegen_ready=true in gather_requirements / define_app_requirements) — check there rather than assuming',
106
109
  'generate_api_routes auto-starts the backend + Hookdeck tunnel — developer never runs npm run dev manually',
107
110
  'OAuth happens automatically when merchants install the app — the backend /callback handler exchanges the code for a token and displays it in the console',
108
111
  'No need to call request_auth_code or get_access_token manually — the callback flow handles it',
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/tools/lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/tools/lifecycle.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,20 @@
1
1
  import type { ToolDefinition } from './index.js';
2
+ /**
3
+ * Reference data tools — fetch platform metadata (categories, tags, etc.)
4
+ * that mirrors what the developer dashboard UI shows.
5
+ *
6
+ * These tools should be called BEFORE create_app / update_app so the developer
7
+ * can make informed selections, just like they would on the dashboard.
8
+ */
9
+ export interface CategoryItem {
10
+ id: string;
11
+ name: string;
12
+ slug: string;
13
+ description?: string;
14
+ icon?: string;
15
+ }
16
+ /** Fetch all platform categories (cached for the session). */
17
+ export declare function listCategories(): Promise<CategoryItem[]>;
2
18
  /**
3
19
  * Resolve an array of category identifiers (slugs or UUIDs) to UUIDs.
4
20
  * Fetches categories from the API if not cached.
@@ -1 +1 @@
1
- {"version":3,"file":"reference-data.d.ts","sourceRoot":"","sources":["../../src/tools/reference-data.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAwBjD;;;GAGG;AACH,wBAAsB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAuCxF;AAED,eAAO,MAAM,kBAAkB,EAAE,cAAc,EA2C9C,CAAC"}
1
+ {"version":3,"file":"reference-data.d.ts","sourceRoot":"","sources":["../../src/tools/reference-data.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;;GAMG;AAEH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAQD,8DAA8D;AAC9D,wBAAsB,cAAc,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAU9D;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA+BxF;AAED,eAAO,MAAM,kBAAkB,EAAE,cAAc,EA2C9C,CAAC"}
@@ -6,17 +6,21 @@ import { logger } from '../utils/logger.js';
6
6
  * Populated by get_categories, used by other tools to resolve slugs to UUIDs.
7
7
  */
8
8
  let categoriesCache = null;
9
- /**
10
- * Resolve an array of category identifiers (slugs or UUIDs) to UUIDs.
11
- * Fetches categories from the API if not cached.
12
- */
13
- export async function resolveCategoryIdsToUUIDs(categoryIds) {
14
- // Fetch categories if not cached
9
+ /** Fetch all platform categories (cached for the session). */
10
+ export async function listCategories() {
15
11
  if (!categoriesCache) {
16
12
  logger.info('Categories not cached — fetching from platform');
17
13
  const response = await developerApiRequest('GET', '/categories');
18
14
  categoriesCache = response.data;
19
15
  }
16
+ return categoriesCache;
17
+ }
18
+ /**
19
+ * Resolve an array of category identifiers (slugs or UUIDs) to UUIDs.
20
+ * Fetches categories from the API if not cached.
21
+ */
22
+ export async function resolveCategoryIdsToUUIDs(categoryIds) {
23
+ const categories = await listCategories();
20
24
  const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
21
25
  const resolved = [];
22
26
  const notFound = [];
@@ -27,7 +31,7 @@ export async function resolveCategoryIdsToUUIDs(categoryIds) {
27
31
  }
28
32
  else {
29
33
  // It's a slug — resolve to UUID
30
- const match = categoriesCache.find((cat) => cat.slug.toLowerCase() === id.toLowerCase() || cat.name.toLowerCase() === id.toLowerCase());
34
+ const match = categories.find((cat) => cat.slug.toLowerCase() === id.toLowerCase() || cat.name.toLowerCase() === id.toLowerCase());
31
35
  if (match) {
32
36
  resolved.push(match.id);
33
37
  logger.info(`Resolved category slug "${id}" → UUID "${match.id}"`);
@@ -38,7 +42,7 @@ export async function resolveCategoryIdsToUUIDs(categoryIds) {
38
42
  }
39
43
  }
40
44
  if (notFound.length > 0) {
41
- const validSlugs = categoriesCache.map((c) => c.slug).join(', ');
45
+ const validSlugs = categories.map((c) => c.slug).join(', ');
42
46
  logger.warn(`Categories not found: [${notFound.join(', ')}]. Valid slugs: ${validSlugs}`);
43
47
  }
44
48
  return resolved;
@@ -1 +1 @@
1
- {"version":3,"file":"reference-data.js","sourceRoot":"","sources":["../../src/tools/reference-data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reference-data.js","sourceRoot":"","sources":["../../src/tools/reference-data.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"requirements.d.ts","sourceRoot":"","sources":["../../src/tools/requirements.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAKjD,eAAO,MAAM,iBAAiB,EAAE,cAAc,EA2Q7C,CAAC"}
1
+ {"version":3,"file":"requirements.d.ts","sourceRoot":"","sources":["../../src/tools/requirements.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAKjD,eAAO,MAAM,iBAAiB,EAAE,cAAc,EAkR7C,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { z } from 'zod';
2
- import { ALL_SCOPE_CODES, getResourceForScope, RESOURCE_METADATA, SCOPES_BY_RESOURCE } from '@ratio-mcp/shared';
3
- import { saveRequirements } from '../store/requirements-store.js';
2
+ import { ALL_SCOPE_CODES, getResourceForScope, SCOPES_BY_RESOURCE } from '@ratio-mcp/shared';
3
+ import { saveRequirements, getRequirements } from '../store/requirements-store.js';
4
+ import { getCodegenReadyResources } from '../utils/schema-resources.js';
4
5
  import { getRecommendedWebhookEvents } from './webhooks.js';
5
6
  import { developerApiRequest } from '../api/developer.js';
6
7
  import { logger } from '../utils/logger.js';
@@ -67,9 +68,10 @@ export const requirementsTools = [
67
68
  dataNeedsSet.add(resource);
68
69
  }
69
70
  }
70
- // Build per-resource breakdown for the preview
71
+ // Build per-resource breakdown for the preview.
72
+ // codegen_ready is DERIVED from schema presence (single source of truth), not a flag.
73
+ const codegenReady = getCodegenReadyResources();
71
74
  const resourceBreakdown = [...dataNeedsSet].map((resource) => {
72
- const meta = RESOURCE_METADATA[resource];
73
75
  const resourceScopes = validScopes.filter((s) => getResourceForScope(s) === resource);
74
76
  // Get scope details for richer display
75
77
  const allResourceScopes = SCOPES_BY_RESOURCE[resource] || [];
@@ -83,9 +85,9 @@ export const requirementsTools = [
83
85
  });
84
86
  return {
85
87
  resource,
86
- codegen_ready: meta?.codegen_ready || false,
88
+ codegen_ready: codegenReady.has(resource),
87
89
  scopes: scopeDetails,
88
- note: meta?.codegen_ready
90
+ note: codegenReady.has(resource)
89
91
  ? 'Backend code will be auto-generated for this resource'
90
92
  : 'No API schema available yet — scopes will be registered but code generation will skip this resource',
91
93
  };
@@ -142,13 +144,19 @@ export const requirementsTools = [
142
144
  };
143
145
  }
144
146
  // ── If confirmed: save requirements locally + update backend ──
147
+ // Preserve fields set earlier by create_app (app_type/app_kind/client_id/project_path)
148
+ const existing = getRequirements(app_id);
145
149
  const requirements = {
146
150
  app_id,
147
- app_name,
151
+ app_name: app_name ?? existing?.app_name,
152
+ client_id: existing?.client_id,
153
+ project_path: existing?.project_path,
154
+ app_type: existing?.app_type,
155
+ app_kind: existing?.app_kind,
148
156
  scopes: validScopes,
149
157
  data_needs: [...dataNeedsSet],
150
158
  features,
151
- created_at: new Date().toISOString(),
159
+ created_at: existing?.created_at ?? new Date().toISOString(),
152
160
  updated_at: new Date().toISOString(),
153
161
  };
154
162
  saveRequirements(app_id, requirements);
@@ -182,7 +190,7 @@ export const requirementsTools = [
182
190
  app_id,
183
191
  scopes: validScopes,
184
192
  resources: [...dataNeedsSet],
185
- codegen_resources: [...dataNeedsSet].filter((r) => RESOURCE_METADATA[r]?.codegen_ready),
193
+ codegen_resources: [...dataNeedsSet].filter((r) => codegenReady.has(r)),
186
194
  features,
187
195
  },
188
196
  backend_sync: backendSyncResult,
@@ -1 +1 @@
1
- {"version":3,"file":"requirements.js","sourceRoot":"","sources":["../../src/tools/requirements.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"requirements.js","sourceRoot":"","sources":["../../src/tools/requirements.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"submission.d.ts","sourceRoot":"","sources":["../../src/tools/submission.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAcjD,eAAO,MAAM,eAAe,EAAE,cAAc,EAmO3C,CAAC"}
1
+ {"version":3,"file":"submission.d.ts","sourceRoot":"","sources":["../../src/tools/submission.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAcjD,eAAO,MAAM,eAAe,EAAE,cAAc,EA6Q3C,CAAC"}
@@ -2,6 +2,8 @@ import { z } from 'zod';
2
2
  import { existsSync, createReadStream, statSync } from 'fs';
3
3
  import { homedir } from 'os';
4
4
  import { developerApiRequest } from '../api/developer.js';
5
+ import { getAppFacts, invalidateAppFacts } from '../services/app-state-sync.js';
6
+ import { getFlowProfile } from '../services/flow-profiles.js';
5
7
  import { logger } from '../utils/logger.js';
6
8
  import { ToolExecutionError } from '../utils/errors.js';
7
9
  import { resolveCategoryIdsToUUIDs } from './reference-data.js';
@@ -19,25 +21,37 @@ const STATUS_EXPLANATIONS = {
19
21
  export const submissionTools = [
20
22
  {
21
23
  name: 'upload_build',
22
- description: 'Upload a ZIP file to the Ratio Developer Dashboard. Creates a new app version. ' +
23
- 'PREREQUISITE: Use create_submission_zip first.',
24
+ description: 'Create a new app version on the Ratio Developer Dashboard. ' +
25
+ 'For "embedded" apps this uploads the frontend ZIP (use create_submission_zip first). ' +
26
+ 'For "no_ui" apps call it WITHOUT zip_path — the version is created file-less (backend-only apps have no frontend). ' +
27
+ 'PRIVATE apps AUTO-PUBLISH on upload — no submit_for_review / publish_app needed afterwards.',
24
28
  inputSchema: z.object({
25
29
  app_id: z.string().min(1).describe('Application ID'),
26
- zip_path: z.string().min(1).describe('Absolute path to the zip file'),
30
+ zip_path: z.string().optional().describe('Absolute path to the zip file. REQUIRED for embedded apps; OMIT for no_ui apps (file-less version).'),
27
31
  version: z.string().optional().describe('Version string (e.g. "1.0.0")'),
28
32
  changelog: z.string().optional().describe('Changelog for this version'),
29
33
  }),
30
34
  handler: async (input) => {
31
35
  const { app_id, zip_path: rawPath, version, changelog } = input;
32
- const zipPath = rawPath.startsWith('~') ? rawPath.replace('~', homedir()) : rawPath;
33
- if (!existsSync(zipPath)) {
34
- throw new ToolExecutionError('upload_build', `Zip file not found: ${zipPath}`);
35
- }
36
- const zipSize = statSync(zipPath).size;
37
- logger.info(`Uploading build: ${zipPath} (${(zipSize / 1024 / 1024).toFixed(2)}MB)`);
38
- // Create FormData — note: we import from 'form-data' (node)
36
+ const facts = await getAppFacts(app_id);
37
+ const profile = getFlowProfile(facts.appType, facts.appKind);
39
38
  const formData = new FormData();
40
- formData.append('buildZip', createReadStream(zipPath));
39
+ if (profile.uploadNeedsZip) {
40
+ if (!rawPath) {
41
+ throw new ToolExecutionError('upload_build', `zip_path is required for ${facts.appKind ?? 'embedded'} apps. Call create_submission_zip first.`);
42
+ }
43
+ const zipPath = rawPath.startsWith('~') ? rawPath.replace('~', homedir()) : rawPath;
44
+ if (!existsSync(zipPath)) {
45
+ throw new ToolExecutionError('upload_build', `Zip file not found: ${zipPath}`);
46
+ }
47
+ const zipSize = statSync(zipPath).size;
48
+ logger.info(`Uploading build: ${zipPath} (${(zipSize / 1024 / 1024).toFixed(2)}MB)`);
49
+ formData.append('buildZip', createReadStream(zipPath));
50
+ }
51
+ else {
52
+ // no_ui: file-less upload — the backend creates the version without a build zip.
53
+ logger.info(`[upload_build] File-less version creation for ${facts.appKind} app ${app_id}`);
54
+ }
41
55
  if (version)
42
56
  formData.append('version', version);
43
57
  if (changelog)
@@ -49,11 +63,32 @@ export const submissionTools = [
49
63
  maxBodyLength: Infinity,
50
64
  },
51
65
  });
66
+ // Platform state changed — refetch on next guard check
67
+ invalidateAppFacts(app_id);
68
+ // Private apps auto-publish inside the upload transaction — detect it from
69
+ // the returned version status so the LLM doesn't try submit/publish.
70
+ const versionData = (response?.['data'] ?? response);
71
+ const versionStatus = versionData?.['status']?.toLowerCase();
72
+ const autoPublished = versionStatus === 'published';
52
73
  return {
53
74
  success: true,
54
- message: 'Build uploaded successfully',
75
+ message: autoPublished
76
+ ? 'Build uploaded — the app auto-published (private app). No review or publish step needed.'
77
+ : profile.uploadNeedsZip
78
+ ? 'Build uploaded successfully'
79
+ : 'Version created successfully (file-less — no_ui app)',
80
+ version_status: versionStatus,
81
+ auto_published: autoPublished,
55
82
  response,
56
- next_steps: ['1. Call submit_for_review to submit for admin review'],
83
+ next_steps: autoPublished
84
+ ? [
85
+ '1. The app is PUBLISHED — whitelisted merchants can install it now',
86
+ '2. Call scaffold_backend to generate the backend with the OAuth callback handler',
87
+ '3. Then generate_api_routes for scope-filtered API routes',
88
+ ]
89
+ : profile.appType === 'private'
90
+ ? ['1. Check get_app_status — private apps normally auto-publish on upload']
91
+ : ['1. Call submit_for_review to submit for admin review'],
57
92
  };
58
93
  },
59
94
  },
@@ -89,6 +124,7 @@ export const submissionTools = [
89
124
  if (tags)
90
125
  body['tags'] = tags;
91
126
  const response = await developerApiRequest('POST', `/applications/submit`, body);
127
+ invalidateAppFacts(app_id);
92
128
  return {
93
129
  success: true,
94
130
  message: 'Application submitted for review',
@@ -180,6 +216,7 @@ export const submissionTools = [
180
216
  logger.info(`[publish_app] Publishing app_id=${app_id}, version_id=${versionId}`);
181
217
  try {
182
218
  const response = await developerApiRequest('POST', `/developer/apps/${app_id}/versions/${versionId}/publish`);
219
+ invalidateAppFacts(app_id);
183
220
  // Build the published frontend URL (QA environment)
184
221
  const PROD_BASE = 'https://prodecosystem.gokwik.co';
185
222
  const frontendUrl = developerId && versionNumber
@@ -1 +1 @@
1
- {"version":3,"file":"submission.js","sourceRoot":"","sources":["../../src/tools/submission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"submission.js","sourceRoot":"","sources":["../../src/tools/submission.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/tools/webhooks.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA4GjD;;;GAGG;AACH,wBAAsB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3E,WAAW,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/H,KAAK,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClG,kBAAkB,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChH,CAAC,CAqED;AAID,eAAO,MAAM,YAAY,EAAE,cAAc,EA+SxC,CAAC"}
1
+ {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/tools/webhooks.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA8GjD;;;GAGG;AACH,wBAAsB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3E,WAAW,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/H,KAAK,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClG,kBAAkB,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChH,CAAC,CAqED;AAID,eAAO,MAAM,YAAY,EAAE,cAAc,EA+SxC,CAAC"}
@@ -10,9 +10,11 @@ import { getSession } from '../services/session-state.js';
10
10
  // This is intentionally loose — we match category names that contain the resource.
11
11
  //
12
12
  const SCOPE_RESOURCE_TO_CATEGORIES = {
13
+ // read_products also gates collections/* and reviews/* webhooks (see backend TOPIC_SCOPE_MAP)
13
14
  orders: ['orders'],
14
- products: ['products', 'app.ecosystem.products'],
15
+ products: ['products', 'app.ecosystem.products', 'collections', 'reviews'],
15
16
  customers: ['customers'],
17
+ loyalty: ['loyalty'],
16
18
  inventory: ['inventory', 'inventory_levels', 'inventory_items'],
17
19
  fulfillments: ['fulfillments'],
18
20
  collections: ['collections'],