Entropic 2.14.3
Local-first agentic inference engine
Loading...
Searching...
No Matches
entropic::SessionRootInterface Struct Reference

Where a session's tools live, and what it can reach (gh#160). More...

#include <entropic/core/engine_types.h>

Public Attributes

std::filesystem::path(* resolve_root )(const std::string &session_key, void *user_data) = nullptr
 Root directory this session's MCP tools resolve against.
 
std::vector< std::string >(* unsafe_external_tools )(const std::string &session_key, const std::vector< std::string > &allowed_tools, void *user_data) = nullptr
 Child-visible EXTERNAL tools that are not declared read-only.
 
void * user_data = nullptr
 Opaque pointer (facade context)
 

Detailed Description

Where a session's tools live, and what it can reach (gh#160).

Injected by the facade, like TierResolutionInterface (decision #23): core.so cannot see the ServerManager — it lives on the facade handle — yet the sandbox root has to BE the root the tools actually resolve against, or the snapshot diffs a tree nobody wrote to. That mismatch is gh#160: the engine snapshotted its own repo_dir, the filesystem/bash/ git servers used mcp.working_dir, and the resulting patch was 0 bytes.

This is deliberately ONE seam. gh#166 re-points resolve_root at the session's named workspace without any other part of the delegation wiring changing.

Version
2.13.0

Definition at line 327 of file engine_types.h.

Member Data Documentation

◆ resolve_root

std::filesystem::path(* entropic::SessionRootInterface::resolve_root) (const std::string &session_key, void *user_data) = nullptr

Root directory this session's MCP tools resolve against.

Parameters
session_keyCaller-scoped session key ("" = default session).
user_dataOpaque pointer (facade handle).
Returns
Absolute root, or empty when none is configured.

Definition at line 332 of file engine_types.h.

◆ unsafe_external_tools

std::vector< std::string >(* entropic::SessionRootInterface::unsafe_external_tools) (const std::string &session_key, const std::vector< std::string > &allowed_tools, void *user_data) = nullptr

Child-visible EXTERNAL tools that are not declared read-only.

An external (stdio/SSE) MCP server is a separate process with its own cwd; nothing the engine does can move it into a sandbox. If the child can call one that may write, the isolation guarantee is false, so the delegation is refused rather than silently downgraded.

Parameters
session_keySession the delegation runs under.
allowed_toolsChild's tool allow-list (empty = everything).
user_dataOpaque pointer (facade handle).
Returns
Fully-qualified names of tools lacking readOnlyHint: true.

Definition at line 332 of file engine_types.h.

◆ user_data

void* entropic::SessionRootInterface::user_data = nullptr

Opaque pointer (facade context)

Definition at line 351 of file engine_types.h.


The documentation for this struct was generated from the following file: