@enfyra/mcp-server 0.3.18 → 0.3.20

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 (62) hide show
  1. package/dist/lib/code-history-tools.d.ts +1 -0
  2. package/dist/lib/code-history-tools.js +48 -0
  3. package/dist/lib/code-history-tools.js.map +1 -0
  4. package/dist/lib/code-version.d.ts +10 -0
  5. package/dist/lib/code-version.js +82 -0
  6. package/dist/lib/code-version.js.map +1 -0
  7. package/dist/lib/enfyra-mcp-server.js +2 -0
  8. package/dist/lib/enfyra-mcp-server.js.map +1 -1
  9. package/dist/lib/fetch.js +7 -1
  10. package/dist/lib/fetch.js.map +1 -1
  11. package/dist/lib/mcp-example-flows.js +13 -25
  12. package/dist/lib/mcp-example-flows.js.map +1 -1
  13. package/dist/lib/method-tools.js +32 -26
  14. package/dist/lib/method-tools.js.map +1 -1
  15. package/dist/lib/mutation-guards.d.ts +6 -0
  16. package/dist/lib/mutation-guards.js +40 -0
  17. package/dist/lib/mutation-guards.js.map +1 -1
  18. package/dist/lib/platform-data-operations.js +0 -1
  19. package/dist/lib/platform-data-operations.js.map +1 -1
  20. package/dist/lib/platform-extension-tools.js +3 -3
  21. package/dist/lib/platform-extension-tools.js.map +1 -1
  22. package/dist/lib/platform-flow-operations.d.ts +4 -387
  23. package/dist/lib/platform-flow-operations.js +14 -105
  24. package/dist/lib/platform-flow-operations.js.map +1 -1
  25. package/dist/lib/platform-flow-tools.js +12 -119
  26. package/dist/lib/platform-flow-tools.js.map +1 -1
  27. package/dist/lib/platform-operation-tools.d.ts +1 -1
  28. package/dist/lib/platform-operation-tools.js +1 -1
  29. package/dist/lib/platform-operation-tools.js.map +1 -1
  30. package/dist/lib/platform-operation-types.d.ts +0 -1
  31. package/dist/lib/platform-resource-operations.d.ts +1 -1
  32. package/dist/lib/platform-resource-operations.js +1 -1
  33. package/dist/lib/platform-resource-operations.js.map +1 -1
  34. package/dist/lib/platform-resource-tools.js +3 -3
  35. package/dist/lib/platform-resource-tools.js.map +1 -1
  36. package/dist/lib/record-tools.js +3 -1
  37. package/dist/lib/record-tools.js.map +1 -1
  38. package/dist/lib/required-knowledge.js +11 -3
  39. package/dist/lib/required-knowledge.js.map +1 -1
  40. package/dist/lib/script-tools.js +6 -4
  41. package/dist/lib/script-tools.js.map +1 -1
  42. package/dist/lib/tool-contracts.js +1 -0
  43. package/dist/lib/tool-contracts.js.map +1 -1
  44. package/dist/lib/tool-output-contracts.js +33 -0
  45. package/dist/lib/tool-output-contracts.js.map +1 -1
  46. package/dist/lib/tool-record-operations.d.ts +1 -0
  47. package/dist/lib/tool-record-operations.js +1 -0
  48. package/dist/lib/tool-record-operations.js.map +1 -1
  49. package/dist/lib/tool-runtime-config.d.ts +1 -1
  50. package/dist/lib/toolset-filter.d.ts +1 -1
  51. package/dist/lib/toolset-filter.js +3 -0
  52. package/dist/lib/toolset-filter.js.map +1 -1
  53. package/dist/lib/workflow-definitions.js +7 -7
  54. package/dist/lib/workflow-definitions.js.map +1 -1
  55. package/dist/lib/workspace-state.d.ts +2 -2
  56. package/dist/types/code-history.types.d.ts +9 -0
  57. package/dist/types/code-history.types.js +2 -0
  58. package/dist/types/code-history.types.js.map +1 -0
  59. package/dist/types/code-version.types.d.ts +4 -0
  60. package/dist/types/code-version.types.js +2 -0
  61. package/dist/types/code-version.types.js.map +1 -0
  62. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ export declare function registerCodeHistoryTools(server: any, apiUrl: string): void;
@@ -0,0 +1,48 @@
1
+ import { z } from 'zod';
2
+ import { fetchAPI } from './fetch.js';
3
+ import { VERSIONED_CODE_TABLES, prepareCodeUpdate, readCodeRecord } from './code-version.js';
4
+ import { assertGlobalRulesAck, globalRulesAckParam } from './required-knowledge.js';
5
+ import { writeSourceArtifact } from './source-artifacts.js';
6
+ export function registerCodeHistoryTools(server, apiUrl) {
7
+ server.tool('get_code_history', 'Read a bounded history page for one exact dynamic-code table and record ID. Source pre-images are omitted; use inspect_code_revision for an exact revision.', {
8
+ tableName: z.enum(VERSIONED_CODE_TABLES),
9
+ recordId: z.string().min(1),
10
+ page: z.number().int().min(1).optional().default(1),
11
+ limit: z.number().int().min(1).max(100).optional().default(20),
12
+ }, async ({ tableName, recordId, page, limit }) => {
13
+ const query = new URLSearchParams({ filter: JSON.stringify({ tableName: { _eq: tableName }, recordId: { _eq: recordId } }), fields: 'id,tableName,recordId,action,fromVersion,toVersion,restoredFrom,changedByEmail,changedBySource,createdAt', sort: '-createdAt,-id', page: String(page), limit: String(limit), meta: 'filterCount' });
14
+ const result = await fetchAPI(apiUrl, `/enfyra_audit?${query}`);
15
+ return { content: [{ type: 'text', text: JSON.stringify(result) }] };
16
+ });
17
+ server.tool('inspect_code_revision', 'Inspect one exact audit entry. Returns the previous source through a process-scoped source artifact, not inline code. Deleted records are history-only and cannot be restored.', {
18
+ auditId: z.string().min(1),
19
+ }, async ({ auditId }) => {
20
+ const result = await readCodeRecord('enfyra_audit', auditId, 'id,tableName,recordId,action,fromVersion,toVersion,restoredFrom,previous', path => fetchAPI(apiUrl, path));
21
+ const entry = result.data?.[0];
22
+ if (!entry)
23
+ throw new Error('Audit entry not found.');
24
+ const sourceField = entry.tableName === 'enfyra_extension' ? 'code' : 'sourceCode';
25
+ const source = entry.previous?.[sourceField];
26
+ const artifact = typeof source === 'string' ? writeSourceArtifact({ tableName: entry.tableName, id: `audit-${auditId}`, source, fieldName: sourceField }) : undefined;
27
+ const sourceArtifact = artifact ? { resourceUri: artifact.resourceUri, tmpFile: artifact.tmpFile, sha256: artifact.sha256, length: artifact.length } : undefined;
28
+ return { content: [{ type: 'text', text: JSON.stringify({ auditId, tableName: entry.tableName, recordId: entry.recordId, action: entry.action, fromVersion: entry.fromVersion, toVersion: entry.toVersion, restoredFrom: entry.restoredFrom, restorable: ['update', 'revert'].includes(entry.action) && !!entry.previous, sourceArtifact }) }] };
29
+ });
30
+ server.tool('restore_code_revision', 'Restore an inspected audit pre-image as a NEW version, preserving history. Does not recreate deleted records. Omit version to increment the current patch; supply a greater valid custom version to override. The server enforces target PATCH permissions.', {
31
+ auditId: z.string().min(1),
32
+ version: z.string().optional(),
33
+ globalRulesAckKey: globalRulesAckParam(z),
34
+ }, async ({ auditId, version, globalRulesAckKey }) => {
35
+ assertGlobalRulesAck(globalRulesAckKey);
36
+ const result = await readCodeRecord('enfyra_audit', auditId, 'id,tableName,recordId,action', path => fetchAPI(apiUrl, path));
37
+ const entry = result.data?.[0];
38
+ if (!entry || !['update', 'revert'].includes(entry.action) || !VERSIONED_CODE_TABLES.some(table => table === entry.tableName))
39
+ throw new Error('This audit entry cannot be restored.');
40
+ const prepared = await prepareCodeUpdate(`/${entry.tableName}/${encodeURIComponent(String(entry.recordId))}`, { version }, path => fetchAPI(apiUrl, path));
41
+ await fetchAPI(apiUrl, '/admin/code-audit/revert', { method: 'POST', body: JSON.stringify({ auditId, version: prepared.version }) });
42
+ const saved = await readCodeRecord(entry.tableName, String(entry.recordId), 'version', path => fetchAPI(apiUrl, path));
43
+ if (saved.data?.[0]?.version !== prepared.version)
44
+ throw new Error('Restore returned without the expected version; inspect current state before retrying.');
45
+ return { content: [{ type: 'text', text: JSON.stringify({ action: 'code_revision_restored', auditId, tableName: entry.tableName, recordId: entry.recordId, version: prepared.version, verified: true }) }] };
46
+ });
47
+ }
48
+ //# sourceMappingURL=code-history-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-history-tools.js","sourceRoot":"","sources":["../../src/lib/code-history-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { CodeVersionRead } from '../types/code-version.types.js';
2
+ export declare const VERSIONED_CODE_TABLES: readonly ["enfyra_route_handler", "enfyra_pre_hook", "enfyra_post_hook", "enfyra_helper", "enfyra_websocket", "enfyra_websocket_event", "enfyra_oauth_config", "enfyra_flow_step", "enfyra_extension"];
3
+ export declare function normalizeCodeVersion(value: unknown): string;
4
+ export declare function validCodeVersion(value: unknown): boolean;
5
+ export declare function compareCodeVersions(left: unknown, right: unknown): number;
6
+ export declare function nextCodeVersion(current: unknown): string;
7
+ export declare function readCodeRecord<T = Record<string, unknown>>(tableName: string, recordId: string, fields: string, read: CodeVersionRead): Promise<{
8
+ data?: T[];
9
+ }>;
10
+ export declare function prepareCodeUpdate(path: string, body: Record<string, unknown>, read: CodeVersionRead): Promise<Record<string, unknown>>;
@@ -0,0 +1,82 @@
1
+ export const VERSIONED_CODE_TABLES = [
2
+ 'enfyra_route_handler', 'enfyra_pre_hook', 'enfyra_post_hook', 'enfyra_helper',
3
+ 'enfyra_websocket', 'enfyra_websocket_event', 'enfyra_oauth_config',
4
+ 'enfyra_flow_step', 'enfyra_extension',
5
+ ];
6
+ export function normalizeCodeVersion(value) {
7
+ return String(value || '').trim().replace(/^v/i, '');
8
+ }
9
+ export function validCodeVersion(value) {
10
+ return /^\d+\.\d+\.\d+(\.\d+)*(-[0-9A-Za-z.]+)*$/.test(normalizeCodeVersion(value));
11
+ }
12
+ export function compareCodeVersions(left, right) {
13
+ const [a = '', ...aSuffix] = normalizeCodeVersion(left).split('-');
14
+ const [b = '', ...bSuffix] = normalizeCodeVersion(right).split('-');
15
+ const aCore = a.split('.').map(Number);
16
+ const bCore = b.split('.').map(Number);
17
+ for (let i = 0; i < Math.max(aCore.length, bCore.length); i++) {
18
+ const delta = (aCore[i] ?? 0) - (bCore[i] ?? 0);
19
+ if (delta)
20
+ return delta < 0 ? -1 : 1;
21
+ }
22
+ if (!aSuffix.length && !bSuffix.length)
23
+ return 0;
24
+ if (!aSuffix.length)
25
+ return -1;
26
+ if (!bSuffix.length)
27
+ return 1;
28
+ for (let i = 0; i < Math.max(aSuffix.length, bSuffix.length); i++) {
29
+ const x = aSuffix[i];
30
+ const y = bSuffix[i];
31
+ if (x === undefined)
32
+ return -1;
33
+ if (y === undefined)
34
+ return 1;
35
+ const xn = Number.parseInt(x, 10);
36
+ const yn = Number.parseInt(y, 10);
37
+ if (!Number.isNaN(xn) && !Number.isNaN(yn)) {
38
+ if (xn !== yn)
39
+ return xn < yn ? -1 : 1;
40
+ }
41
+ else {
42
+ const delta = x.localeCompare(y);
43
+ if (delta)
44
+ return delta < 0 ? -1 : 1;
45
+ }
46
+ }
47
+ return 0;
48
+ }
49
+ export function nextCodeVersion(current) {
50
+ if (!validCodeVersion(current))
51
+ throw new Error('Cannot read a valid current version. Refresh the record before saving.');
52
+ const core = normalizeCodeVersion(current).split('-')[0].split('.');
53
+ const patch = Number(core[2]);
54
+ if (!Number.isSafeInteger(patch) || !Number.isSafeInteger(patch + 1))
55
+ throw new Error('Choose a custom valid version.');
56
+ return `${core[0]}.${core[1]}.${patch + 1}`;
57
+ }
58
+ export async function readCodeRecord(tableName, recordId, fields, read) {
59
+ const metadata = await read('/metadata');
60
+ const dbType = metadata.dbType;
61
+ if (!['postgres', 'postgresql', 'mysql', 'mariadb', 'sqlite', 'mongodb'].includes(String(dbType)))
62
+ throw new Error('Cannot resolve the database primary key.');
63
+ const primaryKey = dbType === 'mongodb' ? '_id' : 'id';
64
+ const query = new URLSearchParams({ fields, limit: '1', filter: JSON.stringify({ [primaryKey]: { _eq: recordId } }) });
65
+ return await read(`/${tableName}?${query}`);
66
+ }
67
+ export async function prepareCodeUpdate(path, body, read) {
68
+ const match = /^\/([^/?]+)\/([^/?]+)(?:\?.*)?$/.exec(path);
69
+ if (!match || !VERSIONED_CODE_TABLES.some(table => table === match[1]))
70
+ return body;
71
+ const response = await readCodeRecord(match[1], decodeURIComponent(match[2]), 'version', read);
72
+ const current = normalizeCodeVersion(response.data?.[0]?.version);
73
+ const suggestion = nextCodeVersion(current);
74
+ const supplied = body.version !== undefined && body.version !== null && body.version !== '';
75
+ const version = supplied ? normalizeCodeVersion(body.version) : suggestion;
76
+ if (!validCodeVersion(version))
77
+ throw new Error('version must be valid, for example 1.0.1.');
78
+ if (compareCodeVersions(version, current) <= 0)
79
+ throw new Error(`version must be greater than ${current}.`);
80
+ return { ...body, version };
81
+ }
82
+ //# sourceMappingURL=code-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-version.js","sourceRoot":"","sources":["../../src/lib/code-version.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ import { registerRouteTools } from './route-tools.js';
21
21
  import { startRuntimeCacheSocket } from './runtime-cache-socket.js';
22
22
  import { registerRuntimeZoneTools } from './runtime-zone-tools.js';
23
23
  import { registerScriptTools } from './script-tools.js';
24
+ import { registerCodeHistoryTools } from './code-history-tools.js';
24
25
  import { readSourceArtifactResource } from './source-artifacts.js';
25
26
  import { registerSystemTools } from './system-tools.js';
26
27
  import { registerTableTools } from './table-tools.js';
@@ -62,6 +63,7 @@ export function createEnfyraMcpServer() {
62
63
  registerDiscoveryTools(server, ENFYRA_API_URL);
63
64
  registerRecordTools(server, ENFYRA_API_URL);
64
65
  registerScriptTools(server, ENFYRA_API_URL);
66
+ registerCodeHistoryTools(server, ENFYRA_API_URL);
65
67
  registerMethodTools(server, ENFYRA_API_URL);
66
68
  registerRouteTools(server, ENFYRA_API_URL);
67
69
  registerTableTools(server, ENFYRA_API_URL, { toolset: MCP_TOOLSET });
@@ -1 +1 @@
1
- {"version":3,"file":"enfyra-mcp-server.js","sourceRoot":"","sources":["../../src/lib/enfyra-mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enfyra-mcp-server.js","sourceRoot":"","sources":["../../src/lib/enfyra-mcp-server.ts"],"names":[],"mappings":"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"}
package/dist/lib/fetch.js CHANGED
@@ -3,6 +3,7 @@
3
3
  * Handles API requests with auth, timeout, and error handling
4
4
  */
5
5
  import { getApiTokenHeaders } from './auth.js';
6
+ import { prepareCodeUpdate } from './code-version.js';
6
7
  import { getRateLimitState, observeRateLimitHeaders, waitForRateLimitBudget, } from './rate-limit-state.js';
7
8
  import { clearRuntimeCacheDomains, getRuntimeCache, isRuntimeCacheableGet, runtimeCacheDomainsForMutationPath, runtimeCacheGenerationForPath, setRuntimeCache } from './runtime-cache.js';
8
9
  // Timeout configuration
@@ -42,10 +43,15 @@ export async function fetchAPI(apiUrl, path, options = {}) {
42
43
  const url = `${apiUrl}${path}`;
43
44
  const method = String(options.method || 'GET').toUpperCase();
44
45
  const { timeoutMs: requestedTimeoutMs, ...requestOptions } = options;
46
+ if (method === 'PATCH' && typeof requestOptions.body === 'string') {
47
+ const body = JSON.parse(requestOptions.body);
48
+ const prepared = await prepareCodeUpdate(path, body, readPath => fetchAPI(apiUrl, readPath, { method: 'GET', headers: requestOptions.headers, timeoutMs: requestedTimeoutMs }));
49
+ requestOptions.body = JSON.stringify(prepared);
50
+ }
45
51
  const timeoutMs = Number.isFinite(requestedTimeoutMs) && Number(requestedTimeoutMs) > 0
46
52
  ? Number(requestedTimeoutMs)
47
53
  : FETCH_TIMEOUT;
48
- const cacheable = isRuntimeCacheableGet(path, method);
54
+ const cacheable = !/[?&]fields=version(?:&|$)/.test(path) && isRuntimeCacheableGet(path, method);
49
55
  const cacheGeneration = cacheable ? runtimeCacheGenerationForPath(path) : undefined;
50
56
  if (cacheable) {
51
57
  const cached = getRuntimeCache(path);
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/lib/fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/lib/fetch.ts"],"names":[],"mappings":"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"}
@@ -62,38 +62,26 @@ return order && order.total > 1000`,
62
62
  { "key": "write_audit_log", "stepOrder": 80, "type": "log" }
63
63
  ]`,
64
64
  notes: [
65
- 'Prefer flow_workflow for creating/updating a flow plus steps; it plans fixed step types before saving.',
65
+ 'Prefer flow_workflow for creating/updating a flow plus steps; it plans the script/condition steps before saving.',
66
66
  'Use plan_flow_steps only as a lightweight dry-run when the flow itself is not being changed.',
67
67
  'Each step should return only ids, booleans, status keys, or small counters that later steps need.',
68
68
  'When refactoring an existing flow, add or extract adjacent focused enfyra_flow_step rows instead of making an oversized sourceCode block longer.',
69
69
  ],
70
70
  },
71
71
  {
72
- name: 'Flow query step config',
73
- code: `{
74
- "table": "enfyra_user",
75
- "filter": { "email": { "_contains": "@example.com" } },
76
- "limit": 50
77
- }`,
78
- notes: [
79
- 'Step configs are JSON; script steps use code strings.',
80
- 'Use public-safe URLs for HTTP steps.',
81
- ],
82
- },
83
- {
84
- name: 'Flow create/update/delete step configs',
85
- code: `// ensure_create_flow_step
86
- { "table": "todo", "data": { "title": "Review", "status": "open" } }
87
-
88
- // ensure_update_flow_step
89
- { "table": "todo", "id": "fixed-todo-id", "data": { "status": "done" } }
90
-
91
- // ensure_delete_flow_step
92
- { "table": "todo", "id": "fixed-todo-id" }`,
72
+ name: 'Flow script step',
73
+ code: `const users = await #enfyra_user.find({
74
+ filter: { email: { _contains: '@example.com' } },
75
+ fields: ['id', 'email'],
76
+ limit: 50,
77
+ })
78
+ await @HELPERS.$sleep(500)
79
+ await #todo.create({ data: { title: 'Review', status: 'open' } })
80
+ return { count: users.data?.length ?? 0 }`,
93
81
  notes: [
94
- 'Use fixed CRUD flow step tools only for static config; ESV does not interpolate @FLOW_PAYLOAD, @FLOW_LAST, or @FLOW inside fixed-step config.',
95
- 'Use one focused script step when a record id or body comes from runtime flow values, when a step coordinates multiple records, computes complex data, or calls packages.',
96
- 'Inside a script step, write captured logs with @LOGS(message, details?), not @LOGS.info().',
82
+ 'Flow steps are script-only; condition steps exist only for true/false branching.',
83
+ 'Query, create, update, delete, HTTP, delay, child-flow trigger, and logging all run inside one focused script step.',
84
+ 'Use @REPOS/#table for repository access, @FETCH for HTTP, @HELPERS.$sleep for delays, @TRIGGER for child flows, and @LOGS(message, details?) for captured logs.',
97
85
  ],
98
86
  },
99
87
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-example-flows.js","sourceRoot":"","sources":["../../src/lib/mcp-example-flows.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;IACzB,KAAK,EAAE,wBAAwB;IAC/B,OAAO,EAAE,wDAAwD;IACjE,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,sCAAsC;YAC5C,IAAI,EAAE;;;;;EAKZ;YACM,KAAK,EAAE;gBACL,yDAAyD;gBACzD,0DAA0D;aAC3D;SACF;QACD;YACE,IAAI,EAAE,kEAAkE;YACxE,IAAI,EAAE;;;;;;;;;;;;;;GAcX;YACK,KAAK,EAAE;gBACL,2FAA2F;gBAC3F,4HAA4H;gBAC5H,qEAAqE;gBACrE,mMAAmM;gBACnM,kHAAkH;aACnH;SACF;QACD;YACE,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE;mCACqB;YAC3B,KAAK,EAAE;gBACL,8CAA8C;gBAC9C,8CAA8C;aAC/C;SACF;QACD;YACE,IAAI,EAAE,kDAAkD;YACxD,IAAI,EAAE;;;;;;;;;EASZ;YACM,KAAK,EAAE;gBACL,wGAAwG;gBACxG,8FAA8F;gBAC9F,mGAAmG;gBACnG,kJAAkJ;aACnJ;SACF;QACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE;;;;EAIZ;YACM,KAAK,EAAE;gBACL,uDAAuD;gBACvD,sCAAsC;aACvC;SACF;QACD;YACE,IAAI,EAAE,wCAAwC;YAC9C,IAAI,EAAE;;;;;;;2CAO6B;YACnC,KAAK,EAAE;gBACL,+IAA+I;gBAC/I,0KAA0K;gBAC1K,4FAA4F;aAC7F;SACF;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"mcp-example-flows.js","sourceRoot":"","sources":["../../src/lib/mcp-example-flows.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;IACzB,KAAK,EAAE,wBAAwB;IAC/B,OAAO,EAAE,wDAAwD;IACjE,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,sCAAsC;YAC5C,IAAI,EAAE;;;;;EAKZ;YACM,KAAK,EAAE;gBACL,yDAAyD;gBACzD,0DAA0D;aAC3D;SACF;QACD;YACE,IAAI,EAAE,kEAAkE;YACxE,IAAI,EAAE;;;;;;;;;;;;;;GAcX;YACK,KAAK,EAAE;gBACL,2FAA2F;gBAC3F,4HAA4H;gBAC5H,qEAAqE;gBACrE,mMAAmM;gBACnM,kHAAkH;aACnH;SACF;QACD;YACE,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE;mCACqB;YAC3B,KAAK,EAAE;gBACL,8CAA8C;gBAC9C,8CAA8C;aAC/C;SACF;QACD;YACE,IAAI,EAAE,kDAAkD;YACxD,IAAI,EAAE;;;;;;;;;EASZ;YACM,KAAK,EAAE;gBACL,kHAAkH;gBAClH,8FAA8F;gBAC9F,mGAAmG;gBACnG,kJAAkJ;aACnJ;SACF;QACD;YACE,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE;;;;;;;0CAO4B;YAClC,KAAK,EAAE;gBACL,kFAAkF;gBAClF,qHAAqH;gBACrH,iKAAiK;aAClK;SACF;KACF;CACF,CAAC"}
@@ -6,7 +6,7 @@ import { z } from 'zod';
6
6
  import { destructivePreviewContent } from './destructive-preview.js';
7
7
  import { findMethodRecordByName, getId, getPrimaryFieldName, invalidateMethodMap, normalizeHexColorInput, normalizeMethodNameInput, parseJsonObjectInput, summarizeMutationResult, unwrapData, } from './enfyra-tool-logic.js';
8
8
  import { fetchAPI } from './fetch.js';
9
- import { validatePortableScriptSource } from './mutation-guards.js';
9
+ import { validateConditionStepSource, validatePortableScriptSource } from './mutation-guards.js';
10
10
  import { materializeSourceInput } from './source-artifacts.js';
11
11
  import { assertGlobalRulesAck, globalRulesAckParam } from './required-knowledge.js';
12
12
  import { jsonContent } from './response-format.js';
@@ -18,6 +18,11 @@ function resolveAdminTestTimeout(value) {
18
18
  ? timeout
19
19
  : DEFAULT_ADMIN_TEST_TIMEOUT_MS;
20
20
  }
21
+ function rejectFlowStepConfig(body) {
22
+ if (body && Object.prototype.hasOwnProperty.call(body, 'config')) {
23
+ throw new Error('Flow steps have no config. Send type plus sourceCode (or a source artifact) for a flow_step test.');
24
+ }
25
+ }
21
26
  export function registerMethodTools(server, ENFYRA_API_URL) {
22
27
  server.tool('list_methods', 'List enfyra_method records with their UI colors. Use this before creating route methods or method-colored UI.', {}, async () => {
23
28
  const result = await fetchAPI(ENFYRA_API_URL, '/enfyra_method?fields=id,_id,name,buttonColor,textColor,isSystem&sort=name&limit=0');
@@ -198,15 +203,16 @@ export function registerMethodTools(server, ENFYRA_API_URL) {
198
203
  'kind=script captures logs but not socket emitted calls. Use kind=websocket_event or kind=websocket_connection when emitted capture is required; admin websocket tests still do not prove a real Socket.IO client transport/handshake.',
199
204
  ].join(' '), {
200
205
  kind: z.enum(['script', 'flow_step', 'websocket_event', 'websocket_connection']).describe('Admin test kind'),
201
- body: z.union([z.record(z.any()), z.string()]).describe('Test body as a native JSON object. A JSON string is accepted for compatibility. Include script and optional context for script; type/config plus payload for flow_step; or script/gatewayPath/eventName/payload for websocket tests. Do not include kind; the tool adds it.'),
206
+ body: z.union([z.record(z.any()), z.string()]).describe('Test body as a native JSON object. A JSON string is accepted for compatibility. Include script and optional context for script; type/sourceCode plus payload for flow_step; or script/gatewayPath/eventName/payload for websocket tests. Do not include kind; the tool adds it.'),
202
207
  timeout: z.number().int().positive().optional().describe('Timeout (ms).'),
203
208
  sourceFile: z.string().optional().describe('Previously returned script source artifact tmpFile. Use this when the exact reviewed source is already in tmp.'),
204
209
  sourceResourceUri: z.string().optional().describe('Previously returned enfyra-source artifact URI for the script under test.'),
205
210
  }, async ({ kind, body, timeout, sourceFile, sourceResourceUri }) => {
206
211
  const parsed = parseJsonObjectInput(body, 'body');
207
- const parsedFlowConfig = kind === 'flow_step' ? parseJsonObjectInput(parsed?.config, 'body.config') : null;
212
+ if (kind === 'flow_step')
213
+ rejectFlowStepConfig(parsed);
208
214
  const sourceCode = kind === 'flow_step'
209
- ? parsedFlowConfig?.sourceCode ?? parsedFlowConfig?.code
215
+ ? parsed?.sourceCode
210
216
  : parsed?.script ?? parsed?.sourceCode;
211
217
  const materialized = sourceFile || sourceResourceUri || typeof sourceCode === 'string'
212
218
  ? materializeSourceInput({
@@ -221,7 +227,9 @@ export function registerMethodTools(server, ENFYRA_API_URL) {
221
227
  if (materialized) {
222
228
  validatePortableScriptSource(materialized.source);
223
229
  if (kind === 'flow_step') {
224
- parsed.config = { ...(parsedFlowConfig || {}), sourceCode: materialized.source };
230
+ if (parsed.type === 'condition')
231
+ validateConditionStepSource(materialized.source);
232
+ parsed.sourceCode = materialized.source;
225
233
  }
226
234
  else if (Object.prototype.hasOwnProperty.call(parsed, 'sourceCode')) {
227
235
  parsed.sourceCode = materialized.source;
@@ -237,39 +245,37 @@ export function registerMethodTools(server, ENFYRA_API_URL) {
237
245
  });
238
246
  return { content: [{ type: 'text', text: JSON.stringify({ ...result, ...(materialized ? { sourceArtifact: materialized.sourceArtifact } : {}) }, null, 2) }] };
239
247
  });
240
- server.tool('test_flow_step', 'Test a single flow step without saving it. Wraps POST /admin/test/run with kind=flow_step. Pass runtime @FLOW_PAYLOAD data through payload; the tool forwards it using the ESV test-run contract.', {
241
- type: z.enum(['script', 'condition', 'query', 'create', 'update', 'delete', 'http', 'trigger_flow', 'sleep', 'log']).describe('Flow step type'),
242
- config: z.union([z.record(z.any()), z.string()]).describe('Step config as a native JSON object. A JSON string is accepted for compatibility.'),
248
+ server.tool('test_flow_step', 'Test a single flow step without saving it. Wraps POST /admin/test/run with kind=flow_step. Flow steps are script-only, so pass type plus sourceCode (or a source artifact); there is no step config. Pass runtime @FLOW_PAYLOAD data through payload; the tool forwards it using the ESV test-run contract.', {
249
+ type: z.enum(['script', 'condition']).describe('Flow step type. A condition step must return a boolean.'),
250
+ sourceCode: z.string().optional().describe('Step sourceCode. Prefer sourceFile/sourceResourceUri when the reviewed source already exists as an MCP artifact.'),
243
251
  timeout: z.number().int().positive().optional().describe('Timeout (ms).'),
244
252
  key: z.string().optional().describe('Optional step key for mock flow context'),
245
253
  payload: z.union([z.record(z.any()), z.string()]).optional().describe('Runtime payload object exposed to the script as @FLOW_PAYLOAD. A JSON object string is accepted for compatibility.'),
246
254
  mockFlow: z.union([z.record(z.any()), z.string()]).optional().describe('Optional advanced mockFlow object for $last/$meta or other flow context. A JSON string is accepted for compatibility. Use payload for @FLOW_PAYLOAD.'),
247
255
  sourceFile: z.string().optional().describe('Previously returned script source artifact tmpFile. Use this when the exact reviewed source is already in tmp.'),
248
256
  sourceResourceUri: z.string().optional().describe('Previously returned enfyra-source artifact URI for the script under test.'),
249
- }, async ({ type, config, timeout, key, payload, mockFlow, sourceFile, sourceResourceUri }) => {
250
- const parsedConfig = parseJsonObjectInput(config, 'config');
251
- const sourceCode = parsedConfig?.sourceCode ?? parsedConfig?.code;
252
- const materialized = sourceFile || sourceResourceUri || typeof sourceCode === 'string'
253
- ? materializeSourceInput({
254
- source: sourceFile || sourceResourceUri ? undefined : sourceCode,
255
- sourceFile,
256
- sourceResourceUri,
257
- fieldName: 'sourceCode',
258
- tableName: 'mcp-flow-test',
259
- id: key || type,
260
- })
261
- : null;
262
- if (materialized) {
263
- validatePortableScriptSource(materialized.source);
264
- parsedConfig.sourceCode = materialized.source;
257
+ }, async ({ type, sourceCode, timeout, key, payload, mockFlow, sourceFile, sourceResourceUri }) => {
258
+ if (sourceCode === undefined && sourceFile === undefined && sourceResourceUri === undefined) {
259
+ throw new Error(`${type} flow steps require sourceCode, sourceFile, or sourceResourceUri.`);
265
260
  }
261
+ const materialized = materializeSourceInput({
262
+ source: sourceFile || sourceResourceUri ? undefined : sourceCode,
263
+ sourceFile,
264
+ sourceResourceUri,
265
+ fieldName: 'sourceCode',
266
+ tableName: 'mcp-flow-test',
267
+ id: key || type,
268
+ });
269
+ validatePortableScriptSource(materialized.source);
270
+ if (type === 'condition')
271
+ validateConditionStepSource(materialized.source);
266
272
  const parsedPayload = typeof payload === 'string' ? JSON.parse(payload) : payload;
267
273
  if (parsedPayload !== undefined && (!parsedPayload || typeof parsedPayload !== 'object' || Array.isArray(parsedPayload))) {
268
274
  throw new Error('payload must be a JSON object.');
269
275
  }
270
276
  const body = {
271
277
  type,
272
- config: parsedConfig,
278
+ sourceCode: materialized.source,
273
279
  timeout: resolveAdminTestTimeout(timeout),
274
280
  ...(key ? { key } : {}),
275
281
  ...(parsedPayload !== undefined ? { payload: parsedPayload } : {}),
@@ -280,7 +286,7 @@ export function registerMethodTools(server, ENFYRA_API_URL) {
280
286
  body: JSON.stringify({ ...body, kind: 'flow_step' }),
281
287
  timeoutMs: resolveAdminTestTimeout(timeout) + TEST_RESPONSE_GRACE_MS,
282
288
  });
283
- return { content: [{ type: 'text', text: JSON.stringify({ ...result, ...(materialized ? { sourceArtifact: materialized.sourceArtifact } : {}) }, null, 2) }] };
289
+ return { content: [{ type: 'text', text: JSON.stringify({ ...result, sourceArtifact: materialized.sourceArtifact }, null, 2) }] };
284
290
  });
285
291
  server.tool('trigger_flow', 'Trigger an enabled saved flow by id or name. Disabled flows are not registered for execution; use test_flow_step to verify their step contract without enabling them.', {
286
292
  flowIdOrName: z.union([z.string(), z.number()]).describe('Flow id or name accepted by FlowService.trigger'),
@@ -1 +1 @@
1
- {"version":3,"file":"method-tools.js","sourceRoot":"","sources":["../../src/lib/method-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"method-tools.js","sourceRoot":"","sources":["../../src/lib/method-tools.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,12 @@ export declare function getAllowedMutationFields(table: any): Set<any>;
11
11
  export declare function validatePayloadFields(table: any, payload: any): void;
12
12
  export declare function rejectUnsafeScriptPayload(tableName: any, payload: any): void;
13
13
  export declare function validatePortableScriptSource(sourceCode: any): void;
14
+ /**
15
+ * Condition flow steps must resolve to a boolean. The server rejects any other
16
+ * runtime value, so this preflight blocks the statically obvious violations
17
+ * before a save or test call reaches the API.
18
+ */
19
+ export declare function validateConditionStepSource(sourceCode: any): void;
14
20
  export declare function rejectUnsafeRelationDefinitionPayload(tableName: any, payload: any): void;
15
21
  export declare function validateScriptSourceIfPresent(fetchAPI: any, apiUrl: any, tableName: any, payload: any): Promise<{
16
22
  validated: boolean;
@@ -252,6 +252,9 @@ export function rejectUnsafeScriptPayload(tableName, payload) {
252
252
  if (CODE_ALIAS_FORBIDDEN_TABLES.has(tableName) && Object.prototype.hasOwnProperty.call(payload, 'code')) {
253
253
  throw new Error(`Do not send code to ${tableName}. Use sourceCode/scriptLanguage, or the dedicated MCP create_* tool for this script surface.`);
254
254
  }
255
+ if (tableName === 'enfyra_flow_step' && Object.prototype.hasOwnProperty.call(payload, 'config')) {
256
+ throw new Error('enfyra_flow_step has no config column. Flow steps are script-only: send type (script or condition) with sourceCode/scriptLanguage.');
257
+ }
255
258
  }
256
259
  export function validatePortableScriptSource(sourceCode) {
257
260
  if (typeof sourceCode !== 'string')
@@ -263,6 +266,40 @@ export function validatePortableScriptSource(sourceCode) {
263
266
  validateThrowContract(sourceCode);
264
267
  validatePackageContract(sourceCode);
265
268
  }
269
+ const CONDITION_RETURN_VALUE = /\breturn\b([^;\n}]*)/gu;
270
+ const CONDITION_NON_BOOLEAN_VALUES = [
271
+ /^\{/u,
272
+ /^\[/u,
273
+ /^(?:null|undefined)$/u,
274
+ /^void\s+(?:0|\d+)$/u,
275
+ /^[+-]?(?:\d+\.?\d*|\.\d+)$/u,
276
+ /^'(?:[^'\\]|\\.)*'$/u,
277
+ /^"(?:[^"\\]|\\.)*"$/u,
278
+ /^`(?:[^`\\$]|\\.)*`$/u,
279
+ ];
280
+ /**
281
+ * Condition flow steps must resolve to a boolean. The server rejects any other
282
+ * runtime value, so this preflight blocks the statically obvious violations
283
+ * before a save or test call reaches the API.
284
+ */
285
+ export function validateConditionStepSource(sourceCode) {
286
+ if (typeof sourceCode !== 'string' || sourceCode.trim() === '') {
287
+ throw new Error('Condition flow steps require sourceCode that returns true or false. Add e.g. `return Boolean(@FLOW_PAYLOAD.enabled)` or `return rows.data.length > 0`.');
288
+ }
289
+ const code = sourceCode
290
+ .replace(/\/\*[\s\S]*?\*\//gu, ' ')
291
+ .replace(/\/\/[^\n]*/gu, ' ');
292
+ const returnValues = [...code.matchAll(CONDITION_RETURN_VALUE)].map((match) => match[1].trim());
293
+ if (returnValues.length === 0) {
294
+ throw new Error('Condition flow steps must return a boolean. Add a top-level `return true` or `return false` (or a boolean expression such as `return count > 0`).');
295
+ }
296
+ if (returnValues.includes('')) {
297
+ throw new Error('Condition flow steps must return a boolean value, not a bare `return`. Return true or false, or wrap the value: `return Boolean(value)`.');
298
+ }
299
+ if (returnValues.every((value) => CONDITION_NON_BOOLEAN_VALUES.some((pattern) => pattern.test(value)))) {
300
+ throw new Error('Condition flow steps must return a boolean. Returning an object, array, null, undefined, string, or number is rejected; use `return Boolean(value)` or a comparison such as `return count > 0`.');
301
+ }
302
+ }
266
303
  // One package proxy chain with no call in it: `@PKGS.foo.bar` or
267
304
  // `$ctx.$pkgs['foo'].bar`. A `)` inside the chain ends the match, which is what
268
305
  // separates the proxy itself from the value a call returns.
@@ -486,6 +523,9 @@ export async function validateScriptSourceIfPresent(fetchAPI, apiUrl, tableName,
486
523
  id: 'mutation',
487
524
  });
488
525
  validatePortableScriptSource(materialized.source);
526
+ if (tableName === 'enfyra_flow_step' && payload.type === 'condition') {
527
+ validateConditionStepSource(materialized.source);
528
+ }
489
529
  try {
490
530
  const result = await fetchAPI(apiUrl, '/admin/script/validate', {
491
531
  method: 'POST',