import { NODE_SYSTEM_RUN_COMMANDS } from "./node-commands.js";

export type NodeApprovalScope = "operator.pairing" | "operator.write" | "operator.admin";

export const OPERATOR_PAIRING_SCOPE: NodeApprovalScope = "operator.pairing";
export const OPERATOR_WRITE_SCOPE: NodeApprovalScope = "operator.write";
export const OPERATOR_ADMIN_SCOPE: NodeApprovalScope = "operator.admin";

export function resolveNodePairApprovalScopes(commands: unknown): NodeApprovalScope[] {
  const normalized = Array.isArray(commands)
    ? commands.filter((command): command is string => typeof command === "string")
    : [];
  if (
    normalized.some((command) => NODE_SYSTEM_RUN_COMMANDS.some((allowed) => allowed === command))
  ) {
    return [OPERATOR_PAIRING_SCOPE, OPERATOR_ADMIN_SCOPE];
  }
  if (normalized.length > 0) {
    return [OPERATOR_PAIRING_SCOPE, OPERATOR_WRITE_SCOPE];
  }
  return [OPERATOR_PAIRING_SCOPE];
}
