@enfyra/mcp-server 0.1.66 → 0.1.68

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 (35) hide show
  1. package/dist/lib/extension-search-tools.d.ts +7 -0
  2. package/dist/lib/extension-search-tools.js +22 -3
  3. package/dist/lib/extension-search-tools.js.map +1 -1
  4. package/dist/lib/mcp-examples.d.ts +1 -1
  5. package/dist/lib/mcp-examples.js +39 -102
  6. package/dist/lib/mcp-examples.js.map +1 -1
  7. package/dist/lib/mcp-instructions.js +5 -4
  8. package/dist/lib/mcp-instructions.js.map +1 -1
  9. package/dist/lib/model-eval.js +77 -14
  10. package/dist/lib/model-eval.js.map +1 -1
  11. package/dist/lib/oauth-tools.d.ts +3 -0
  12. package/dist/lib/oauth-tools.js +135 -0
  13. package/dist/lib/oauth-tools.js.map +1 -0
  14. package/dist/lib/record-contracts.d.ts +14 -0
  15. package/dist/lib/record-contracts.js +56 -0
  16. package/dist/lib/record-contracts.js.map +1 -0
  17. package/dist/lib/required-knowledge.d.ts +1 -1
  18. package/dist/lib/required-knowledge.js +15 -2
  19. package/dist/lib/required-knowledge.js.map +1 -1
  20. package/dist/lib/runtime-zone-tools.d.ts +7 -0
  21. package/dist/lib/runtime-zone-tools.js +6 -3
  22. package/dist/lib/runtime-zone-tools.js.map +1 -1
  23. package/dist/lib/tool-contracts.js +2 -0
  24. package/dist/lib/tool-contracts.js.map +1 -1
  25. package/dist/lib/tool-output-contracts.js +56 -0
  26. package/dist/lib/tool-output-contracts.js.map +1 -1
  27. package/dist/lib/tool-routing.d.ts +44 -5
  28. package/dist/lib/tool-routing.js +90 -10
  29. package/dist/lib/tool-routing.js.map +1 -1
  30. package/dist/lib/toolset-filter.js +1 -0
  31. package/dist/lib/toolset-filter.js.map +1 -1
  32. package/dist/lib/types.d.ts +15 -0
  33. package/dist/mcp-server-entry.js +46 -10
  34. package/dist/mcp-server-entry.js.map +1 -1
  35. package/package.json +1 -1
@@ -65,7 +65,6 @@ export const MODEL_EVAL_SCENARIOS = [
65
65
  prompt: 'Inspect a route-backed table and return a bounded record list with explicit fields.',
66
66
  surface: 'record-data',
67
67
  requiredToolGroups: [
68
- ['inspect_table', 'get_table_metadata'],
69
68
  ['query_table'],
70
69
  ],
71
70
  verificationTools: ['query_table'],
@@ -81,9 +80,9 @@ export const MODEL_EVAL_SCENARIOS = [
81
80
  ['get_extension_theme_contract'],
82
81
  ['ensure_widget_extension', 'extension_workflow'],
83
82
  ['delete_records'],
84
- ['search_admin_extensions', 'find_one_record', 'query_table'],
83
+ ['delete_records', 'search_admin_extensions', 'find_one_record', 'query_table'],
85
84
  ],
86
- verificationTools: ['search_admin_extensions', 'find_one_record', 'query_table'],
85
+ verificationTools: ['delete_records', 'search_admin_extensions', 'find_one_record', 'query_table'],
87
86
  maxToolCalls: 14,
88
87
  mutationExpected: true,
89
88
  destructiveExpected: true,
@@ -92,6 +91,24 @@ export const MODEL_EVAL_SCENARIOS = [
92
91
  function eventIndex(events, tools, after = -1) {
93
92
  return events.findIndex((event, index) => index > after && tools.includes(event.tool) && !event.isError);
94
93
  }
94
+ function expandCatalogReadEvents(events) {
95
+ return events.flatMap((event) => {
96
+ if (event.tool !== 'execute_enfyra_tool' || event.isError)
97
+ return [event];
98
+ const tool = typeof event.arguments?.name === 'string' ? event.arguments.name : '';
99
+ if (!tool || isMutationTool(tool) || isDestructiveTool(tool) || !isRecord(event.result))
100
+ return [event];
101
+ const nestedResult = event.result.result;
102
+ if (event.result.action !== 'enfyra_catalog_tool_executed' || event.result.tool !== tool || nestedResult === undefined)
103
+ return [event];
104
+ return [event, {
105
+ tool,
106
+ arguments: isRecord(event.arguments?.arguments) ? event.arguments.arguments : {},
107
+ result: nestedResult,
108
+ isError: false,
109
+ }];
110
+ });
111
+ }
95
112
  function requiredSequenceCheck(scenario, events) {
96
113
  let index = -1;
97
114
  for (const group of scenario.requiredToolGroups) {
@@ -124,17 +141,26 @@ function workflowSelectionCheck(scenario, events) {
124
141
  const selectedSurface = event.arguments?.surface;
125
142
  return typeof selectedSurface !== 'string' || selectedSurface === scenario.surface;
126
143
  });
127
- const passed = boundary >= 0 && selection >= 0;
144
+ const catalogRead = scenario.mutationExpected ? -1 : events.findIndex((event) => (event.tool === 'execute_enfyra_tool'
145
+ && !event.isError
146
+ && typeof event.arguments?.name === 'string'
147
+ && scenario.verificationTools.includes(event.arguments.name)
148
+ && !isMutationTool(event.arguments.name)
149
+ && !isDestructiveTool(event.arguments.name)));
150
+ const passed = boundary >= 0 && (selection >= 0 || catalogRead >= 0);
128
151
  return {
129
152
  key: 'workflow_selection',
130
153
  passed,
131
154
  detail: passed
132
- ? `Selected the ${scenario.surface} workflow before execution.`
155
+ ? selection >= 0
156
+ ? `Selected the ${scenario.surface} workflow before execution.`
157
+ : 'Used the guarded catalog executor for a hidden read-only verification tool.'
133
158
  : `The ${scenario.surface} workflow was not selected before execution.`,
134
159
  };
135
160
  }
136
161
  function mutationGatewayCheck(events) {
137
162
  const invalid = events.find((event) => event.tool === 'execute_enfyra_tool'
163
+ && !event.isError
138
164
  && typeof event.arguments?.name === 'string'
139
165
  && isMutationTool(event.arguments.name));
140
166
  return {
@@ -190,6 +216,11 @@ function isEmptyCollection(value) {
190
216
  function provesAbsence(event) {
191
217
  if (!isRecord(event.result))
192
218
  return false;
219
+ if (event.tool === 'delete_records') {
220
+ return isRecord(event.result.postcondition)
221
+ && event.result.postcondition.confirmedAbsent === true
222
+ && isEmptyCollection(event.result.postcondition.remainingIds);
223
+ }
193
224
  if (event.tool === 'search_admin_extensions') {
194
225
  if (typeof event.result.resultCount === 'number')
195
226
  return event.result.resultCount === 0;
@@ -228,8 +259,9 @@ function cleanupAbsenceCheck(scenario, events) {
228
259
  return { key: 'cleanup_absence', passed: true, detail: 'No cleanup absence proof required.' };
229
260
  }
230
261
  const confirmedDelete = events.findIndex((event) => (event.tool === 'delete_records' && event.arguments?.confirm === true && !event.isError));
262
+ const inlineProof = confirmedDelete >= 0 && provesAbsence(events[confirmedDelete]);
231
263
  const verification = events.find((event, index) => (index > confirmedDelete && scenario.verificationTools.includes(event.tool) && !event.isError));
232
- const passed = confirmedDelete >= 0 && Boolean(verification && provesAbsence(verification));
264
+ const passed = confirmedDelete >= 0 && (inlineProof || Boolean(verification && provesAbsence(verification)));
233
265
  return {
234
266
  key: 'cleanup_absence',
235
267
  passed,
@@ -238,6 +270,29 @@ function cleanupAbsenceCheck(scenario, events) {
238
270
  : 'Post-cleanup verification did not return an empty/null result for the target.',
239
271
  };
240
272
  }
273
+ function schemaPreflightCheck(scenario, events) {
274
+ if (scenario.id !== 'bounded-record-read') {
275
+ return { key: 'schema_preflight', passed: true, detail: 'No query schema preflight required.' };
276
+ }
277
+ const queryIndex = events.findIndex((event) => event.tool === 'query_table' && !event.isError);
278
+ const query = events[queryIndex];
279
+ const explicitFields = Array.isArray(query?.arguments?.fields) && query.arguments.fields.length > 0;
280
+ const externalMetadata = queryIndex > 0 && events.slice(0, queryIndex).some((event) => (['inspect_table', 'get_table_metadata'].includes(event.tool) && !event.isError));
281
+ const embeddedReceipt = isRecord(query?.result)
282
+ && isRecord(query.result.schemaReceipt)
283
+ && query.result.schemaReceipt.metadataChecked === true
284
+ && query.result.schemaReceipt.requestedFieldsValidated === true;
285
+ const passed = queryIndex >= 0 && explicitFields && (externalMetadata || embeddedReceipt);
286
+ return {
287
+ key: 'schema_preflight',
288
+ passed,
289
+ detail: passed
290
+ ? externalMetadata
291
+ ? 'Explicit fields followed live metadata inspection.'
292
+ : 'query_table returned an embedded live metadata validation receipt.'
293
+ : 'Bounded query lacked explicit fields or live metadata validation.',
294
+ };
295
+ }
241
296
  function efficiencyCheck(scenario, events) {
242
297
  const passed = events.length <= scenario.maxToolCalls;
243
298
  return {
@@ -257,25 +312,33 @@ function toolErrorCheck(events) {
257
312
  };
258
313
  }
259
314
  export function scoreModelEvalRun(run, scenario) {
260
- const checks = [
261
- requiredSequenceCheck(scenario, run.events),
262
- workflowSelectionCheck(scenario, run.events),
315
+ const semanticEvents = expandCatalogReadEvents(run.events);
316
+ const blockingChecks = [
317
+ requiredSequenceCheck(scenario, semanticEvents),
263
318
  targetCheck(scenario, run.events),
264
319
  mutationGatewayCheck(run.events),
265
320
  destructiveCheck(scenario, run.events),
266
321
  creationVerificationCheck(scenario, run.events),
267
- verificationCheck(scenario, run.events),
322
+ verificationCheck(scenario, semanticEvents),
268
323
  cleanupAbsenceCheck(scenario, run.events),
324
+ schemaPreflightCheck(scenario, semanticEvents),
325
+ ].map((check) => ({ ...check, blocking: true }));
326
+ const advisoryChecks = [
327
+ workflowSelectionCheck(scenario, semanticEvents),
269
328
  efficiencyCheck(scenario, run.events),
270
329
  toolErrorCheck(run.events),
271
- ];
272
- const passed = checks.filter((check) => check.passed).length;
273
- const score = Number(((passed / checks.length) * 100).toFixed(2));
330
+ ].map((check) => ({ ...check, blocking: false }));
331
+ const checks = [...blockingChecks, ...advisoryChecks];
332
+ const passed = blockingChecks.filter((check) => check.passed).length;
333
+ const score = Number(((passed / blockingChecks.length) * 100).toFixed(2));
334
+ const optimizationPassed = advisoryChecks.filter((check) => check.passed).length;
335
+ const optimizationScore = Number(((optimizationPassed / advisoryChecks.length) * 100).toFixed(2));
274
336
  return {
275
337
  scenarioId: scenario.id,
276
338
  model: run.model,
277
339
  score,
278
- recommended: score === 100,
340
+ optimizationScore,
341
+ recommended: blockingChecks.every((check) => check.passed),
279
342
  checks,
280
343
  };
281
344
  }
@@ -1 +1 @@
1
- {"version":3,"file":"model-eval.js","sourceRoot":"","sources":["../../src/lib/model-eval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-eval.js","sourceRoot":"","sources":["../../src/lib/model-eval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AASxE,MAAM,CAAC,MAAM,oBAAoB,GAAwB;IACvD;QACE,EAAE,EAAE,0BAA0B;QAC9B,MAAM,EAAE,wFAAwF;QAChG,OAAO,EAAE,QAAQ;QACjB,kBAAkB,EAAE;YAClB,CAAC,+BAA+B,CAAC;YACjC,CAAC,2BAA2B,CAAC;YAC7B,CAAC,gBAAgB,EAAE,eAAe,CAAC;YACnC,CAAC,eAAe,CAAC;YACjB,CAAC,eAAe,CAAC;SAClB;QACD,iBAAiB,EAAE,CAAC,eAAe,CAAC;QACpC,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,IAAI;KACvB;IACD;QACE,EAAE,EAAE,yBAAyB;QAC7B,MAAM,EAAE,yGAAyG;QACjH,OAAO,EAAE,WAAW;QACpB,kBAAkB,EAAE;YAClB,CAAC,+BAA+B,CAAC;YACjC,CAAC,8BAA8B,CAAC;YAChC,CAAC,yBAAyB,CAAC;YAC3B,CAAC,sBAAsB,CAAC;YACxB,CAAC,0BAA0B,CAAC;SAC7B;QACD,iBAAiB,EAAE,CAAC,0BAA0B,CAAC;QAC/C,YAAY,EAAE,EAAE;QAChB,gBAAgB,EAAE,IAAI;KACvB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,MAAM,EAAE,gGAAgG;QACxG,OAAO,EAAE,cAAc;QACvB,kBAAkB,EAAE;YAClB,CAAC,+BAA+B,CAAC;YACjC,CAAC,0BAA0B,CAAC;YAC5B,CAAC,uBAAuB,CAAC;YACzB,CAAC,oBAAoB,CAAC;SACvB;QACD,iBAAiB,EAAE,CAAC,oBAAoB,CAAC;QACzC,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,IAAI;KACvB;IACD;QACE,EAAE,EAAE,iCAAiC;QACrC,MAAM,EAAE,gGAAgG;QACxG,OAAO,EAAE,QAAQ;QACjB,kBAAkB,EAAE;YAClB,CAAC,+BAA+B,CAAC;YACjC,CAAC,eAAe,EAAE,gBAAgB,CAAC;YACnC,CAAC,eAAe,CAAC;YACjB,CAAC,eAAe,CAAC;YACjB,CAAC,gBAAgB,EAAE,eAAe,CAAC;SACpC;QACD,iBAAiB,EAAE,CAAC,gBAAgB,EAAE,eAAe,CAAC;QACtD,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,IAAI;QACtB,mBAAmB,EAAE,IAAI;KAC1B;IACD;QACE,EAAE,EAAE,qBAAqB;QACzB,MAAM,EAAE,qFAAqF;QAC7F,OAAO,EAAE,aAAa;QACtB,kBAAkB,EAAE;YAClB,CAAC,aAAa,CAAC;SAChB;QACD,iBAAiB,EAAE,CAAC,aAAa,CAAC;QAClC,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,KAAK;KACxB;IACD;QACE,EAAE,EAAE,+BAA+B;QACnC,MAAM,EAAE,gGAAgG;QACxG,OAAO,EAAE,WAAW;QACpB,kBAAkB,EAAE;YAClB,CAAC,+BAA+B,CAAC;YACjC,CAAC,8BAA8B,CAAC;YAChC,CAAC,yBAAyB,EAAE,oBAAoB,CAAC;YACjD,CAAC,gBAAgB,CAAC;YAClB,CAAC,gBAAgB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,aAAa,CAAC;SAChF;QACD,iBAAiB,EAAE,CAAC,gBAAgB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,aAAa,CAAC;QAClG,YAAY,EAAE,EAAE;QAChB,gBAAgB,EAAE,IAAI;QACtB,mBAAmB,EAAE,IAAI;KAC1B;CACF,CAAC;AAEF,SAAS,UAAU,CAAC,MAA6B,EAAE,KAAe,EAAE,KAAK,GAAG,CAAC,CAAC;IAC5E,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3G,CAAC;AAED,SAAS,uBAAuB,CAAC,MAA6B;IAC5D,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,IAAI,KAAK,CAAC,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,SAAS,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACxG,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;QACzC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,8BAA8B,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACvI,OAAO,CAAC,KAAK,EAAE;gBACb,IAAI;gBACJ,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gBAChF,MAAM,EAAE,YAAY;gBACpB,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,QAA2B,EAAE,MAA6B;IACvF,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,kBAAkB,EAAE,CAAC;QAChD,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACzC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,OAAO,EAAE,GAAG,EAAE,mBAAmB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,0BAA0B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QAC7G,CAAC;IACH,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,mBAAmB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,8CAA8C,EAAE,CAAC;AAC5G,CAAC;AAED,SAAS,WAAW,CAAC,QAA2B,EAAE,MAA6B;IAC7E,IAAI,CAAC,QAAQ,CAAC,gBAAgB;QAAE,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;IACnH,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,aAAa,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,GAAG,aAAa,CAAC;IAC7E,OAAO;QACL,GAAG,EAAE,qBAAqB;QAC1B,MAAM;QACN,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,sDAAsD;KACxH,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,QAA2B,EAAE,MAA6B;IACxF,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB;QACxC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAClD,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,wBAAwB,IAAI,KAAK,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAChG,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC;QACjD,OAAO,OAAO,eAAe,KAAK,QAAQ,IAAI,eAAe,KAAK,QAAQ,CAAC,OAAO,CAAC;IACrF,CAAC,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC/E,KAAK,CAAC,IAAI,KAAK,qBAAqB;WAC/B,CAAC,KAAK,CAAC,OAAO;WACd,OAAO,KAAK,CAAC,SAAS,EAAE,IAAI,KAAK,QAAQ;WACzC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;WACzD,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;WACrC,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAC9C,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,CAAC,CAAC;IACrE,OAAO;QACL,GAAG,EAAE,oBAAoB;QACzB,MAAM;QACN,MAAM,EAAE,MAAM;YACZ,CAAC,CAAC,SAAS,IAAI,CAAC;gBACd,CAAC,CAAC,gBAAgB,QAAQ,CAAC,OAAO,6BAA6B;gBAC/D,CAAC,CAAC,6EAA6E;YACjF,CAAC,CAAC,OAAO,QAAQ,CAAC,OAAO,8CAA8C;KAC1E,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,MAA6B;IACzD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,qBAAqB;WACtE,CAAC,KAAK,CAAC,OAAO;WACd,OAAO,KAAK,CAAC,SAAS,EAAE,IAAI,KAAK,QAAQ;WACzC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,OAAO;QACL,GAAG,EAAE,yBAAyB;QAC9B,MAAM,EAAE,CAAC,OAAO;QAChB,MAAM,EAAE,OAAO;YACb,CAAC,CAAC,YAAY,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,mDAAmD;YAChG,CAAC,CAAC,uDAAuD;KAC5D,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,QAA2B,EAAE,MAA6B;IAClF,IAAI,CAAC,QAAQ,CAAC,mBAAmB;QAAE,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,oCAAoC,EAAE,CAAC;IACrI,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI;YAAE,SAAS;QAClF,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;eACnF,SAAS,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI;eACrC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,OAAO;YAAE,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,qDAAqD,EAAE,CAAC;IAClI,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,kEAAkE,EAAE,CAAC;AACnI,CAAC;AAED,SAAS,iBAAiB,CAAC,QAA2B,EAAE,MAA6B;IACnF,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CACzD,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAC9F,EAAE,CAAC,CAAC,CAAC,CAAC;IACP,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,IAAI,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;IACpG,OAAO;QACL,GAAG,EAAE,0BAA0B;QAC/B,MAAM;QACN,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,mDAAmD;KACtH,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACnF,OAAO,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;WAC3B,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC;WACtC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,KAAK,IAAI,CAAC;AACnD,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACpD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,aAAa,CAAC,KAA0B;IAC/C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC;eACtC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,KAAK,IAAI;eACnD,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;QAC7C,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,WAAW,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC,MAAM,CAAC,WAAW,KAAK,CAAC,CAAC;QACxF,OAAO,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC;IACpE,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACjC,OAAO,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,yBAAyB,CAAC,QAA2B,EAAE,MAA6B;IAC3F,IAAI,QAAQ,CAAC,EAAE,KAAK,+BAA+B,EAAE,CAAC;QACpD,OAAO,EAAE,GAAG,EAAE,4BAA4B,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,6CAA6C,EAAE,CAAC;IACpH,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC3C,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CACzF,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CACzD,KAAK,GAAG,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAC3G,CAAC,CAAC;IACH,MAAM,oBAAoB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC9D,KAAK,GAAG,QAAQ,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,KAAK,GAAG,eAAe,CAAC;WAC/D,KAAK,CAAC,IAAI,KAAK,0BAA0B,IAAI,CAAC,KAAK,CAAC,OAAO,CACjE,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,QAAQ,IAAI,CAAC,IAAI,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,QAAQ,IAAI,CAAC,IAAI,eAAe,GAAG,QAAQ,IAAI,CAAC,cAAc,IAAI,oBAAoB,GAAG,QAAQ,CAAC,CAAC;IAClH,OAAO;QACL,GAAG,EAAE,4BAA4B;QACjC,MAAM;QACN,MAAM,EAAE,MAAM;YACZ,CAAC,CAAC,cAAc;gBACd,CAAC,CAAC,+DAA+D;gBACjE,CAAC,CAAC,yDAAyD;YAC7D,CAAC,CAAC,kEAAkE;KACvE,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,QAA2B,EAAE,MAA6B;IACrF,IAAI,QAAQ,CAAC,EAAE,KAAK,+BAA+B,EAAE,CAAC;QACpD,OAAO,EAAE,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,oCAAoC,EAAE,CAAC;IAChG,CAAC;IACD,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAClD,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CACvF,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,eAAe,IAAI,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;IACnF,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CACjD,KAAK,GAAG,eAAe,IAAI,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAC7F,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,eAAe,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,YAAY,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC7G,OAAO;QACL,GAAG,EAAE,iBAAiB;QACtB,MAAM;QACN,MAAM,EAAE,MAAM;YACZ,CAAC,CAAC,uEAAuE;YACzE,CAAC,CAAC,+EAA+E;KACpF,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,QAA2B,EAAE,MAA6B;IACtF,IAAI,QAAQ,CAAC,EAAE,KAAK,qBAAqB,EAAE,CAAC;QAC1C,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,qCAAqC,EAAE,CAAC;IAClG,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/F,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACjC,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACpG,MAAM,gBAAgB,GAAG,UAAU,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrF,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAC/E,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;WAC1C,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC;WACpC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,KAAK,IAAI;WACnD,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,wBAAwB,KAAK,IAAI,CAAC;IAClE,MAAM,MAAM,GAAG,UAAU,IAAI,CAAC,IAAI,cAAc,IAAI,CAAC,gBAAgB,IAAI,eAAe,CAAC,CAAC;IAC1F,OAAO;QACL,GAAG,EAAE,kBAAkB;QACvB,MAAM;QACN,MAAM,EAAE,MAAM;YACZ,CAAC,CAAC,gBAAgB;gBAChB,CAAC,CAAC,oDAAoD;gBACtD,CAAC,CAAC,oEAAoE;YACxE,CAAC,CAAC,mEAAmE;KACxE,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,QAA2B,EAAE,MAA6B;IACjF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC;IACtD,OAAO;QACL,GAAG,EAAE,oBAAoB;QACzB,MAAM;QACN,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,YAAY,cAAc;KAChE,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,MAA6B;IACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzD,OAAO;QACL,GAAG,EAAE,aAAa;QAClB,MAAM,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC;QAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC;YAC3B,CAAC,CAAC,2BAA2B;YAC7B,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,iBAAiB,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU;KAClF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAiB,EAAE,QAA2B;IAC9E,MAAM,cAAc,GAAG,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG;QACrB,qBAAqB,CAAC,QAAQ,EAAE,cAAc,CAAC;QAC/C,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC;QACjC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC;QAChC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC;QACtC,yBAAyB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC;QAC/C,iBAAiB,CAAC,QAAQ,EAAE,cAAc,CAAC;QAC3C,mBAAmB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC;QACzC,oBAAoB,CAAC,QAAQ,EAAE,cAAc,CAAC;KAC/C,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACjD,MAAM,cAAc,GAAG;QACrB,sBAAsB,CAAC,QAAQ,EAAE,cAAc,CAAC;QAChD,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC;QACrC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;KAC3B,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,CAAC,GAAG,cAAc,EAAE,GAAG,cAAc,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IACrE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,kBAAkB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IACjF,MAAM,iBAAiB,GAAG,MAAM,CAAC,CAAC,CAAC,kBAAkB,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAClG,OAAO;QACL,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,KAAK;QACL,iBAAiB;QACjB,WAAW,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;QAC1D,MAAM;KACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAoB;IACrD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC3F,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACtB,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QACjF,OAAO,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { OAuthProvider, OAuthProviderToolDependencies } from './types.js';
2
+ export declare function buildOAuthCallbackUri(apiUrl: string, provider: OAuthProvider): string;
3
+ export declare function registerOAuthProviderTools(server: any, apiUrl: string, dependencies?: OAuthProviderToolDependencies): void;
@@ -0,0 +1,135 @@
1
+ import { z } from 'zod';
2
+ import { fetchAPI } from './fetch.js';
3
+ import { assertGlobalRulesAck, globalRulesAckParam } from './required-knowledge.js';
4
+ import { jsonContent } from './response-format.js';
5
+ const PROVIDERS = ['google', 'facebook', 'github'];
6
+ const PROVIDER_CONSOLE_FIELDS = {
7
+ google: 'Authorized redirect URIs',
8
+ facebook: 'Valid OAuth Redirect URIs',
9
+ github: 'Authorization callback URL',
10
+ };
11
+ function unwrapData(result) {
12
+ const data = result?.data ?? result;
13
+ return Array.isArray(data) ? data : data ? [data] : [];
14
+ }
15
+ function recordId(record) {
16
+ return record?.id ?? record?._id ?? null;
17
+ }
18
+ function providerFilterPath(provider) {
19
+ const filter = encodeURIComponent(JSON.stringify({ provider: { _eq: provider } }));
20
+ const fields = 'id,_id,provider,redirectUri,appCallbackUrl,autoSetCookies,isEnabled';
21
+ return `/enfyra_oauth_config?filter=${filter}&fields=${fields}&limit=1`;
22
+ }
23
+ export function buildOAuthCallbackUri(apiUrl, provider) {
24
+ return `${apiUrl.replace(/\/$/, '')}/auth/${provider}/callback`;
25
+ }
26
+ export function registerOAuthProviderTools(server, apiUrl, dependencies = {}) {
27
+ const fetchApi = dependencies.fetchApi ?? fetchAPI;
28
+ const requireGlobalRulesAck = dependencies.assertGlobalRulesAck ?? assertGlobalRulesAck;
29
+ server.tool('setup_oauth_provider', [
30
+ 'Create or update one built-in Enfyra OAuth provider only after the third app has been connected to Enfyra and the user has supplied its client credentials.',
31
+ 'The required appConnectionVerified=true input confirms that the framework proxy, OAuth start action, and /me session check were inspected or implemented before provider configuration.',
32
+ 'Do not ask the user for a callback URI: derive it from the connected Enfyra API target.',
33
+ 'The tool enables proxy-cookie mode, verifies the saved non-secret config and active runtime provider, and never returns client credentials.',
34
+ 'A successful call only saves the Enfyra side. Present the returned callbackUri for the provider console and stop until the user confirms it was added; setup is not complete before that confirmation and a successful OAuth login through the already connected app.',
35
+ ].join(' '), {
36
+ provider: z.enum(PROVIDERS).describe('OAuth provider. Infer it from the request when explicit; otherwise ask the user.'),
37
+ clientId: z.string().min(1).describe('Provider client ID supplied in the current user request. Never infer it, read an old value, or write it into third-app source.'),
38
+ clientSecret: z.string().min(1).describe('Provider client secret supplied in the current user request. Never read an old value, echo it, log it, or write it into third-app source.'),
39
+ appConnectionVerified: z.literal(true).describe('Required proof gate. Set true only after the third app has been inspected and follows the Enfyra connect contract.'),
40
+ globalRulesAckKey: globalRulesAckParam(z),
41
+ }, async ({ provider, clientId, clientSecret, globalRulesAckKey }) => {
42
+ requireGlobalRulesAck(globalRulesAckKey);
43
+ const callbackUri = buildOAuthCallbackUri(apiUrl, provider);
44
+ const queryPath = providerFilterPath(provider);
45
+ const existing = unwrapData(await fetchApi(apiUrl, queryPath))[0] ?? null;
46
+ const config = {
47
+ provider,
48
+ clientId,
49
+ clientSecret,
50
+ redirectUri: callbackUri,
51
+ autoSetCookies: true,
52
+ appCallbackUrl: null,
53
+ isEnabled: true,
54
+ };
55
+ const existingId = recordId(existing);
56
+ const operation = existingId === null ? 'created' : 'updated';
57
+ const mutationPath = existingId === null
58
+ ? '/enfyra_oauth_config'
59
+ : `/enfyra_oauth_config/${encodeURIComponent(String(existingId))}`;
60
+ await fetchApi(apiUrl, mutationPath, {
61
+ method: existingId === null ? 'POST' : 'PATCH',
62
+ body: JSON.stringify(config),
63
+ });
64
+ const saved = unwrapData(await fetchApi(apiUrl, queryPath))[0] ?? null;
65
+ const providers = unwrapData(await fetchApi(apiUrl, '/auth/providers'));
66
+ const configPersisted = Boolean(saved
67
+ && saved.provider === provider
68
+ && saved.redirectUri === callbackUri
69
+ && saved.autoSetCookies === true
70
+ && saved.isEnabled === true);
71
+ const runtimeProviderActive = providers.some((item) => item?.provider === provider);
72
+ const verified = configPersisted && runtimeProviderActive;
73
+ const consoleField = PROVIDER_CONSOLE_FIELDS[provider];
74
+ return jsonContent({
75
+ action: 'oauth_provider_enfyra_config_saved',
76
+ status: verified
77
+ ? 'provider_console_action_required'
78
+ : configPersisted
79
+ ? 'runtime_verification_required'
80
+ : 'configuration_verification_failed',
81
+ setupComplete: false,
82
+ provider,
83
+ operation,
84
+ config: {
85
+ id: recordId(saved) ?? existingId,
86
+ provider,
87
+ redirectUri: saved?.redirectUri ?? callbackUri,
88
+ autoSetCookies: saved?.autoSetCookies === true,
89
+ appCallbackUrl: saved?.appCallbackUrl ?? null,
90
+ isEnabled: saved?.isEnabled === true,
91
+ },
92
+ callbackUri,
93
+ providerConsole: {
94
+ field: consoleField,
95
+ value: callbackUri,
96
+ instruction: `Add this exact URI to ${consoleField} in the ${provider} developer console. Do not use the third-app return page as the provider callback.`,
97
+ confirmationRequired: true,
98
+ },
99
+ verification: {
100
+ configPersisted,
101
+ runtimeProviderActive,
102
+ providerConsoleConfirmed: false,
103
+ providersEndpoint: '/auth/providers',
104
+ credentialsReturned: false,
105
+ },
106
+ next: verified
107
+ ? {
108
+ instruction: 'Present callbackUri and providerConsole.field to the user, then stop and wait for confirmation that the URI was added in the provider console. Do not report OAuth setup as complete yet.',
109
+ requiresUserConfirmation: true,
110
+ afterConfirmation: 'Use the already connected third app OAuth button to complete a real provider login, then verify /me returns the authenticated user. Only then report OAuth setup as complete.',
111
+ }
112
+ : configPersisted
113
+ ? {
114
+ instruction: 'Verify runtime activation before asking the user to complete the provider console configuration.',
115
+ requiresUserConfirmation: false,
116
+ afterConfirmation: 'Once runtime activation is verified, present callbackUri and stop for provider-console confirmation before the real browser login test.',
117
+ tool: 'test_rest_endpoint',
118
+ input: { path: '/auth/providers', method: 'GET' },
119
+ }
120
+ : {
121
+ instruction: 'Re-read the saved non-secret provider fields and resolve persistence before asking the user to configure the provider console.',
122
+ requiresUserConfirmation: false,
123
+ afterConfirmation: 'Once persistence and runtime activation are verified, present callbackUri and stop for provider-console confirmation before the real browser login test.',
124
+ tool: 'query_table',
125
+ input: {
126
+ tableName: 'enfyra_oauth_config',
127
+ filter: { provider: { _eq: provider } },
128
+ fields: ['id', 'provider', 'redirectUri', 'autoSetCookies', 'appCallbackUrl', 'isEnabled'],
129
+ limit: 1,
130
+ },
131
+ },
132
+ });
133
+ });
134
+ }
135
+ //# sourceMappingURL=oauth-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-tools.js","sourceRoot":"","sources":["../../src/lib/oauth-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export declare function assertRecordFieldsReadable(tableName: string, fields?: string[]): void;
2
+ export declare function buildQuerySchemaReceipt(table: any, requestedFields: string[]): {
3
+ tableName: any;
4
+ primaryKey: any;
5
+ metadataChecked: boolean;
6
+ requestedFieldsValidated: boolean;
7
+ requestedTopLevelFields: string[];
8
+ };
9
+ export declare function buildDeletePostcondition(requestedIds: unknown[], remainingRecords: any[], primaryKey?: string): {
10
+ verificationMethod: string;
11
+ requestedIds: unknown[];
12
+ remainingIds: any[];
13
+ confirmedAbsent: boolean;
14
+ };
@@ -0,0 +1,56 @@
1
+ function normalizeRequestedField(field) {
2
+ return String(field).trim().replace(/^-/, '').split('.')[0];
3
+ }
4
+ const WRITE_ONLY_RECORD_FIELDS = {
5
+ enfyra_oauth_config: new Set(['clientId', 'clientSecret']),
6
+ };
7
+ export function assertRecordFieldsReadable(tableName, fields) {
8
+ const writeOnlyFields = WRITE_ONLY_RECORD_FIELDS[tableName];
9
+ if (!writeOnlyFields || !fields?.length)
10
+ return;
11
+ const requestedFields = fields
12
+ .flatMap((field) => String(field).split(','))
13
+ .map(normalizeRequestedField)
14
+ .filter(Boolean);
15
+ if (requestedFields.includes('*')) {
16
+ throw new Error(`Wildcard reads are blocked for "${tableName}" because it contains credential fields. Request only explicit non-secret fields.`);
17
+ }
18
+ const blocked = [...new Set(requestedFields.filter((field) => writeOnlyFields.has(field)))];
19
+ if (!blocked.length)
20
+ return;
21
+ throw new Error([
22
+ `Credential field(s) ${blocked.join(', ')} on "${tableName}" are write-only through setup_oauth_provider and cannot be read by MCP.`,
23
+ 'Connect the third app first, then ask the user to supply clientId and clientSecret for the setup operation.',
24
+ 'Never inspect or reuse stored OAuth credential values.',
25
+ ].join(' '));
26
+ }
27
+ export function buildQuerySchemaReceipt(table, requestedFields) {
28
+ const validFields = new Set([
29
+ ...(table?.columns ?? []).map((column) => String(column.name)),
30
+ ...(table?.relations ?? []).map((relation) => String(relation.propertyName)),
31
+ ].filter(Boolean));
32
+ const requestedTopLevelFields = [...new Set(requestedFields
33
+ .flatMap((field) => String(field).split(','))
34
+ .map(normalizeRequestedField)
35
+ .filter((field) => field && field !== '*'))];
36
+ const unknownFields = requestedTopLevelFields.filter((field) => !validFields.has(field));
37
+ if (unknownFields.length) {
38
+ throw new Error(`Unknown query_table field(s) for "${table?.name}": ${unknownFields.join(', ')}. Valid top-level fields: ${[...validFields].sort().join(', ')}.`);
39
+ }
40
+ return {
41
+ tableName: table?.name ?? null,
42
+ primaryKey: table?.primaryKey ?? null,
43
+ metadataChecked: true,
44
+ requestedFieldsValidated: true,
45
+ requestedTopLevelFields,
46
+ };
47
+ }
48
+ export function buildDeletePostcondition(requestedIds, remainingRecords, primaryKey = 'id') {
49
+ return {
50
+ verificationMethod: 'route_read_by_primary_keys',
51
+ requestedIds,
52
+ remainingIds: remainingRecords.map((record) => record?.[primaryKey] ?? record?.id ?? record?._id).filter((id) => id != null),
53
+ confirmedAbsent: remainingRecords.length === 0,
54
+ };
55
+ }
56
+ //# sourceMappingURL=record-contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-contracts.js","sourceRoot":"","sources":["../../src/lib/record-contracts.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export declare const GLOBAL_RULES_ACK_KEY = "EFYRA::GLOBAL-RULES::RUNTIME-ZONE-INVENTORY::SCHEMA-DESIGN-CONTEXT::20260717I";
1
+ export declare const GLOBAL_RULES_ACK_KEY = "EFYRA::GLOBAL-RULES::RUNTIME-ZONE-INVENTORY::SCHEMA-DESIGN-CONTEXT::20260717M";
2
2
  export declare const DYNAMIC_CODE_KNOWLEDGE_ACK_KEY = "EFYRA::DYNAMIC-REPOSITORY-CONTRACT::LOCATOR-FIRST::ASYNC-HELPER-BRIDGE::20260717B";
3
3
  export declare const EXTENSION_KNOWLEDGE_ACK_KEY = "EFYRA::EXTENSION-APP-COMPOSABLE-CONTRACT::20260716B";
4
4
  export declare function resetRequiredKnowledgeSession(): void;
@@ -1,7 +1,7 @@
1
- export const GLOBAL_RULES_ACK_KEY = 'EFYRA::GLOBAL-RULES::RUNTIME-ZONE-INVENTORY::SCHEMA-DESIGN-CONTEXT::20260717I';
1
+ export const GLOBAL_RULES_ACK_KEY = 'EFYRA::GLOBAL-RULES::RUNTIME-ZONE-INVENTORY::SCHEMA-DESIGN-CONTEXT::20260717M';
2
2
  export const DYNAMIC_CODE_KNOWLEDGE_ACK_KEY = 'EFYRA::DYNAMIC-REPOSITORY-CONTRACT::LOCATOR-FIRST::ASYNC-HELPER-BRIDGE::20260717B';
3
3
  export const EXTENSION_KNOWLEDGE_ACK_KEY = 'EFYRA::EXTENSION-APP-COMPOSABLE-CONTRACT::20260716B';
4
- const REQUIRED_KNOWLEDGE_VERSION = '2026-07-17.runtime-zone-inventory-locator-first';
4
+ const REQUIRED_KNOWLEDGE_VERSION = '2026-07-17.connect-credentials-seed-callback-order';
5
5
  const acknowledgedDomains = new Set();
6
6
  function hasExplicitAckKey(key) {
7
7
  return key !== undefined && key !== null;
@@ -119,6 +119,19 @@ const GLOBAL_RULES_SECTIONS = [
119
119
  'Never fabricate ids, field names, relation names, paths, package names, or permission scopes.',
120
120
  ],
121
121
  },
122
+ {
123
+ id: 'oauth-provider-third-app-handoff',
124
+ rules: [
125
+ 'Connect the third app to Enfyra before asking for provider credentials. Load category=connect, inspect the actual framework, and implement or verify its app-origin proxy, OAuth start action, cookieBridgePrefix, and /me session check first.',
126
+ 'Only after the app connection is verified, stop and ask the user to supply provider clientId and clientSecret, then call setup_oauth_provider with appConnectionVerified=true. OAuth credentials are write-only: never inspect, read, or reuse stored credential values through query_table, find_one_record, runtime search, or any other tool. Do not ask the user for a callback URI or use generic record CRUD for this operation.',
127
+ 'When credentials are missing from the current user request, ask only for clientId and clientSecret. Do not inspect provider state, present callbackUri, or tell the user to configure the provider console before setup_oauth_provider returns its verified receipt.',
128
+ 'A successful setup_oauth_provider call proves only that the Enfyra config was saved and loaded. It returns setupComplete=false because the provider console is still unconfirmed.',
129
+ 'Present the exact returned callbackUri and providerConsole.field, tell the user to add that URI in the provider console, then stop and wait for confirmation. Never return credentials or ask for them again after the Enfyra config is saved.',
130
+ 'After confirmation, use the OAuth button in the already connected app to complete a real provider login and verify /me. Only then report the OAuth setup as complete; /auth/providers or an existing linked OAuth account alone does not prove the current provider credentials and callback are valid.',
131
+ 'The standard browser contract is one stable proxy prefix to the Enfyra app /api bridge, an OAuth start action with an absolute redirect plus matching cookieBridgePrefix, and a /me session check after return. Do not create custom ESV login, callback, token-cookie, or refresh routes for this flow.',
132
+ 'For Nuxt routeRules proxying OAuth and /auth/set-cookies, keep fetchOptions.redirect="manual" so upstream redirects and Set-Cookie reach the browser.',
133
+ ],
134
+ },
122
135
  {
123
136
  id: 'schema-constraints',
124
137
  rules: [
@@ -1 +1 @@
1
- {"version":3,"file":"required-knowledge.js","sourceRoot":"","sources":["../../src/lib/required-knowledge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"required-knowledge.js","sourceRoot":"","sources":["../../src/lib/required-knowledge.ts"],"names":[],"mappings":"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"}
@@ -117,6 +117,13 @@ export declare function searchRuntimeZone(apiUrl: string, input: any): Promise<{
117
117
  zone: "admin_ui";
118
118
  zoneDescription: string;
119
119
  results: any[];
120
+ matchMode: string;
121
+ target: {
122
+ id: any;
123
+ name: any;
124
+ };
125
+ targetFound: boolean;
126
+ exactMatchCount: number;
120
127
  query: string;
121
128
  path: string;
122
129
  type: any;
@@ -360,10 +360,13 @@ export async function searchRuntimeZone(apiUrl, input) {
360
360
  if (!RUNTIME_ZONES.includes(zone))
361
361
  throw new Error(`Unsupported runtime zone: ${zone}`);
362
362
  if (zone === 'admin_ui') {
363
- const inventory = !String(input.query ?? '').trim() && !String(input.path ?? '').trim();
363
+ const exactLookup = input.id != null || Boolean(String(input.name ?? '').trim());
364
+ const inventory = !String(input.query ?? '').trim() && !String(input.path ?? '').trim() && !exactLookup;
364
365
  const adminResult = await searchExtensions(apiUrl, {
365
366
  query: input.query,
366
367
  path: input.path,
368
+ id: input.id,
369
+ name: input.name,
367
370
  type: input.extensionType,
368
371
  includeDisabled: input.includeDisabled,
369
372
  maxResults: input.maxResults,
@@ -626,8 +629,8 @@ export function registerRuntimeZoneTools(server, ENFYRA_API_URL) {
626
629
  mode: z.enum(['search', 'inspect']).optional().default('search').describe('search returns ranked admin UI matches. inspect opens one result using id/name/path/query.'),
627
630
  query: z.string().optional().describe('Visible text, button label, menu label, component name, class, icon, source term, or UX phrase.'),
628
631
  path: z.string().optional().describe('Menu/page path such as /cloud/hosts when known.'),
629
- id: z.union([z.string(), z.number()]).optional().describe('Extension id for mode=inspect; use nextInspect.input from search results.'),
630
- name: z.string().optional().describe('Extension name for mode=inspect.'),
632
+ id: z.union([z.string(), z.number()]).optional().describe('Exact extension id for search verification, or the extension id for mode=inspect.'),
633
+ name: z.string().optional().describe('Exact extension name for search verification, or the extension name for mode=inspect.'),
631
634
  type: z.enum(['page', 'widget', 'global']).optional().describe('Narrows extension type.'),
632
635
  includeDisabled: z.boolean().optional().default(true),
633
636
  maxResults: z.number().int().min(1).max(25).optional().default(8),