@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.
- package/dist/lib/code-history-tools.d.ts +1 -0
- package/dist/lib/code-history-tools.js +48 -0
- package/dist/lib/code-history-tools.js.map +1 -0
- package/dist/lib/code-version.d.ts +10 -0
- package/dist/lib/code-version.js +82 -0
- package/dist/lib/code-version.js.map +1 -0
- package/dist/lib/enfyra-mcp-server.js +2 -0
- package/dist/lib/enfyra-mcp-server.js.map +1 -1
- package/dist/lib/fetch.js +7 -1
- package/dist/lib/fetch.js.map +1 -1
- package/dist/lib/mcp-example-flows.js +13 -25
- package/dist/lib/mcp-example-flows.js.map +1 -1
- package/dist/lib/method-tools.js +32 -26
- package/dist/lib/method-tools.js.map +1 -1
- package/dist/lib/mutation-guards.d.ts +6 -0
- package/dist/lib/mutation-guards.js +40 -0
- package/dist/lib/mutation-guards.js.map +1 -1
- package/dist/lib/platform-data-operations.js +0 -1
- package/dist/lib/platform-data-operations.js.map +1 -1
- package/dist/lib/platform-extension-tools.js +3 -3
- package/dist/lib/platform-extension-tools.js.map +1 -1
- package/dist/lib/platform-flow-operations.d.ts +4 -387
- package/dist/lib/platform-flow-operations.js +14 -105
- package/dist/lib/platform-flow-operations.js.map +1 -1
- package/dist/lib/platform-flow-tools.js +12 -119
- package/dist/lib/platform-flow-tools.js.map +1 -1
- package/dist/lib/platform-operation-tools.d.ts +1 -1
- package/dist/lib/platform-operation-tools.js +1 -1
- package/dist/lib/platform-operation-tools.js.map +1 -1
- package/dist/lib/platform-operation-types.d.ts +0 -1
- package/dist/lib/platform-resource-operations.d.ts +1 -1
- package/dist/lib/platform-resource-operations.js +1 -1
- package/dist/lib/platform-resource-operations.js.map +1 -1
- package/dist/lib/platform-resource-tools.js +3 -3
- package/dist/lib/platform-resource-tools.js.map +1 -1
- package/dist/lib/record-tools.js +3 -1
- package/dist/lib/record-tools.js.map +1 -1
- package/dist/lib/required-knowledge.js +11 -3
- package/dist/lib/required-knowledge.js.map +1 -1
- package/dist/lib/script-tools.js +6 -4
- package/dist/lib/script-tools.js.map +1 -1
- package/dist/lib/tool-contracts.js +1 -0
- package/dist/lib/tool-contracts.js.map +1 -1
- package/dist/lib/tool-output-contracts.js +33 -0
- package/dist/lib/tool-output-contracts.js.map +1 -1
- package/dist/lib/tool-record-operations.d.ts +1 -0
- package/dist/lib/tool-record-operations.js +1 -0
- package/dist/lib/tool-record-operations.js.map +1 -1
- package/dist/lib/tool-runtime-config.d.ts +1 -1
- package/dist/lib/toolset-filter.d.ts +1 -1
- package/dist/lib/toolset-filter.js +3 -0
- package/dist/lib/toolset-filter.js.map +1 -1
- package/dist/lib/workflow-definitions.js +7 -7
- package/dist/lib/workflow-definitions.js.map +1 -1
- package/dist/lib/workspace-state.d.ts +2 -2
- package/dist/types/code-history.types.d.ts +9 -0
- package/dist/types/code-history.types.js +2 -0
- package/dist/types/code-history.types.js.map +1 -0
- package/dist/types/code-version.types.d.ts +4 -0
- package/dist/types/code-version.types.js +2 -0
- package/dist/types/code-version.types.js.map +1 -0
- 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);
|
package/dist/lib/fetch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/lib/fetch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,GAEvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,qBAAqB,EAAE,kCAAkC,EAAE,6BAA6B,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1L,wBAAwB;AACxB,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,aAAa;AAO1C,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IACzC,UAAU,GAAG,GAAG,CAAC;IACjB,YAAY,CAAU;IACtB,KAAK,CAAU;IACf,SAAS,CAAU;IACnB,SAAS,CAAU;IACnB,aAAa,CAAU;IACvB,KAAK,CAAU;IACf,IAAI,CAAU;IACd,YAAY,CAAS;IAE9B,YAAY,IAAY,EAAE,YAAoB,EAAE,KAAsB;QACpE,KAAK,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,KAAK,EAAE,YAAY,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,KAAK,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,EAAE,SAAS,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,KAAK,EAAE,SAAS,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,KAAK,EAAE,aAAa,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,KAAK,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;CACF;AAED,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAEjC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAc,EAAE,IAAY,EAAE,UAA2B,EAAE;IACxF,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7D,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,CAAC;IACrE,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC;QACrF,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC;QAC5B,CAAC,CAAC,aAAa,CAAC;IAClB,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;
|
|
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
|
|
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
|
|
73
|
-
code: `{
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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
|
-
'
|
|
95
|
-
'
|
|
96
|
-
'
|
|
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,
|
|
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"}
|
package/dist/lib/method-tools.js
CHANGED
|
@@ -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/
|
|
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
|
-
|
|
212
|
+
if (kind === 'flow_step')
|
|
213
|
+
rejectFlowStepConfig(parsed);
|
|
208
214
|
const sourceCode = kind === 'flow_step'
|
|
209
|
-
?
|
|
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.
|
|
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'
|
|
242
|
-
|
|
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,
|
|
250
|
-
|
|
251
|
-
|
|
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
|
-
|
|
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,
|
|
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',
|