c3d0bd9773
- Introduce `deferrable?: boolean` on AgentTool, CustomTool, and ToolDefinition. AstEditTool sets it to true; resolve is now injected only when at least one active tool is deferrable (previously unconditional). - Replace single-slot PendingActionStore (set/get/clear) with a LIFO stack (push/peek/pop/clear). Multiple deferrable tools can stage independent preview actions; resolve always consumes the topmost one first. - Wire pendingActionStore through discoverAndLoadCustomTools / loadCustomTools / CustomToolLoader so custom tools can call pushPendingAction(action) to register a resolve-compatible pending action with label, apply callback, optional details, and optional sourceToolName. - Export HIDDEN_TOOLS and ResolveTool from the SDK for manual tool composition. - Add CustomToolPendingAction type and pushPendingAction to CustomToolAPI. - Update createAgentSession to re-inject or remove resolve after the deferrable audit, consistent with createTools behavior. - Add LIFO resolve test, update existing tests (set -> push, get -> peek). - Add docs/resolve-tool-runtime.md covering PendingActionStore internals, built-in producer example, and custom tool usage guide.