public void invokeAutoApprove(AIPlatformValue aiPlatformValue) throws LatherRemoteException {
   try {
     autoinventoryManager.invokeAutoApprove(aiPlatformValue);
   } catch (AutoinventoryException exc) {
     log.error("Error in invokeAutoApprove: " + exc.getMessage(), exc);
     throw new LatherRemoteException(exc.getMessage());
   }
 }
  /**
   * Called by agents to report resources detected via runtime autoinventory scans, using the
   * monitoring interfaces to a server.
   */
  private NullLatherValue cmdAiSendRuntimeReport(AiSendRuntimeReport_args arg)
      throws LatherRemoteException {

    try {
      autoinventoryManager.reportAIRuntimeReport(arg.getAgentToken(), arg.getReport());
    } catch (Exception exc) {
      log.error("Runtime report error: " + exc.getMessage(), exc);
    }

    return NullLatherValue.INSTANCE;
  }
  /**
   * Called by agents to report platforms, servers, and services detected via autoinventory scans.
   */
  private LatherValue cmdAiSendReport(AiSendReport_args args) throws LatherRemoteException {

    ScanStateCore core = args.getCore();

    try {
      AIPlatformValue aiPlatformValue =
          autoinventoryManager.reportAIData(args.getAgentToken(), core);
      return aiPlatformValue == null
          ? NullLatherValue.INSTANCE
          : new AiPlatformLatherValue(aiPlatformValue);
    } catch (AutoinventoryException exc) {
      log.error("Error in AiSendReport: " + exc.getMessage(), exc);
      throw new LatherRemoteException(exc.getMessage(), exc);
    }
  }