@enfyra/mcp-server 0.1.97 → 0.2.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 (67) hide show
  1. package/README.md +6 -0
  2. package/dist/index.js +9 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/lib/cleanup.d.ts +12 -0
  5. package/dist/lib/cleanup.js +9 -0
  6. package/dist/lib/cleanup.js.map +1 -0
  7. package/dist/lib/discovery-tools.js +9 -0
  8. package/dist/lib/discovery-tools.js.map +1 -1
  9. package/dist/lib/mcp-example-extensions.js +1 -1
  10. package/dist/lib/mcp-example-extensions.js.map +1 -1
  11. package/dist/lib/mcp-example-flows.js +25 -0
  12. package/dist/lib/mcp-example-flows.js.map +1 -1
  13. package/dist/lib/mcp-example-queries-deep.js +23 -0
  14. package/dist/lib/mcp-example-queries-deep.js.map +1 -1
  15. package/dist/lib/mcp-usage-telemetry.d.ts +4 -0
  16. package/dist/lib/mcp-usage-telemetry.js +12 -0
  17. package/dist/lib/mcp-usage-telemetry.js.map +1 -1
  18. package/dist/lib/method-tools.js +47 -9
  19. package/dist/lib/method-tools.js.map +1 -1
  20. package/dist/lib/mutation-guards.d.ts +20 -0
  21. package/dist/lib/mutation-guards.js +17 -4
  22. package/dist/lib/mutation-guards.js.map +1 -1
  23. package/dist/lib/platform-endpoint-workflow.d.ts +17 -0
  24. package/dist/lib/platform-endpoint-workflow.js +11 -0
  25. package/dist/lib/platform-endpoint-workflow.js.map +1 -1
  26. package/dist/lib/platform-extension-source.d.ts +55 -22
  27. package/dist/lib/platform-extension-source.js +72 -22
  28. package/dist/lib/platform-extension-source.js.map +1 -1
  29. package/dist/lib/platform-extension-tools.js +80 -16
  30. package/dist/lib/platform-extension-tools.js.map +1 -1
  31. package/dist/lib/platform-extension-workflow.d.ts +7 -0
  32. package/dist/lib/platform-extension-workflow.js +19 -3
  33. package/dist/lib/platform-extension-workflow.js.map +1 -1
  34. package/dist/lib/platform-flow-operations.d.ts +24 -11
  35. package/dist/lib/platform-flow-operations.js +28 -8
  36. package/dist/lib/platform-flow-operations.js.map +1 -1
  37. package/dist/lib/platform-flow-tools.js +10 -4
  38. package/dist/lib/platform-flow-tools.js.map +1 -1
  39. package/dist/lib/platform-resource-operations.d.ts +17 -1
  40. package/dist/lib/platform-resource-operations.js +15 -4
  41. package/dist/lib/platform-resource-operations.js.map +1 -1
  42. package/dist/lib/platform-resource-tools.js +12 -6
  43. package/dist/lib/platform-resource-tools.js.map +1 -1
  44. package/dist/lib/platform-route-tools.js +10 -3
  45. package/dist/lib/platform-route-tools.js.map +1 -1
  46. package/dist/lib/platform-websocket-tools.js +21 -12
  47. package/dist/lib/platform-websocket-tools.js.map +1 -1
  48. package/dist/lib/record-tools.js +2 -2
  49. package/dist/lib/record-tools.js.map +1 -1
  50. package/dist/lib/required-knowledge.js +8 -4
  51. package/dist/lib/required-knowledge.js.map +1 -1
  52. package/dist/lib/route-definition-tools.js +22 -6
  53. package/dist/lib/route-definition-tools.js.map +1 -1
  54. package/dist/lib/schema-table-tools.js +6 -0
  55. package/dist/lib/schema-table-tools.js.map +1 -1
  56. package/dist/lib/script-tools.js +73 -15
  57. package/dist/lib/script-tools.js.map +1 -1
  58. package/dist/lib/source-artifacts.d.ts +29 -0
  59. package/dist/lib/source-artifacts.js +37 -4
  60. package/dist/lib/source-artifacts.js.map +1 -1
  61. package/dist/lib/tool-record-operations.d.ts +17 -0
  62. package/dist/lib/tool-record-operations.js +10 -1
  63. package/dist/lib/tool-record-operations.js.map +1 -1
  64. package/dist/lib/workflow-definitions.js +4 -4
  65. package/dist/lib/workflow-definitions.js.map +1 -1
  66. package/dist/lib/workflow-planner.d.ts +1 -1
  67. package/package.json +1 -1
@@ -9,6 +9,7 @@ import { fetchAPI } from './fetch.js';
9
9
  import { validateScriptSourceIfPresent } from './mutation-guards.js';
10
10
  import { assertDynamicCodeKnowledgeAck, assertGlobalRulesAck, dynamicCodeKnowledgeAckParam, globalRulesAckParam } from './required-knowledge.js';
11
11
  import { validateMainTableRoutePath } from './route-guards.js';
12
+ import { materializeSourceInput } from './source-artifacts.js';
12
13
  export function registerRouteDefinitionTools(server, ENFYRA_API_URL) {
13
14
  server.tool('get_all_routes', 'List route definitions with minimal fields. Complete route lists must pass either limit or all=true. If search is provided without limit, the tool returns a bounded lookup window of 10 matches. Call inspect_route for handlers/hooks/permissions detail.', {
14
15
  includeDisabled: z.boolean().optional().default(false).describe('Include disabled routes'),
@@ -125,15 +126,19 @@ export function registerRouteDefinitionTools(server, ENFYRA_API_URL) {
125
126
  .describe('Single enfyra_method.name to create. Prefer this for one handler.'),
126
127
  methods: z.array(z.string()).optional()
127
128
  .describe('Batch create multiple handlers. Use only when the same sourceCode applies to every method.'),
128
- sourceCode: z.string().describe('Handler JavaScript sourceCode. Do not use logic; backend CRUD rejects logic. Use @REPOS.main for the route main table or #secure.table_name/@REPOS.secure.table_name for explicit user-facing access; trusted repos require intentional bypass and explicit authorization.'),
129
+ sourceCode: z.string().optional().describe('Handler JavaScript sourceCode. Prefer sourceFile/sourceResourceUri when the reviewed source already exists as an MCP artifact.'),
130
+ sourceFile: z.string().optional().describe('Previously returned route handler source artifact tmpFile.'),
131
+ sourceResourceUri: z.string().optional().describe('Previously returned enfyra-source artifact URI for the route handler.'),
129
132
  scriptLanguage: z.enum(['javascript', 'typescript']).optional().default('javascript').describe('Script language for compiler. Default javascript.'),
130
133
  timeout: z.number().optional().describe('Timeout in ms for each route+method handler row (not a route-level setting; default system timeout is usually 30000).'),
131
134
  globalRulesAckKey: globalRulesAckParam(z),
132
135
  knowledgeAckKey: dynamicCodeKnowledgeAckParam(z),
133
136
  allowCanonicalRoute: z.boolean().optional().default(false).describe('Explicit acknowledgement for adding a new handler to a canonical main-table route. Use only when the new method intentionally belongs to the shared eApp/admin CRUD surface; third-party endpoint-specific behavior must use a separate custom route.'),
134
- }, async ({ routeId, method, methods, sourceCode, scriptLanguage, timeout, globalRulesAckKey, knowledgeAckKey, allowCanonicalRoute }) => {
137
+ }, async ({ routeId, method, methods, sourceCode, sourceFile, sourceResourceUri, scriptLanguage, timeout, globalRulesAckKey, knowledgeAckKey, allowCanonicalRoute }) => {
135
138
  assertGlobalRulesAck(globalRulesAckKey);
136
139
  assertDynamicCodeKnowledgeAck(knowledgeAckKey);
140
+ const materialized = materializeSourceInput({ source: sourceCode, sourceFile, sourceResourceUri, fieldName: 'sourceCode', tableName: 'enfyra_route_handler', id: routeId });
141
+ sourceCode = materialized.source;
137
142
  const routeQuery = new URLSearchParams({
138
143
  filter: JSON.stringify({ id: { _eq: routeId } }),
139
144
  fields: 'id,path,mainTable.id,mainTable.name',
@@ -179,6 +184,7 @@ export function registerRouteDefinitionTools(server, ENFYRA_API_URL) {
179
184
  handlers: results,
180
185
  canonicalRouteAcknowledged: Boolean(targetRoute?.mainTable && allowCanonicalRoute),
181
186
  scriptValidation,
187
+ sourceArtifact: materialized.sourceArtifact,
182
188
  routeReload,
183
189
  detailHint: 'Use inspect_route with the same routeId/path to inspect saved handlers.',
184
190
  }, null, 2) }] };
@@ -192,7 +198,9 @@ export function registerRouteDefinitionTools(server, ENFYRA_API_URL) {
192
198
  ].join(' '), {
193
199
  routeId: z.union([z.string(), z.number()]).describe('Route definition ID'),
194
200
  name: z.string().describe('Hook name (unique per route)'),
195
- code: z.string().describe('Hook JavaScript sourceCode. MCP stores it as sourceCode and lets Enfyra compile compiledCode.'),
201
+ code: z.string().optional().describe('Hook JavaScript sourceCode. Prefer sourceFile/sourceResourceUri when the reviewed source already exists as an MCP artifact.'),
202
+ sourceFile: z.string().optional().describe('Previously returned hook source artifact tmpFile.'),
203
+ sourceResourceUri: z.string().optional().describe('Previously returned enfyra-source artifact URI for the hook.'),
196
204
  scriptLanguage: z.enum(['javascript', 'typescript']).optional().default('javascript').describe('Script language for compiler. Default javascript.'),
197
205
  methods: z.array(z.string()).optional()
198
206
  .describe('Method names this hook applies to. Default: built-in REST methods GET, POST, PATCH, DELETE.'),
@@ -200,9 +208,11 @@ export function registerRouteDefinitionTools(server, ENFYRA_API_URL) {
200
208
  isEnabled: z.boolean().optional().default(true).describe('Enable hook immediately'),
201
209
  globalRulesAckKey: globalRulesAckParam(z),
202
210
  knowledgeAckKey: dynamicCodeKnowledgeAckParam(z),
203
- }, async ({ routeId, name, code, scriptLanguage, methods, priority, isEnabled, globalRulesAckKey, knowledgeAckKey }) => {
211
+ }, async ({ routeId, name, code, sourceFile, sourceResourceUri, scriptLanguage, methods, priority, isEnabled, globalRulesAckKey, knowledgeAckKey }) => {
204
212
  assertGlobalRulesAck(globalRulesAckKey);
205
213
  assertDynamicCodeKnowledgeAck(knowledgeAckKey);
214
+ const materialized = materializeSourceInput({ source: code, sourceFile, sourceResourceUri, fieldName: 'sourceCode', tableName: 'enfyra_pre_hook', id: routeId });
215
+ code = materialized.source;
206
216
  const methodMap = await getMethodMap();
207
217
  const methodNames = methods || ['GET', 'POST', 'PATCH', 'DELETE'];
208
218
  const scriptValidation = await validateScriptSourceIfPresent(fetchAPI, ENFYRA_API_URL, 'enfyra_pre_hook', {
@@ -230,6 +240,7 @@ export function registerRouteDefinitionTools(server, ENFYRA_API_URL) {
230
240
  name,
231
241
  routeId,
232
242
  scriptValidation,
243
+ sourceArtifact: materialized.sourceArtifact,
233
244
  routeReload,
234
245
  }, null, 2) }] };
235
246
  });
@@ -241,7 +252,9 @@ export function registerRouteDefinitionTools(server, ENFYRA_API_URL) {
241
252
  ].join(' '), {
242
253
  routeId: z.union([z.string(), z.number()]).describe('Route definition ID'),
243
254
  name: z.string().describe('Hook name (unique per route)'),
244
- code: z.string().describe('Hook JavaScript sourceCode. MCP stores it as sourceCode and lets Enfyra compile compiledCode.'),
255
+ code: z.string().optional().describe('Hook JavaScript sourceCode. Prefer sourceFile/sourceResourceUri when the reviewed source already exists as an MCP artifact.'),
256
+ sourceFile: z.string().optional().describe('Previously returned hook source artifact tmpFile.'),
257
+ sourceResourceUri: z.string().optional().describe('Previously returned enfyra-source artifact URI for the hook.'),
245
258
  scriptLanguage: z.enum(['javascript', 'typescript']).optional().default('javascript').describe('Script language for compiler. Default javascript.'),
246
259
  methods: z.array(z.string()).optional()
247
260
  .describe('Method names this hook applies to. Default: built-in REST methods GET, POST, PATCH, DELETE.'),
@@ -249,9 +262,11 @@ export function registerRouteDefinitionTools(server, ENFYRA_API_URL) {
249
262
  isEnabled: z.boolean().optional().default(true).describe('Enable hook immediately'),
250
263
  globalRulesAckKey: globalRulesAckParam(z),
251
264
  knowledgeAckKey: dynamicCodeKnowledgeAckParam(z),
252
- }, async ({ routeId, name, code, scriptLanguage, methods, priority, isEnabled, globalRulesAckKey, knowledgeAckKey }) => {
265
+ }, async ({ routeId, name, code, sourceFile, sourceResourceUri, scriptLanguage, methods, priority, isEnabled, globalRulesAckKey, knowledgeAckKey }) => {
253
266
  assertGlobalRulesAck(globalRulesAckKey);
254
267
  assertDynamicCodeKnowledgeAck(knowledgeAckKey);
268
+ const materialized = materializeSourceInput({ source: code, sourceFile, sourceResourceUri, fieldName: 'sourceCode', tableName: 'enfyra_post_hook', id: routeId });
269
+ code = materialized.source;
255
270
  const methodMap = await getMethodMap();
256
271
  const methodNames = methods || ['GET', 'POST', 'PATCH', 'DELETE'];
257
272
  const scriptValidation = await validateScriptSourceIfPresent(fetchAPI, ENFYRA_API_URL, 'enfyra_post_hook', {
@@ -279,6 +294,7 @@ export function registerRouteDefinitionTools(server, ENFYRA_API_URL) {
279
294
  name,
280
295
  routeId,
281
296
  scriptValidation,
297
+ sourceArtifact: materialized.sourceArtifact,
282
298
  routeReload,
283
299
  }, null, 2) }] };
284
300
  });
@@ -1 +1 @@
1
- {"version":3,"file":"route-definition-tools.js","sourceRoot":"","sources":["../../src/lib/route-definition-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route-definition-tools.js","sourceRoot":"","sources":["../../src/lib/route-definition-tools.ts"],"names":[],"mappings":"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"}
@@ -98,6 +98,12 @@ export function registerSchemaTableTools(server, ENFYRA_API_URL, options = {}) {
98
98
  ? 'create_tables auto-includes _id/ObjectId; do not include your own primary key.'
99
99
  : 'create_tables auto-includes id/int; do not include your own primary key.',
100
100
  reservedColumnRule: 'Do not declare id, _id, createdAt, or updatedAt in create_tables/create_columns. create_tables strips them before save and reports skippedAutoColumns; create_columns rejects them.',
101
+ timestampSemantics: {
102
+ createdAt: 'System-managed insert timestamp. It is assigned when the record is created and is not a domain-specific creation event.',
103
+ updatedAt: 'System-managed last persisted-write timestamp. Enfyra refreshes it on record updates; use it for generic last-mutation or changed-since logic.',
104
+ domainTimestampRule: 'Only add a separate timestamp when it represents a distinct business event, such as lastProcessedAt, lastSyncedAt, lastSuccessfulRunAt, publishedAt, or completedAt. Do not add lastUpdated/lastModified as aliases for updatedAt.',
105
+ scheduledFlowRule: 'A flow that runs every few minutes uses a schedule trigger config.cron. A timestamp column is not the scheduler.',
106
+ },
101
107
  },
102
108
  columnDefinitionInput: {
103
109
  allowedFields: ['name', 'type', 'isNullable', 'isUnique', 'isPublished', 'isUpdatable', 'isEncrypted', 'defaultValue', 'description', 'options', 'placeholder', 'metadata'],
@@ -1 +1 @@
1
- {"version":3,"file":"schema-table-tools.js","sourceRoot":"","sources":["../../src/lib/schema-table-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-table-tools.js","sourceRoot":"","sources":["../../src/lib/schema-table-tools.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,25 @@ import { z } from 'zod';
6
6
  import { SCRIPT_BACKED_TABLES, fetchScriptRecord, prepareGenericMutation, replaceOccurrence, scriptRecordLabel, sha256, sourcePreview, summarizeMutationResult, } from './enfyra-tool-logic.js';
7
7
  import { fetchAPI, validateTableName } from './fetch.js';
8
8
  import { assertDynamicCodeKnowledgeAck, assertGlobalRulesAck, dynamicCodeKnowledgeAckParam, globalRulesAckParam } from './required-knowledge.js';
9
- import { writeSourceArtifact } from './source-artifacts.js';
9
+ import { materializeSourceInput, resolveSourceInput, writeSourceArtifact } from './source-artifacts.js';
10
+ async function verifySavedScriptSource(tableName, id, expectedSourceCode) {
11
+ const saved = await fetchScriptRecord(tableName, id);
12
+ const savedSha256 = sha256(saved.sourceCode);
13
+ const sourceArtifact = writeSourceArtifact({
14
+ tableName,
15
+ id,
16
+ fieldName: saved.sourceField,
17
+ source: saved.sourceCode,
18
+ });
19
+ return {
20
+ valid: saved.sourceCode === expectedSourceCode,
21
+ sourceField: saved.sourceField,
22
+ sourceLength: saved.sourceCode.length,
23
+ sourceSha256: savedSha256,
24
+ sourceFile: sourceArtifact.tmpFile,
25
+ sourceResourceUri: sourceArtifact.resourceUri,
26
+ };
27
+ }
10
28
  export function registerScriptTools(server, ENFYRA_API_URL) {
11
29
  server.tool('get_script_source', [
12
30
  'Fetch the full editable source for one script-backed metadata record without preview truncation.',
@@ -24,6 +42,7 @@ export function registerScriptTools(server, ENFYRA_API_URL) {
24
42
  primaryKey,
25
43
  sourceField,
26
44
  sourceFile: sourceArtifact.tmpFile,
45
+ sourceResourceUri: sourceArtifact.resourceUri,
27
46
  sourcePreview: sourceArtifact.preview,
28
47
  sourceLength: sourceCode.length,
29
48
  sourceSha256: sha256(sourceCode),
@@ -38,15 +57,17 @@ export function registerScriptTools(server, ENFYRA_API_URL) {
38
57
  ].join(' '), {
39
58
  tableName: z.enum(SCRIPT_BACKED_TABLES).describe('Script-backed table to patch'),
40
59
  id: z.string().describe('Record ID to patch'),
41
- oldText: z.string().describe('Exact text to replace'),
42
- newText: z.string().describe('Replacement text'),
60
+ oldText: z.string().optional().describe('Exact text to replace. Omit when applying a previously returned sourceFile/sourceResourceUri artifact.'),
61
+ newText: z.string().optional().describe('Replacement text. Omit when applying a previously returned sourceFile/sourceResourceUri artifact.'),
62
+ sourceFile: z.string().optional().describe('Previously returned final patched source artifact tmpFile. Use this on apply=true to validate/apply the exact reviewed file without recomputing the patch.'),
63
+ sourceResourceUri: z.string().optional().describe('Previously returned final patched source artifact URI.'),
43
64
  occurrence: z.enum(['first', 'all']).optional().default('all').describe('Replace first occurrence or all occurrences.'),
44
65
  expectedSourceSha256: z.string().optional().describe('Optional SHA-256 from get_script_source; fails if source changed.'),
45
66
  scriptLanguage: z.string().optional().describe('Script language to save. Defaults to existing scriptLanguage or javascript.'),
46
67
  apply: z.boolean().optional().default(false).describe('false returns preview only; true validates and saves.'),
47
68
  globalRulesAckKey: globalRulesAckParam(z).optional().describe('Required when apply=true. Use globalRulesAckKey from get_enfyra_required_knowledge.'),
48
69
  knowledgeAckKey: dynamicCodeKnowledgeAckParam(z).optional().describe('Required when apply=true. Use dynamicCodeAckKey from get_enfyra_required_knowledge.'),
49
- }, async ({ tableName, id, oldText, newText, occurrence, expectedSourceSha256, scriptLanguage, apply, globalRulesAckKey, knowledgeAckKey }) => {
70
+ }, async ({ tableName, id, oldText, newText, sourceFile, sourceResourceUri, occurrence, expectedSourceSha256, scriptLanguage, apply, globalRulesAckKey, knowledgeAckKey }) => {
50
71
  const { record, sourceField, sourceCode } = await fetchScriptRecord(tableName, id);
51
72
  if (sourceField !== 'sourceCode') {
52
73
  throw new Error(`patch_script_source only saves sourceCode records. Record uses "${sourceField}"; use update_records intentionally for this legacy field.`);
@@ -55,24 +76,41 @@ export function registerScriptTools(server, ENFYRA_API_URL) {
55
76
  if (expectedSourceSha256 && expectedSourceSha256 !== beforeHash) {
56
77
  throw new Error(`Source hash mismatch. Current sha256 is ${beforeHash}; re-read with get_script_source before patching.`);
57
78
  }
58
- const { occurrences, patched, replaced } = replaceOccurrence(sourceCode, oldText, newText, occurrence || 'all');
59
- const afterHash = sha256(patched);
79
+ if ((sourceFile || sourceResourceUri) && (oldText !== undefined || newText !== undefined)) {
80
+ throw new Error('When sourceFile/sourceResourceUri is provided, omit oldText and newText so the exact artifact is applied.');
81
+ }
82
+ if (!sourceFile && !sourceResourceUri && (oldText === undefined || newText === undefined)) {
83
+ throw new Error('Provide oldText and newText, or provide sourceFile/sourceResourceUri from a reviewed patch artifact.');
84
+ }
85
+ const patchResult = sourceFile || sourceResourceUri
86
+ ? { occurrences: 0, patched: resolveSourceInput({ sourceFile, sourceResourceUri, fieldName: 'sourceCode' }), replaced: false }
87
+ : replaceOccurrence(sourceCode, oldText, newText, occurrence || 'all');
88
+ const { occurrences, patched, replaced } = patchResult;
89
+ const patchedArtifact = materializeSourceInput({
90
+ source: patched,
91
+ fieldName: 'sourceCode',
92
+ tableName,
93
+ id,
94
+ });
95
+ const exactPatched = patchedArtifact.source;
96
+ const afterHash = sha256(exactPatched);
60
97
  const payload = {
61
98
  action: apply ? 'patch_script_source_applied' : 'patch_script_source_preview',
62
99
  tableName,
63
100
  id,
64
101
  sourceField,
65
102
  sourceLengthBefore: sourceCode.length,
66
- sourceLengthAfter: patched.length,
103
+ sourceLengthAfter: exactPatched.length,
67
104
  sourceSha256Before: beforeHash,
68
105
  sourceSha256After: afterHash,
69
106
  occurrences,
70
107
  replaced,
71
108
  preview: {
72
109
  before: sourcePreview(sourceCode, oldText),
73
- after: sourcePreview(patched, newText),
110
+ after: sourcePreview(exactPatched, newText || ''),
74
111
  },
75
- next: apply ? undefined : 'Call patch_script_source again with apply=true and expectedSourceSha256 set to sourceSha256Before to validate and save.',
112
+ sourceArtifact: patchedArtifact.sourceArtifact,
113
+ next: apply ? undefined : 'Call patch_script_source again with apply=true, sourceFile/sourceResourceUri from this artifact, and expectedSourceSha256 set to sourceSha256Before to validate and save.',
76
114
  };
77
115
  if (!apply) {
78
116
  return { content: [{ type: 'text', text: JSON.stringify(payload, null, 2) }] };
@@ -80,7 +118,7 @@ export function registerScriptTools(server, ENFYRA_API_URL) {
80
118
  assertGlobalRulesAck(globalRulesAckKey);
81
119
  assertDynamicCodeKnowledgeAck(knowledgeAckKey);
82
120
  const language = scriptLanguage || record.scriptLanguage || 'javascript';
83
- const prepared = await prepareGenericMutation(tableName, JSON.stringify({ sourceCode: patched, scriptLanguage: language }));
121
+ const prepared = await prepareGenericMutation(tableName, JSON.stringify({ sourceCode: exactPatched, scriptLanguage: language }));
84
122
  const result = await fetchAPI(ENFYRA_API_URL, `/${tableName}/${encodeURIComponent(String(id))}`, { method: 'PATCH', body: JSON.stringify(prepared.payload) });
85
123
  return { content: [{ type: 'text', text: JSON.stringify({
86
124
  ...payload,
@@ -88,12 +126,14 @@ export function registerScriptTools(server, ENFYRA_API_URL) {
88
126
  id,
89
127
  scriptLanguage: language,
90
128
  scriptValidation: prepared.scriptValidation,
129
+ savedSource: await verifySavedScriptSource(tableName, id, exactPatched),
91
130
  }, null, 2) }] };
92
131
  });
93
132
  server.tool('update_script_source', [
94
133
  'Update sourceCode on a script-backed record without forcing the caller to JSON-escape long code.',
134
+ 'Pass sourceFile or sourceResourceUri from a prior inspect when the reviewed artifact is the intended full replacement; the MCP process reads it without echoing the source through the model call.',
95
135
  'Use this for enfyra_flow_step, enfyra_route_handler, enfyra_pre_hook, enfyra_post_hook, enfyra_websocket_event, enfyra_websocket, enfyra_oauth_config, and enfyra_bootstrap_script.',
96
- 'The tool validates sourceCode through /admin/script/validate before saving and never accepts compiledCode.',
136
+ 'The tool validates sourceCode through /admin/script/validate before saving, re-reads the saved source, returns a fresh artifact/hash verification, and never accepts compiledCode.',
97
137
  ].join(' '), {
98
138
  tableName: z.enum([
99
139
  'enfyra_route_handler',
@@ -106,22 +146,40 @@ export function registerScriptTools(server, ENFYRA_API_URL) {
106
146
  'enfyra_bootstrap_script',
107
147
  ]).describe('Script-backed table to update'),
108
148
  id: z.string().describe('Record ID to update'),
109
- sourceCode: z.string().describe('Editable script sourceCode. Pass the raw code string; do not JSON-escape it yourself.'),
149
+ sourceCode: z.string().optional().describe('Editable script sourceCode. Pass the raw code string; do not JSON-escape it yourself. Use sourceFile or sourceResourceUri instead for a previously inspected artifact.'),
150
+ sourceFile: z.string().optional().describe('Previously returned source artifact tmpFile. The MCP server reads only artifacts created in this process; it rejects arbitrary paths.'),
151
+ sourceResourceUri: z.string().optional().describe('Previously returned enfyra-source artifact URI. The MCP server reads only artifacts created in this process.'),
152
+ expectedSourceSha256: z.string().optional().describe('Optional SHA-256 of the current saved source from inspect/get_script_source. Rejects a stale full replacement.'),
110
153
  scriptLanguage: z.string().optional().default('javascript').describe('Script language, usually javascript or typescript'),
111
154
  globalRulesAckKey: globalRulesAckParam(z),
112
155
  knowledgeAckKey: dynamicCodeKnowledgeAckParam(z),
113
- }, async ({ tableName, id, sourceCode, scriptLanguage, globalRulesAckKey, knowledgeAckKey }) => {
156
+ }, async ({ tableName, id, sourceCode, sourceFile, sourceResourceUri, expectedSourceSha256, scriptLanguage, globalRulesAckKey, knowledgeAckKey }) => {
114
157
  assertGlobalRulesAck(globalRulesAckKey);
115
158
  assertDynamicCodeKnowledgeAck(knowledgeAckKey);
116
159
  validateTableName(tableName);
117
- const prepared = await prepareGenericMutation(tableName, JSON.stringify({ sourceCode, scriptLanguage }));
160
+ const resolvedSourceCode = resolveSourceInput({
161
+ source: sourceCode,
162
+ sourceFile,
163
+ sourceResourceUri,
164
+ fieldName: 'sourceCode',
165
+ });
166
+ if (expectedSourceSha256) {
167
+ const current = await fetchScriptRecord(tableName, id);
168
+ const currentSha256 = sha256(current.sourceCode);
169
+ if (expectedSourceSha256 !== currentSha256) {
170
+ throw new Error(`Source hash mismatch. Current sha256 is ${currentSha256}; re-read the script artifact before replacing it.`);
171
+ }
172
+ }
173
+ const prepared = await prepareGenericMutation(tableName, JSON.stringify({ sourceCode: resolvedSourceCode, scriptLanguage }));
118
174
  const result = await fetchAPI(ENFYRA_API_URL, `/${tableName}/${encodeURIComponent(String(id))}`, { method: 'PATCH', body: JSON.stringify(prepared.payload) });
119
175
  return { content: [{ type: 'text', text: JSON.stringify({
120
176
  ...summarizeMutationResult(result, 'updated_script_source', tableName),
121
177
  id,
122
- sourceLength: sourceCode.length,
178
+ sourceLength: resolvedSourceCode.length,
179
+ sourceSha256: sha256(resolvedSourceCode),
123
180
  scriptLanguage,
124
181
  scriptValidation: prepared.scriptValidation,
182
+ savedSource: await verifySavedScriptSource(tableName, id, resolvedSourceCode),
125
183
  }, null, 2) }] };
126
184
  });
127
185
  }
@@ -1 +1 @@
1
- {"version":3,"file":"script-tools.js","sourceRoot":"","sources":["../../src/lib/script-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"script-tools.js","sourceRoot":"","sources":["../../src/lib/script-tools.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export declare const SOURCE_ARTIFACT_DIR: string;
1
2
  type SourceArtifactInput = {
2
3
  tableName?: string;
3
4
  id: string | number;
@@ -16,11 +17,39 @@ export declare function writeSourceArtifact({ tableName, id, fieldName, source }
16
17
  sha256: string;
17
18
  preview: string;
18
19
  };
20
+ export declare function cleanupSourceArtifacts(): {
21
+ directory: string;
22
+ removed: boolean;
23
+ };
19
24
  export declare function readSourceArtifactResource(resourceUri: string): {
20
25
  uri: string;
21
26
  mimeType: string;
22
27
  text: string;
23
28
  };
29
+ export declare function readSourceArtifactFile(tmpFile: string): string;
30
+ export declare function resolveSourceInput({ source, sourceFile, sourceResourceUri, fieldName }: {
31
+ source?: string;
32
+ sourceFile?: string;
33
+ sourceResourceUri?: string;
34
+ fieldName: string;
35
+ }): string;
36
+ export declare function materializeSourceInput({ source, sourceFile, sourceResourceUri, fieldName, tableName, id }: {
37
+ source?: string;
38
+ sourceFile?: string;
39
+ sourceResourceUri?: string;
40
+ fieldName: string;
41
+ tableName?: string;
42
+ id?: string | number;
43
+ }): {
44
+ source: string;
45
+ sourceArtifact: {
46
+ resourceUri: string;
47
+ tmpFile: string;
48
+ length: number;
49
+ sha256: string;
50
+ preview: string;
51
+ };
52
+ };
24
53
  export declare function compactSourceField({ tableName, id, fieldName, source, alwaysWrite }: SourceArtifactInput & {
25
54
  alwaysWrite?: boolean;
26
55
  }): string | {
@@ -1,5 +1,5 @@
1
1
  import { createHash } from 'node:crypto';
2
- import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
+ import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
3
3
  import { tmpdir } from 'node:os';
4
4
  import { join } from 'node:path';
5
5
  const DEFAULT_PREVIEW_CHARS = 480;
@@ -12,6 +12,7 @@ const SOURCE_FIELD_NAMES = new Set([
12
12
  'connectionHandlerScript',
13
13
  ]);
14
14
  const SOURCE_ARTIFACTS = new Map();
15
+ export const SOURCE_ARTIFACT_DIR = join(tmpdir(), 'enfyra-mcp-sources');
15
16
  function sha256(value) {
16
17
  return createHash('sha256').update(String(value), 'utf8').digest('hex');
17
18
  }
@@ -39,15 +40,14 @@ function artifactId(tableName, id, fieldName, hash) {
39
40
  export function writeSourceArtifact({ tableName, id, fieldName, source }) {
40
41
  const hash = sha256(source);
41
42
  const extension = extensionForField(fieldName);
42
- const dir = join(tmpdir(), 'enfyra-mcp-sources');
43
- mkdirSync(dir, { recursive: true, mode: 0o700 });
43
+ mkdirSync(SOURCE_ARTIFACT_DIR, { recursive: true, mode: 0o700 });
44
44
  const fileName = [
45
45
  safePart(tableName),
46
46
  safePart(id),
47
47
  safePart(fieldName),
48
48
  hash.slice(0, 12),
49
49
  ].join('-') + extension;
50
- const path = join(dir, fileName);
50
+ const path = join(SOURCE_ARTIFACT_DIR, fileName);
51
51
  writeFileSync(path, source, { mode: 0o600 });
52
52
  const resourceId = artifactId(tableName, id, fieldName, hash);
53
53
  const resourceUri = `enfyra-source://artifact/${encodeURIComponent(resourceId)}`;
@@ -62,6 +62,13 @@ export function writeSourceArtifact({ tableName, id, fieldName, source }) {
62
62
  : source,
63
63
  };
64
64
  }
65
+ export function cleanupSourceArtifacts() {
66
+ const existed = existsSync(SOURCE_ARTIFACT_DIR);
67
+ if (existed)
68
+ rmSync(SOURCE_ARTIFACT_DIR, { recursive: true, force: true });
69
+ SOURCE_ARTIFACTS.clear();
70
+ return { directory: SOURCE_ARTIFACT_DIR, removed: existed };
71
+ }
65
72
  export function readSourceArtifactResource(resourceUri) {
66
73
  let resourceId = '';
67
74
  try {
@@ -82,6 +89,32 @@ export function readSourceArtifactResource(resourceUri) {
82
89
  text: readFileSync(artifact.path, 'utf8'),
83
90
  };
84
91
  }
92
+ export function readSourceArtifactFile(tmpFile) {
93
+ const artifact = [...SOURCE_ARTIFACTS.values()].find((item) => item.path === tmpFile);
94
+ if (!artifact) {
95
+ throw new Error('Source artifact file is unavailable in this MCP process. Inspect the live artifact again to create a fresh file.');
96
+ }
97
+ return readFileSync(artifact.path, 'utf8');
98
+ }
99
+ export function resolveSourceInput({ source, sourceFile, sourceResourceUri, fieldName }) {
100
+ const provided = [source !== undefined, sourceFile !== undefined, sourceResourceUri !== undefined].filter(Boolean).length;
101
+ if (provided !== 1) {
102
+ throw new Error(`Provide exactly one of ${fieldName}, sourceFile, or sourceResourceUri.`);
103
+ }
104
+ if (source !== undefined)
105
+ return source;
106
+ if (sourceFile !== undefined)
107
+ return readSourceArtifactFile(sourceFile);
108
+ return readSourceArtifactResource(sourceResourceUri).text;
109
+ }
110
+ export function materializeSourceInput({ source, sourceFile, sourceResourceUri, fieldName, tableName = 'mcp', id = 'input' }) {
111
+ const resolved = resolveSourceInput({ source, sourceFile, sourceResourceUri, fieldName });
112
+ const artifact = writeSourceArtifact({ tableName, id, fieldName, source: resolved });
113
+ return {
114
+ source: readSourceArtifactFile(artifact.tmpFile),
115
+ sourceArtifact: artifact,
116
+ };
117
+ }
85
118
  export function compactSourceField({ tableName, id, fieldName, source, alwaysWrite = false }) {
86
119
  if (typeof source !== 'string')
87
120
  return source;