/** * Extended MCP Tools — Phase 6 Part 2 * * Exposes budget, token, and audit operations as MCP-compatible tools so * an external AI agent can manage Network-AI's security and resource planes * without any code changes. * * Tool groups: * Budget — budget_status, budget_spend, budget_reset, budget_set_ceiling, budget_get_log * Token — token_validate, token_revoke, token_create * Audit — audit_query, audit_tail * * @module mcp-tools-extended * @version 1.0.0 */ import type { MCPToolDefinition, BlackboardToolResult } from './mcp-blackboard-tools'; import type { McpToolProvider } from './mcp-transport-sse'; /** Minimal FederatedBudget surface needed by the tools. */ export interface IBudget { spend(agentId: string, tokens: number): { allowed: boolean; remaining: number; deniedReason?: string; }; remaining(): number; getTotalSpent(): number; getCeiling(): number; getSpendLog(): Record; getTransactionLog(): Array<{ agentId: string; tokens: number; timestamp: string; }>; setCeiling(ceiling: number): void; reset(): void; } /** Minimal SecureTokenManager surface needed by the tools. */ export interface ITokenManager { generateToken(agentId: string, resourceType: string, scope: string): { tokenId: string; agentId: string; resourceType: string; scope: string; issuedAt: number; expiresAt: number; signature: string; }; validateToken(token: { tokenId: string; agentId: string; resourceType: string; scope: string; issuedAt: number; expiresAt: number; signature: string; }): { valid: boolean; reason?: string; }; revokeToken(tokenId: string): void; } /** Options for `ExtendedMcpTools`. All dependencies are optional. */ export interface ExtendedMcpToolsOptions { /** FederatedBudget instance. Budget tools are disabled if not provided. */ budget?: IBudget; /** SecureTokenManager instance. Token tools are disabled if not provided. */ tokenManager?: ITokenManager; /** Absolute path to the audit log JSONL file. Defaults to `./data/audit_log.jsonl`. */ auditLogPath?: string; } /** * MCP tool provider for budget, token, and audit operations. * * All three categories are optional — only provide the services you need. * Tools for missing services return a clear `{ ok: false, error }` response. * * @example * ```typescript * import { FederatedBudget, SecureTokenManager } from 'network-ai'; * import { ExtendedMcpTools } from 'network-ai'; * * const tools = new ExtendedMcpTools({ * budget: new FederatedBudget({ ceiling: 100_000 }), * tokenManager: new SecureTokenManager(), * auditLogPath: './data/audit_log.jsonl', * }); * * // Register with McpCombinedBridge * combined.register(tools); * ``` */ export declare class ExtendedMcpTools implements McpToolProvider { private readonly _budget?; private readonly _tokenManager?; private readonly _auditLogPath; constructor(options?: ExtendedMcpToolsOptions); getDefinitions(): MCPToolDefinition[]; call(toolName: string, args: Record): Promise; private _budgetStatus; private _budgetSpend; private _budgetReset; private _budgetSetCeiling; private _budgetGetLog; private _noBudget; private _tokenCreate; private _tokenValidate; private _tokenRevoke; private _noTokenManager; private _auditQuery; private _auditTail; private _readAuditLog; } //# sourceMappingURL=mcp-tools-extended.d.ts.map