import { AsyncLocalStorage } from 'node:async_hooks';

export interface RequestContext {
  token: string;
  sessionId: string; // Used to isolate drafts
  claims: any;
}

export const requestContext = new AsyncLocalStorage<RequestContext>();

export const getContext = () => {
  const context = requestContext.getStore();
  if (!context) {
    throw new Error("Unauthorized: Tool called outside of an authenticated request context.");
  }
  return context;
};