Skip to content

Session paths

session_paths

Session-local path preparation for both MCP exposure routes.

path_defaults(fn)

Retain implicit filesystem roots from the tool's invocation signature.

Source code in packages/axm-mcp/src/axm_mcp/session_paths.py
Python
def path_defaults(fn: object) -> dict[str, object]:
    """Retain implicit filesystem roots from the tool's invocation signature."""
    if not callable(fn):
        return {}
    try:
        params = inspect.signature(fn).parameters
    except (TypeError, ValueError):
        return {}
    return {
        name: param.default
        for name, param in params.items()
        if _is_root_key(name)
        and param.default is not inspect.Parameter.empty
        and param.default is not None
    }

resolve_session_paths(payload, defaults, contract)

Canonicalize once in place; authorization and execution consume this payload.

Never changes process cwd or environment: concurrent sessions retain independent bases. Absolute read roots may name external dependencies; mutation authorization subsequently enforces the write perimeter.

Source code in packages/axm-mcp/src/axm_mcp/session_paths.py
Python
def resolve_session_paths(
    payload: dict[str, object],
    defaults: Mapping[str, object],
    contract: WriteContract | None,
) -> None:
    """Canonicalize once in place; authorization and execution consume this payload.

    Never changes process cwd or environment: concurrent sessions retain independent
    bases. Absolute read roots may name external dependencies; mutation authorization
    subsequently enforces the write perimeter.
    """
    from axm.tools.session_paths import resolve_session_paths as resolve_shared

    resolve_shared(payload, defaults, contract)