@@ -286,7 +286,7 @@ export async function callData(deps: ActionExecutionDeps,
286286 * `requiredPermissions` is ungated. Single-sourced so the REST `/actions/...`
287287 * route and the MCP `run_action` bridge enforce the SAME declaration.
288288 */
289- export function actionPermissionError ( deps : ActionExecutionDeps , actionDef : any , ec : any , objectName ?: string ) : string | null {
289+ export function actionPermissionError ( _deps : ActionExecutionDeps , actionDef : any , ec : any , objectName ?: string ) : string | null {
290290 const required : string [ ] = Array . isArray ( actionDef ?. requiredPermissions )
291291 ? actionDef . requiredPermissions
292292 : [ ] ;
@@ -315,7 +315,7 @@ export function actionPermissionError(deps: ActionExecutionDeps, actionDef: any,
315315 * data-layer backstop — therefore decides what AI may trigger. Fail-closed by
316316 * default.
317317 */
318- export function actionAiExposureError ( deps : ActionExecutionDeps , actionDef : any , objectName ?: string ) : string | null {
318+ export function actionAiExposureError ( _deps : ActionExecutionDeps , actionDef : any , objectName ?: string ) : string | null {
319319 if ( actionDef ?. ai ?. exposed === true ) return null ;
320320 const on = objectName ? ` on '${ objectName } '` : '' ;
321321 return (
@@ -331,7 +331,7 @@ export function actionAiExposureError(deps: ActionExecutionDeps, actionDef: any,
331331 * `flow` needs a `target` and an automation service. UI-only types
332332 * (`url`, `modal`, `form`) and `api` have no server dispatch here.
333333 */
334- export function isHeadlessInvokableAction ( deps : ActionExecutionDeps , action : any , hasAutomation : boolean ) : boolean {
334+ export function isHeadlessInvokableAction ( _deps : ActionExecutionDeps , action : any , hasAutomation : boolean ) : boolean {
335335 const type : string = action ?. type ?? 'script' ;
336336 if ( type === 'script' ) return Boolean ( action ?. target || action ?. body ) ;
337337 if ( type === 'flow' ) return Boolean ( action ?. target ) && hasAutomation ;
@@ -359,7 +359,7 @@ const SERVER_DISPATCHED_ACTION_TYPES: ReadonlySet<string> = new Set(['script', '
359359 * `Action '' on object '*' not found`. Naming the type and the prescription
360360 * turns that dead end into an actionable 400.
361361 */
362- export function headlessActionTypeError ( deps : ActionExecutionDeps , action : any , objectName ?: string ) : string | null {
362+ export function headlessActionTypeError ( _deps : ActionExecutionDeps , action : any , objectName ?: string ) : string | null {
363363 const type : string = action ?. type ?? 'script' ;
364364 if ( SERVER_DISPATCHED_ACTION_TYPES . has ( type ) ) return null ;
365365 const name : string = action ?. name ?? 'unknown' ;
@@ -424,7 +424,7 @@ export function flowActionUnavailableError(action: any): string {
424424 * `recordIdParam` that nothing honours is the `declared ≠ enforced` shape in
425425 * miniature.
426426 */
427- export function seedFlowActionParams ( deps : ActionExecutionDeps ,
427+ export function seedFlowActionParams ( _deps : ActionExecutionDeps ,
428428 action : any ,
429429 input : {
430430 objectName : string ;
@@ -522,7 +522,7 @@ export async function dispatchFlowAction(deps: ActionExecutionDeps,
522522 return result ?? null ;
523523}
524524
525- export function actionLooksDestructive ( deps : ActionExecutionDeps , action : any ) : boolean {
525+ export function actionLooksDestructive ( _deps : ActionExecutionDeps , action : any ) : boolean {
526526 if ( action ?. ai ?. requiresConfirmation !== undefined ) return Boolean ( action . ai . requiresConfirmation ) ;
527527 return Boolean ( action ?. confirmText || action ?. mode === 'delete' || action ?. variant === 'danger' ) ;
528528}
@@ -550,7 +550,7 @@ export function summarizeAction(deps: ActionExecutionDeps, action: any, obj: any
550550 } ;
551551}
552552
553- export function jsonTypeOf ( deps : ActionExecutionDeps , t : string | undefined ) : 'string' | 'number' | 'boolean' | 'array' {
553+ export function jsonTypeOf ( _deps : ActionExecutionDeps , t : string | undefined ) : 'string' | 'number' | 'boolean' | 'array' {
554554 switch ( t ) {
555555 case 'number' : case 'currency' : case 'percent' : case 'rating' : case 'slider' : case 'autonumber' :
556556 return 'number' ;
@@ -600,7 +600,7 @@ export function summarizeActionParams(deps: ActionExecutionDeps, action: any, ob
600600 * parent object schema (holds `.fields`); pass `undefined` for a global
601601 * action with only inline params.
602602 */
603- export function resolveDeclaredActionParams ( deps : ActionExecutionDeps , action : any , obj : any ) : ResolvedActionParam [ ] {
603+ export function resolveDeclaredActionParams ( _deps : ActionExecutionDeps , action : any , obj : any ) : ResolvedActionParam [ ] {
604604 const fields : Record < string , any > = obj ?. fields ?? { } ;
605605 const out : ResolvedActionParam [ ] = [ ] ;
606606 for ( const p of ( Array . isArray ( action ?. params ) ? action . params : [ ] ) ) {
@@ -673,7 +673,7 @@ export function enforceActionParams(deps: ActionExecutionDeps,
673673 * context-less / self-invoked call so a body can distinguish "no session" the
674674 * same way hooks do.
675675 */
676- export function buildActionSession ( deps : ActionExecutionDeps , ec : any ) : any | undefined {
676+ export function buildActionSession ( _deps : ActionExecutionDeps , ec : any ) : any | undefined {
677677 if ( ! ec || ( ec . userId == null && ec . tenantId == null ) ) return undefined ;
678678 return {
679679 ...( ec . userId != null ? { userId : String ( ec . userId ) } : { } ) ,
@@ -724,7 +724,7 @@ export function buildActionExecutionContext(ec: any): Record<string, unknown> {
724724 * facade proxied every call context-less. Returns `undefined` when the engine
725725 * predates `createContext`, leaving the sandbox's own fallback in charge.
726726 */
727- export function buildActionApi ( deps : ActionExecutionDeps , ql : any , ec : any ) : any | undefined {
727+ export function buildActionApi ( _deps : ActionExecutionDeps , ql : any , ec : any ) : any | undefined {
728728 if ( ! ql || typeof ql . createContext !== 'function' ) return undefined ;
729729 try {
730730 return ql . createContext ( buildActionExecutionContext ( ec ) ) ;
@@ -745,7 +745,7 @@ export function buildActionApi(deps: ActionExecutionDeps, ql: any, ec: any): any
745745 * and `ctx.api` write under the SAME identity (#3914); passing `ec` is what
746746 * separates a trusted write from a context-less one.
747747 */
748- export function buildActionEngineFacade ( deps : ActionExecutionDeps , ql : any , ec ?: any ) : any {
748+ export function buildActionEngineFacade ( _deps : ActionExecutionDeps , ql : any , ec ?: any ) : any {
749749 const context = buildActionExecutionContext ( ec ) ;
750750 return {
751751 async insert ( object : string , data : Record < string , unknown > ) : Promise < { id : string } > {
@@ -1007,7 +1007,7 @@ export async function collectActionDeclarations(deps: ActionExecutionDeps,
10071007 * `executeAction` will find: spec `objectName`, bundle-collector `object`,
10081008 * else the `'global'` wildcard.
10091009 */
1010- export function standaloneActionObjectName ( deps : ActionExecutionDeps , action : any ) : string {
1010+ export function standaloneActionObjectName ( _deps : ActionExecutionDeps , action : any ) : string {
10111011 if ( typeof action ?. objectName === 'string' && action . objectName . length > 0 ) return action . objectName ;
10121012 if ( typeof action ?. object === 'string' && action . object . length > 0 ) return action . object ;
10131013 return GLOBAL_ACTION_OBJECT_KEY ;
@@ -1050,7 +1050,7 @@ export function isActionNotRegisteredError(err: any): boolean {
10501050 * failed" (a business outcome, which propagates). Each surface words its own
10511051 * miss: REST 404s naming the routed object, MCP throws naming the action.
10521052 */
1053- export async function executeRegisteredAction ( deps : ActionExecutionDeps ,
1053+ export async function executeRegisteredAction ( _deps : ActionExecutionDeps ,
10541054 ql : any ,
10551055 objectName : string ,
10561056 candidates : string [ ] ,
0 commit comments