Skip to content

Class: ToolApprovalService

Makaio Framework


Makaio Framework / services-core / ToolApprovalService

Defined in: ../../../packages/services/core/src/tool-approval/tool-approval-service.ts:42

Resolves and applies tool approval policies based on the persona → profile → harness → system default cascade.

Replaces the blanket auto-approve handler that was previously in bus-server. Registered in the core runtime lifecycle.

When a file access rule provider is configured, .makaioignore rules are evaluated before the policy cascade as an absolute deny layer — no policy (not even full-access) can bypass them.

  • BaseService

new ToolApprovalService(bus, options?): ToolApprovalService

Defined in: ../../../packages/services/core/src/tool-approval/tool-approval-service.ts:52

Creates a new ToolApprovalService instance.

IMakaioBus

Bus instance used to resolve policy data and register approval handlers

ToolApprovalServiceOptions = {}

Optional configuration including a file access rule provider

ToolApprovalService

BaseService.constructor

protected readonly bus: IMakaioBus

Defined in: ../../../packages/services/base/src/base-service.ts:39

Bus instance used for registering handlers

BaseService.bus

get initialized(): boolean

Defined in: ../../../packages/services/base/src/base-service.ts:47

Whether the service has been successfully initialized.

Returns true after init() completes and before destroy() is called.

boolean

true if initialized, false otherwise

BaseService.initialized

protected addCleanup(fn): void

Defined in: ../../../packages/services/base/src/base-service.ts:143

Enqueue an arbitrary cleanup function to be called on destroy().

Use for non-handler resources (timers, external subscriptions, etc.).

() => void | Promise<void>

Function to invoke during teardown

void

BaseService.addCleanup


destroy(): Promise<void>

Defined in: ../../../packages/services/base/src/base-service.ts:89

Destroy the service and unsubscribe all registered handlers.

Calls the optional onDestroy() hook before running cleanups, then resets the initialized flag. Safe to call multiple times (idempotent).

Promise<void>

Promise that resolves after teardown completes

BaseService.destroy


init(): Promise<void>

Defined in: ../../../packages/services/base/src/base-service.ts:57

Initialize the service.

Delegates to onInit() once; subsequent calls are no-ops (idempotent).

Promise<void>

Promise that resolves when initialization is complete

BaseService.init


protected optional onDestroy(): void | Promise<void>

Defined in: ../../../packages/services/base/src/base-service.ts:163

Optional service teardown hook.

Called by destroy() before automatic handler unsubscription. Implement only when there are resources beyond bus handlers to clean up (e.g., stopping trackers, clearing maps, releasing external handles).

void | Promise<void>

BaseService.onDestroy


protected onInit(): Promise<void>

Defined in: ../../../packages/services/core/src/tool-approval/tool-approval-service.ts:60

Register the tool approval handler.

Promise<void>

BaseService.onInit


protected registerHandler<S>(subject, handler): void

Defined in: ../../../packages/services/base/src/base-service.ts:129

Register a bus handler and enqueue its unsubscribe function for teardown.

Equivalent to this._cleanups.push(this.bus.on(subject, handler)).

S extends SubjectDefinition

S

The subject definition to listen on

HandlerForSubjectDefinition<S>

Handler function for the subject

void

BaseService.registerHandler