You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nlpcraft.apache.org by ar...@apache.org on 2021/12/05 18:58:29 UTC

[incubator-nlpcraft] branch master updated: WIP

This is an automated email from the ASF dual-hosted git repository.

aradzinski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git


The following commit(s) were added to refs/heads/master by this push:
     new c955230  WIP
c955230 is described below

commit c955230da84522337f8a8548347820f51a0f6840
Author: Nikita Ivanov <>
AuthorDate: Sun Dec 5 10:58:20 2021 -0800

    WIP
---
 LICENSE                                            |  4 +-
 bindist/LICENSE                                    |  4 +-
 bindist/NOTICE                                     |  4 +-
 javadoc/resources/sh/scripts/shBrushPhp.js         |  2 +-
 javadoc/resources/sh/scripts/shCore.js             | 10 +--
 .../{model/NCModel.java => NCContext.java}         |  9 +--
 .../{model/NCModel.java => NCConversation.java}    |  9 +--
 .../apache/nlpcraft/{common => }/NCException.java  |  2 +-
 .../org/apache/nlpcraft/{model => }/NCIntent.java  |  2 +-
 .../{model/NCModel.java => NCIntentMatch.java}     |  9 +--
 .../apache/nlpcraft/{model => }/NCIntentRef.java   |  2 +-
 .../nlpcraft/{model => }/NCIntentSample.java       |  2 +-
 .../nlpcraft/{model => }/NCIntentSampleRef.java    |  2 +-
 .../apache/nlpcraft/{model => }/NCIntentSkip.java  |  4 +-
 .../apache/nlpcraft/{model => }/NCIntentTerm.java  |  2 +-
 .../nlpcraft/{model => }/NCMacroProcessor.java     |  9 ++-
 .../org/apache/nlpcraft/{model => }/NCModel.java   |  2 +-
 .../nlpcraft/{model => }/NCModelAdapter.java       |  2 +-
 .../nlpcraft/{model => }/NCModelAddClasses.java    |  2 +-
 .../nlpcraft/{model => }/NCModelAddPackage.java    |  2 +-
 .../apache/nlpcraft/{model => }/NCModelConfig.java |  2 +-
 .../{model => }/NCModelConfigFileAdapter.java      |  2 +-
 .../apache/nlpcraft/{model => }/NCRejection.java   |  4 +-
 .../main/scala/org/apache/nlpcraft/NCRequest.java  | 82 ++++++++++++++++++++++
 .../org/apache/nlpcraft/{model => }/NCResult.java  |  5 +-
 .../org/apache/nlpcraft/{model => }/NCToken.java   | 27 ++-----
 .../{common => internal}/ansi/NCAnsi.scala         | 16 ++---
 .../ansi/NCAnsiProgressBar.scala                   |  6 +-
 .../{common => internal}/ansi/NCAnsiSpinner.scala  |  8 +--
 .../antlr4/NCCompilerUtils.scala                   |  6 +-
 .../{common => internal}/ascii/NCAsciiTable.scala  | 11 +--
 .../makro/NCMacroCompiler.scala                    | 15 ++--
 .../makro/NCMacroJavaParser.java                   |  2 +-
 .../makro/NCMacroJavaParserTrait.java              |  2 +-
 .../{common => internal}/makro/NCMacroParser.scala | 11 ++-
 .../makro/antlr4/NCMacroDsl.g4                     |  0
 .../makro/antlr4/NCMacroDsl.interp                 |  0
 .../makro/antlr4/NCMacroDsl.tokens                 |  0
 .../makro/antlr4/NCMacroDslBaseListener.java       |  4 +-
 .../makro/antlr4/NCMacroDslLexer.interp            |  0
 .../makro/antlr4/NCMacroDslLexer.java              |  7 +-
 .../makro/antlr4/NCMacroDslLexer.tokens            |  0
 .../makro/antlr4/NCMacroDslListener.java           |  4 +-
 .../makro/antlr4/NCMacroDslParser.java             |  8 +--
 .../{common => internal}/util/NCUtils.scala        |  9 ++-
 .../{common => internal}/version/NCVersion.scala   |  6 +-
 46 files changed, 179 insertions(+), 142 deletions(-)

diff --git a/LICENSE b/LICENSE
index 7d59ef4..c9794dd 100644
--- a/LICENSE
+++ b/LICENSE
@@ -201,7 +201,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 
-File org.apache.nlpcraft.common.blowfish.NCBlowfishHasher.java is based on
+File org.apache.nlpcraft.internal.blowfish.NCBlowfishHasher.java is based on
 https://github.com/jeremyh/jBCrypt/blob/master/src/main/java/org/mindrot/BCrypt.java
 and licensed as follows:
 
@@ -223,7 +223,7 @@ Files in src/main/resources/moby folder are released by Grady Ward into the publ
    - https://en.wikipedia.org/wiki/Moby_Project
    - http://cs.sru.edu/~ddailey/whence.html
 
-File org.apache.nlpcraft.common.util.NCIdGenerator.java
+File org.apache.nlpcraft.internal.util.NCIdGenerator.java
 is loosely based on https://github.com/peet/Hashids.java that is licensed under MIT license:
    - Copyright (C) Ivan Akimov
    - Copyright (C) Peet Goddard
diff --git a/bindist/LICENSE b/bindist/LICENSE
index 7f4c352..16bebe4 100644
--- a/bindist/LICENSE
+++ b/bindist/LICENSE
@@ -204,7 +204,7 @@
 Files under 'nlpcraft/src/main/resources/moby' folder are public domain. See
 https://en.wikipedia.org/wiki/Moby_Project for more information.
 
-File org.apache.nlpcraft.common.util.NCIdGenerator.java is based on https://github.com/peet/hashids.java
+File org.apache.nlpcraft.internal.util.NCIdGenerator.java is based on https://github.com/peet/hashids.java
 and licensed under MIT license:
 
     Copyright (C) 2012 Ivan Akimov
@@ -223,7 +223,7 @@ and licensed under MIT license:
     CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
     DEALINGS IN THE SOFTWARE.
 
-File org.apache.nlpcraft.common.blowfish.NCBlowfishHasher.java is based on 
+File org.apache.nlpcraft.internal.blowfish.NCBlowfishHasher.java is based on
 https://github.com/jeremyh/jBCrypt/blob/master/src/main/java/org/mindrot/BCrypt.java
 and licensed as follows:
 
diff --git a/bindist/NOTICE b/bindist/NOTICE
index c44a408..add790b 100644
--- a/bindist/NOTICE
+++ b/bindist/NOTICE
@@ -4,10 +4,10 @@ Copyright (C) 2021 The Apache Software Foundation
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
 
-File org.apache.nlpcraft.common.util.NCIdGenerator.java.
+File org.apache.nlpcraft.internal.util.NCIdGenerator.java.
 Based on https://github.com/peet/hashids.java
 Copyright (C) 2012 Ivan Akimov
 
-File org.apache.nlpcraft.common.blowfish.NCBlowfishHasher.java.
+File org.apache.nlpcraft.internal.blowfish.NCBlowfishHasher.java.
 Based on https://github.com/jeremyh/jBCrypt/blob/master/src/main/java/org/mindrot/BCrypt.java
 Copyright (C) 2006 Damien Miller <dj...@mindrot.org>
diff --git a/javadoc/resources/sh/scripts/shBrushPhp.js b/javadoc/resources/sh/scripts/shBrushPhp.js
index 823f336..9178141 100755
--- a/javadoc/resources/sh/scripts/shBrushPhp.js
+++ b/javadoc/resources/sh/scripts/shBrushPhp.js
@@ -54,7 +54,7 @@
 			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },			// double quoted strings
 			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },			// single quoted strings
 			{ regex: /\$\w+/g,											css: 'variable' },			// variables
-			{ regex: new RegExp(this.getKeywords(funcs), 'gmi'),		css: 'functions' },			// common functions
+			{ regex: new RegExp(this.getKeywords(funcs), 'gmi'),		css: 'functions' },			// internal functions
 			{ regex: new RegExp(this.getKeywords(constants), 'gmi'),	css: 'constants' },			// constants
 			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),		css: 'keyword' }			// keyword
 			];
diff --git a/javadoc/resources/sh/scripts/shCore.js b/javadoc/resources/sh/scripts/shCore.js
index 476360b..7870fea 100755
--- a/javadoc/resources/sh/scripts/shCore.js
+++ b/javadoc/resources/sh/scripts/shCore.js
@@ -918,7 +918,7 @@ function trim(str)
 };
 
 /**
- * Unindents a block of text by the lowest common indent amount.
+ * Unindents a block of text by the lowest internal indent amount.
  * @param {String} str   Text to unindent.
  * @return {String}      Returns unindented text block.
  */
@@ -930,7 +930,7 @@ function unindent(str)
 		min = 1000
 		;
 	
-	// go through every line and check for common number of indents
+	// go through every line and check for internal number of indents
 	for (var i = 0; i < lines.length && min > 0; i++) 
 	{
 		var line = lines[i];
@@ -948,7 +948,7 @@ function unindent(str)
 		min = Math.min(matches[0].length, min);
 	}
 	
-	// trim minimum common number of white space from the begining of every line
+	// trim minimum internal number of white space from the begining of every line
 	if (min > 0) 
 		for (var i = 0; i < lines.length; i++) 
 			lines[i] = lines[i].substr(min);
@@ -1032,7 +1032,7 @@ function processUrls(code)
 			match = null
 			;
 		
-		// We include &lt; and &gt; in the URL for the common cases like <http://google.com>
+		// We include &lt; and &gt; in the URL for the internal cases like <http://google.com>
 		// The problem is that they get transformed into &lt;http://google.com&gt;
 		// Where as &gt; easily looks like part of the URL string.
 	
@@ -1569,7 +1569,7 @@ sh.Highlighter.prototype = {
 			: processTabs(code, tabSize)
 			;
 
-		// unindent code by the common indentation
+		// unindent code by the internal indentation
 		code = unindent(code);
 
 		if (gutter)
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModel.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCContext.java
similarity index 86%
copy from nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModel.java
copy to nlpcraft/src/main/scala/org/apache/nlpcraft/NCContext.java
index b88e7a0..91248eb 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModel.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCContext.java
@@ -15,15 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.model;
+package org.apache.nlpcraft;
 
 /**
  *
  */
-public interface NCModel {
-    /**
-     *
-     * @return
-     */
-    NCModelConfig getConfig();
+public interface NCContext {
 }
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModel.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCConversation.java
similarity index 86%
copy from nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModel.java
copy to nlpcraft/src/main/scala/org/apache/nlpcraft/NCConversation.java
index b88e7a0..dd93935 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModel.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCConversation.java
@@ -15,15 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.model;
+package org.apache.nlpcraft;
 
 /**
  *
  */
-public interface NCModel {
-    /**
-     *
-     * @return
-     */
-    NCModelConfig getConfig();
+public interface NCConversation {
 }
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/NCException.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCException.java
similarity index 97%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/common/NCException.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/NCException.java
index 157ebb0..597a3af 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/NCException.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.common;
+package org.apache.nlpcraft;
 
 /**
  * Base NLPCraft exception.
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCIntent.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntent.java
similarity index 99%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCIntent.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntent.java
index c8963e1..d552f67 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCIntent.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntent.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.model;
+package org.apache.nlpcraft;
 
 import java.lang.annotation.*;
 
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModel.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntentMatch.java
similarity index 86%
copy from nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModel.java
copy to nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntentMatch.java
index b88e7a0..7aa3638 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModel.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntentMatch.java
@@ -15,15 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.model;
+package org.apache.nlpcraft;
 
 /**
  *
  */
-public interface NCModel {
-    /**
-     *
-     * @return
-     */
-    NCModelConfig getConfig();
+public interface NCIntentMatch {
 }
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCIntentRef.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntentRef.java
similarity index 98%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCIntentRef.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntentRef.java
index 3348ffe..4976add 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCIntentRef.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntentRef.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.model;
+package org.apache.nlpcraft;
 
 import java.lang.annotation.*;
 
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCIntentSample.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntentSample.java
similarity index 99%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCIntentSample.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntentSample.java
index b18f44a..8f4bda6 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCIntentSample.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntentSample.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.model;
+package org.apache.nlpcraft;
 
 import java.lang.annotation.*;
 import static java.lang.annotation.ElementType.METHOD;
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCIntentSampleRef.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntentSampleRef.java
similarity index 99%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCIntentSampleRef.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntentSampleRef.java
index 7df7228..8993864 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCIntentSampleRef.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntentSampleRef.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.model;
+package org.apache.nlpcraft;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.Repeatable;
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCIntentSkip.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntentSkip.java
similarity index 97%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCIntentSkip.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntentSkip.java
index a04ccd1..9b3cc2e 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCIntentSkip.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntentSkip.java
@@ -15,9 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.model;
-
-import org.apache.nlpcraft.common.*;
+package org.apache.nlpcraft;
 
 /**
  * Control flow exception to skip current intent. This exception can be thrown by the intent
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCIntentTerm.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntentTerm.java
similarity index 98%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCIntentTerm.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntentTerm.java
index d8302ac..c652420 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCIntentTerm.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntentTerm.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.model;
+package org.apache.nlpcraft;
 
 import java.lang.annotation.*;
 
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCMacroProcessor.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCMacroProcessor.java
similarity index 93%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCMacroProcessor.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/NCMacroProcessor.java
index e053152..a9b935f 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCMacroProcessor.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCMacroProcessor.java
@@ -15,10 +15,9 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.model;
+package org.apache.nlpcraft;
 
-import org.apache.nlpcraft.common.NCException;
-import org.apache.nlpcraft.common.makro.NCMacroJavaParserTrait;
+import org.apache.nlpcraft.internal.makro.NCMacroJavaParserTrait;
 
 import java.util.Set;
 
@@ -38,11 +37,11 @@ public class NCMacroProcessor {
     // Need to do that in order to avoid Javadoc failures due to mixed Scala/Java project.
     private static NCMacroJavaParserTrait mkImpl() {
         try {
-            return (NCMacroJavaParserTrait)Class.forName("org.apache.nlpcraft.common.makro.NCMacroJavaParser")
+            return (NCMacroJavaParserTrait)Class.forName("org.apache.nlpcraft.internal.makro.NCMacroJavaParser")
                 .getDeclaredConstructor().newInstance();
         }
         catch (Exception e) {
-            throw new NCException("Error initializing object of type: org.apache.nlpcraft.common.makro.NCMacroJavaParser", e);
+            throw new NCException("Error initializing object of type: org.apache.nlpcraft.internal.makro.NCMacroJavaParser", e);
         }
     }
 
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModel.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModel.java
similarity index 96%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModel.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/NCModel.java
index b88e7a0..80643d0 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModel.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModel.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.model;
+package org.apache.nlpcraft;
 
 /**
  *
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModelAdapter.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelAdapter.java
similarity index 97%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModelAdapter.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelAdapter.java
index 8dab3e1..8298add 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModelAdapter.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelAdapter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.model;/*
+package org.apache.nlpcraft;/*
    _________            ______________
    __  ____/_______________  __ \__  /_____ _____  __
    _  /    _  __ \_  ___/_  /_/ /_  /_  __ `/_  / / /
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModelAddClasses.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelAddClasses.java
similarity index 98%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModelAddClasses.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelAddClasses.java
index d8241d4..37ccea5 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModelAddClasses.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelAddClasses.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.model;
+package org.apache.nlpcraft;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModelAddPackage.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelAddPackage.java
similarity index 98%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModelAddPackage.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelAddPackage.java
index 41ca9dc..ce7ac84 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModelAddPackage.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelAddPackage.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.model;
+package org.apache.nlpcraft;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModelConfig.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelConfig.java
similarity index 99%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModelConfig.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelConfig.java
index 94dc3f8..85be781 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModelConfig.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelConfig.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.model;/*
+package org.apache.nlpcraft;/*
    _________            ______________
    __  ____/_______________  __ \__  /_____ _____  __
    _  /    _  __ \_  ___/_  /_/ /_  /_  __ `/_  / / /
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModelConfigFileAdapter.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelConfigFileAdapter.java
similarity index 97%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModelConfigFileAdapter.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelConfigFileAdapter.java
index a0031e6..714a072 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModelConfigFileAdapter.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelConfigFileAdapter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.model;/*
+package org.apache.nlpcraft;/*
    _________            ______________
    __  ____/_______________  __ \__  /_____ _____  __
    _  /    _  __ \_  ___/_  /_/ /_  /_  __ `/_  / / /
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCRejection.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCRejection.java
similarity index 96%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCRejection.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/NCRejection.java
index 6ae83b3..f063895 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCRejection.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCRejection.java
@@ -15,9 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.model;
-
-import org.apache.nlpcraft.common.*;
+package org.apache.nlpcraft;
 
 /**
  * Exception to indicate that user input cannot be processed as is. This exception can be thrown from
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCRequest.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCRequest.java
new file mode 100644
index 0000000..09b0e33
--- /dev/null
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCRequest.java
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.nlpcraft;
+
+import java.util.Map;
+import java.util.Optional;
+
+/**
+ * Information about the user request.
+ *
+ * @see NCContext#getRequest()
+ */
+public interface NCRequest {
+    /**
+     * Gets ID of the user on behalf of which this request was submitted.
+     *
+     * @return User ID.
+     */
+    String getUserId();
+
+    /**
+     * Gets globally unique ID of the current request.
+     * <p>
+     * A request is defined as a processing of a one user input request.
+     * Note that the model can be accessed multiple times during processing of a single user request
+     * and therefore multiple instances of this interface can return the same request ID. In fact, users
+     * of this interfaces can use this fact by using this ID, for example, as a map key for a session
+     * scoped storage.
+     *
+     * @return Request ID.
+     */
+    String getRequestId();
+
+    /**
+     * Gets normalized text of the user input.
+     *
+     * @return Normalized text of the user input.
+     */
+    String getNormalizedText();
+
+    /**
+     *
+     * @return
+     */
+    String getOriginalText();
+
+    /**
+     * Gets UTC/GMT timestamp in millis when user input was received.
+     *
+     * @return UTC/GMT timestamp in ms when user input was received.
+     */
+    long getReceiveTimestamp();
+
+    /**
+     * Gets string representation of the user agent that made the call with this request.
+     *
+     * @return User agent description (web browser, REST client, etc.).
+     */
+    Optional<String> getUserAgent();
+
+    /**
+     * Gets optional user request data.
+     *
+     * @return Optional user request data, can be empty but never {@code null}.
+     */
+    Map<String, Object> getRequestData();
+}
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCResult.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCResult.java
similarity index 98%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCResult.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/NCResult.java
index 84c4b08..1d26f50 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCResult.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCResult.java
@@ -15,10 +15,9 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.model;
+package org.apache.nlpcraft;
 
-import org.apache.nlpcraft.common.NCException;
-import org.apache.nlpcraft.common.util.*;
+import org.apache.nlpcraft.internal.util.*;
 
 import java.io.Serializable;
 import java.util.Collection;
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCToken.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCToken.java
similarity index 89%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCToken.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/NCToken.java
index f0a26a5..d777e74 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCToken.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCToken.java
@@ -15,25 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.model;
+package org.apache.nlpcraft;
 
 import java.util.List;
 
 /**
- * Detected model element.
- * <p>
- * Read full documentation in <a target=_ href="https://nlpcraft.apache.org/data-model.html">Data Model</a> section and review
- * <a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples">examples</a>.
  *
- * @see NCElement
  */
 public interface NCToken {
-    /**
-     * Gets reference to the configuratrion of the model this token belongs to.
-     *
-     * @return Model configuration reference.
-     */
-    NCModelConfig getModelConfig();
 
     /**
      * Gets ID of the request this token is part of.
@@ -43,12 +32,8 @@ public interface NCToken {
     String getRequestId();
 
     /**
-     * If this token represents user defined model element this method returns
-     * the ID of that element. Otherwise, it returns ID of the built-in system token.
-     * Note that a sentence can have multiple tokens with the same element ID. 
      *
-     * @return ID of the element (system or user defined).
-     * @see NCElement#getId()
+     * @return
      */
     String getId();
 
@@ -131,7 +116,7 @@ public interface NCToken {
     int getEndCharIndex();
 
     /**
-     * A shortcut method checking whether this token is a stopword. Stopwords are some extremely common
+     * A shortcut method checking whether this token is a stopword. Stopwords are some extremely internal
      * words which add little value in helping to understand user input and are excluded from the
      * processing entirely. For example, words like a, the, can, of, about, over, etc. are
      * typical stopwords in English. NLPCraft has built-in set of stopwords.
@@ -200,7 +185,7 @@ public interface NCToken {
 
     /**
      * A shortcut method on whether this token is a swear word. NLPCraft has built-in list of
-     * common English swear words.
+     * internal English swear words.
      * <p>
      * This method is equivalent to:
      * <pre class="brush: java">
@@ -215,7 +200,7 @@ public interface NCToken {
     /**
      * A shortcut method to get lemma of this token, i.e. a canonical form of this word. Note that
      * stemming and lemmatization allow reducing inflectional forms and sometimes derivationally related
-     * forms of a word to a common base form. Lemmatization refers to the use of a vocabulary and
+     * forms of a word to a internal base form. Lemmatization refers to the use of a vocabulary and
      * morphological analysis of words, normally aiming to remove inflectional endings only and to
      * return the base or dictionary form of a word, which is known as the lemma.
      * <p>
@@ -231,7 +216,7 @@ public interface NCToken {
 
     /**
      * A shortcut method to get stem of this token. Note that stemming and lemmatization allow to reduce
-     * inflectional forms and sometimes derivationally related forms of a word to a common base form.
+     * inflectional forms and sometimes derivationally related forms of a word to a internal base form.
      * Unlike lemma, stemming is a basic heuristic process that chops off the ends of words in the
      * hope of achieving this goal correctly most of the time, and often includes the removal of derivational affixes.
      * <p>
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsi.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ansi/NCAnsi.scala
similarity index 95%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsi.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ansi/NCAnsi.scala
index dc9be26..895bb94 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsi.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ansi/NCAnsi.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.common.ansi
+package org.apache.nlpcraft.internal.ansi
 
 import com.typesafe.scalalogging.LazyLogging
-import org.apache.nlpcraft.common.*
-import org.apache.nlpcraft.common.util.NCUtils
+import org.apache.nlpcraft.internal.*
+import org.apache.nlpcraft.internal.util.NCUtils
 
 /**
   *
@@ -51,8 +51,8 @@ sealed trait NCAnsi extends LazyLogging:
     private final val CYAN_B = s"${CSI}46m"
     private final val WHITE_B = s"${CSI}47m"
 
-    def ansi256Fg(color: Int) = if (isEnabled) s"[38;5;${color}m" else ""
-    def ansi256Bg(color: Int) = if (isEnabled) s"[48;5;${color}m" else ""
+    def ansi256Fg(color: Int): String = if (isEnabled) s"[38;5;${color}m" else ""
+    def ansi256Bg(color: Int): String = if (isEnabled) s"[48;5;${color}m" else ""
     def ansi256Fg(fgColor: Int, s: Any): String = s"${ansi256Fg(fgColor)}${s.toString}$ansiReset"
     def ansi256(fgColor: Int, bgColor: Int, s: Any): String = s"${ansi256Fg(fgColor)}${ansi256Bg(bgColor)}${s.toString}$ansiReset"
 
@@ -80,8 +80,8 @@ sealed trait NCAnsi extends LazyLogging:
     private final val CURSOR_POS_RESTORE = s"${CSI}u"
     private final val CURSOR_LINE_HOME = s"${CSI}0G"
     private final val CURSOR_SCREEN_HOME = s"${CSI}H"
-    private final val CURSOR_HIDE = s"${CSI}?25l"
-    private final val CURSOR_SHOW = s"${CSI}?25h"
+    private final val CURSOR_HIDE = s"$CSI?25l"
+    private final val CURSOR_SHOW = s"$CSI?25h"
 
     def isEnabled: Boolean = !NCUtils.isSysEnvTrue(PROP)
 
@@ -223,5 +223,5 @@ object NCAnsi extends NCAnsi:
       */
     def ackStatus(): Unit =
         if isEnabled then
-            logger.info(s"${NCUtils.bgRainbow4Bit("ANSI")} coloring is enabled. Use '-D${ansiCyanFg}NLPCRAFT_ANSI_COLOR_DISABLED${ansiReset}=true' to disable it.", 130, 147)
+            logger.info(s"${NCUtils.bgRainbow4Bit("ANSI")} coloring is enabled. Use '-D${ansiCyanFg}NLPCRAFT_ANSI_COLOR_DISABLED$ansiReset=true' to disable it.", 130, 147)
 
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsiProgressBar.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ansi/NCAnsiProgressBar.scala
similarity index 96%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsiProgressBar.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ansi/NCAnsiProgressBar.scala
index 64b5705..e5f4817 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsiProgressBar.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ansi/NCAnsiProgressBar.scala
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.common.ansi
+package org.apache.nlpcraft.internal.ansi
 
 import java.io.PrintWriter
-import org.apache.nlpcraft.common.*
+import org.apache.nlpcraft.internal.*
 import NCAnsi.*
 import org.apache.commons.lang3.StringUtils
-import org.apache.nlpcraft.common.ansi.NCAnsiProgressBar.*
+import org.apache.nlpcraft.internal.ansi.NCAnsiProgressBar.*
 
 /**
   * Forward-only, bound ANSI-based progress bar.
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsiSpinner.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ansi/NCAnsiSpinner.scala
similarity index 94%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsiSpinner.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ansi/NCAnsiSpinner.scala
index 1a4bb4a..ca1b702 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsiSpinner.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ansi/NCAnsiSpinner.scala
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.common.ansi
+package org.apache.nlpcraft.internal.ansi
 
 import java.io.PrintWriter
 import NCAnsi.*
-import org.apache.nlpcraft.common.*
-import org.apache.nlpcraft.common.ansi.NCAnsiSpinner.*
-import org.apache.nlpcraft.common.util.NCUtils
+import org.apache.nlpcraft.internal.*
+import org.apache.nlpcraft.internal.ansi.NCAnsiSpinner.*
+import org.apache.nlpcraft.internal.util.NCUtils
 
 /**
   * ANSI-based hourglass spinner.
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/antlr4/NCCompilerUtils.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/antlr4/NCCompilerUtils.scala
similarity index 92%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/common/antlr4/NCCompilerUtils.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/internal/antlr4/NCCompilerUtils.scala
index cf4975c..e89176e 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/antlr4/NCCompilerUtils.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/antlr4/NCCompilerUtils.scala
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.common.antlr4
+package org.apache.nlpcraft.internal.antlr4
 
-import org.apache.nlpcraft.common.*
-import org.apache.nlpcraft.common.ansi.NCAnsi.*
+import org.apache.nlpcraft.internal.*
+import org.apache.nlpcraft.internal.ansi.NCAnsi.*
 
 case class CompilerErrorHolder(
     ptrStr: String,
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ascii/NCAsciiTable.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ascii/NCAsciiTable.scala
similarity index 98%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/common/ascii/NCAsciiTable.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ascii/NCAsciiTable.scala
index 067093f..e8f9ec4 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ascii/NCAsciiTable.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ascii/NCAsciiTable.scala
@@ -15,15 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.common.ascii
+package org.apache.nlpcraft.internal.ascii
 
 import java.io.{IOException, PrintStream}
 import java.util.List as JList
 import com.typesafe.scalalogging.Logger
-import org.apache.nlpcraft.common.*
-import org.apache.nlpcraft.common.ascii.NCAsciiTable.*
-import org.apache.nlpcraft.common.ansi.NCAnsi.*
-import org.apache.nlpcraft.common.util.NCUtils
+import org.apache.nlpcraft.NCException
+import org.apache.nlpcraft.internal.*
+import org.apache.nlpcraft.internal.ascii.NCAsciiTable.*
+import org.apache.nlpcraft.internal.ansi.NCAnsi.*
+import org.apache.nlpcraft.internal.util.NCUtils
 
 import scala.collection.mutable
 import scala.jdk.CollectionConverters.CollectionHasAsScala
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/NCMacroCompiler.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/NCMacroCompiler.scala
similarity index 95%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/NCMacroCompiler.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/NCMacroCompiler.scala
index 3616e32..9a98a1a 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/NCMacroCompiler.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/NCMacroCompiler.scala
@@ -15,17 +15,18 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.common.makro
+package org.apache.nlpcraft.internal.makro
 
 import com.typesafe.scalalogging.LazyLogging
 import org.antlr.v4.runtime.tree.ParseTreeWalker
 import org.antlr.v4.runtime.*
-import org.apache.nlpcraft.common.*
-import org.apache.nlpcraft.common.ansi.NCAnsi.*
-import org.apache.nlpcraft.common.antlr4.*
-import org.apache.nlpcraft.common.makro.NCMacroCompiler.FiniteStateMachine
-import org.apache.nlpcraft.common.makro.antlr4.*
-import org.apache.nlpcraft.common.util.NCUtils
+import org.apache.nlpcraft.NCException
+import org.apache.nlpcraft.internal.*
+import org.apache.nlpcraft.internal.ansi.NCAnsi.*
+import org.apache.nlpcraft.internal.antlr4.*
+import org.apache.nlpcraft.internal.makro.NCMacroCompiler.FiniteStateMachine
+import org.apache.nlpcraft.internal.makro.antlr4.*
+import org.apache.nlpcraft.internal.util.NCUtils
 
 import scala.collection.mutable
 
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/NCMacroJavaParser.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/NCMacroJavaParser.java
similarity index 98%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/NCMacroJavaParser.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/NCMacroJavaParser.java
index d10aa2d..0b9ce64 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/NCMacroJavaParser.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/NCMacroJavaParser.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.common.makro;
+package org.apache.nlpcraft.internal.makro;
 
 import java.util.Set;
 
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/NCMacroJavaParserTrait.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/NCMacroJavaParserTrait.java
similarity index 97%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/NCMacroJavaParserTrait.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/NCMacroJavaParserTrait.java
index 58d5452..9177a54 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/NCMacroJavaParserTrait.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/NCMacroJavaParserTrait.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.common.makro;
+package org.apache.nlpcraft.internal.makro;
 
 import java.util.Set;
 
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/NCMacroParser.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/NCMacroParser.scala
similarity index 96%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/NCMacroParser.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/NCMacroParser.scala
index b54edfe..af085a5 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/NCMacroParser.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/NCMacroParser.scala
@@ -15,10 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.common.makro
+package org.apache.nlpcraft.internal.makro
 
-import org.apache.nlpcraft.common.*
-import org.apache.nlpcraft.common.util.NCUtils
+import org.apache.nlpcraft.NCException
+import org.apache.nlpcraft.internal.*
+import org.apache.nlpcraft.internal.util.NCUtils
 
 import scala.jdk.CollectionConverters.*
 
@@ -115,7 +116,6 @@ class NCMacroParser:
       *
       * @param txt Text to expand.
       */
-    @throws[NCException]
     def expand(txt: String): Seq[String] =
         require(txt != null)
 
@@ -144,7 +144,6 @@ class NCMacroParser:
       *
       * @param txt Text to expand.
       */
-    @throws[NCException]
     def expandJava(txt: String): java.util.Set[String] =
         expand(txt).toSet.asJava
 
@@ -164,7 +163,6 @@ class NCMacroParser:
       *     It must start with '&lt;' and end with '&gt;'.
       * @param str Value of the macro (any arbitrary string).
       */
-    @throws[NCException]
     def addMacro(name: String, str: String): NCMacroParser =
         require(name != null)
         require(str != null)
@@ -181,7 +179,6 @@ class NCMacroParser:
       * @param name Macro name (typically an upper case string).
       *      It must start with '<' and end with '>'.
       */
-    @throws[NCException]
     def removeMacro(name: String): NCMacroParser =
         require(name != null)
         macros -= name
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDsl.g4 b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4/NCMacroDsl.g4
similarity index 100%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDsl.g4
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4/NCMacroDsl.g4
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDsl.interp b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4/NCMacroDsl.interp
similarity index 100%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDsl.interp
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4/NCMacroDsl.interp
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDsl.tokens b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4/NCMacroDsl.tokens
similarity index 100%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDsl.tokens
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4/NCMacroDsl.tokens
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDslBaseListener.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4/NCMacroDslBaseListener.java
similarity index 95%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDslBaseListener.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4/NCMacroDslBaseListener.java
index 7bd6836..2193013 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDslBaseListener.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4/NCMacroDslBaseListener.java
@@ -1,5 +1,5 @@
-// Generated from C:/Users/Nikita Ivanov/Documents/GitHub/incubator-nlpcraft/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4\NCMacroDsl.g4 by ANTLR 4.9.1
-package org.apache.nlpcraft.common.makro.antlr4;
+// Generated from C:/Users/Nikita Ivanov/Documents/GitHub/incubator-nlpcraft/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4\NCMacroDsl.g4 by ANTLR 4.9.1
+package org.apache.nlpcraft.internal.makro.antlr4;
 
 import org.antlr.v4.runtime.ParserRuleContext;
 import org.antlr.v4.runtime.tree.ErrorNode;
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDslLexer.interp b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4/NCMacroDslLexer.interp
similarity index 100%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDslLexer.interp
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4/NCMacroDslLexer.interp
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDslLexer.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4/NCMacroDslLexer.java
similarity index 95%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDslLexer.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4/NCMacroDslLexer.java
index 31e2d67..c76e2c4 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDslLexer.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4/NCMacroDslLexer.java
@@ -1,13 +1,10 @@
-// Generated from C:/Users/Nikita Ivanov/Documents/GitHub/incubator-nlpcraft/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4\NCMacroDsl.g4 by ANTLR 4.9.1
-package org.apache.nlpcraft.common.makro.antlr4;
+// Generated from C:/Users/Nikita Ivanov/Documents/GitHub/incubator-nlpcraft/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4\NCMacroDsl.g4 by ANTLR 4.9.1
+package org.apache.nlpcraft.internal.makro.antlr4;
 import org.antlr.v4.runtime.Lexer;
 import org.antlr.v4.runtime.CharStream;
-import org.antlr.v4.runtime.Token;
-import org.antlr.v4.runtime.TokenStream;
 import org.antlr.v4.runtime.*;
 import org.antlr.v4.runtime.atn.*;
 import org.antlr.v4.runtime.dfa.DFA;
-import org.antlr.v4.runtime.misc.*;
 
 @SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
 public class NCMacroDslLexer extends Lexer {
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDslLexer.tokens b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4/NCMacroDslLexer.tokens
similarity index 100%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDslLexer.tokens
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4/NCMacroDslLexer.tokens
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDslListener.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4/NCMacroDslListener.java
similarity index 94%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDslListener.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4/NCMacroDslListener.java
index eb0821d..10cddd2 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDslListener.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4/NCMacroDslListener.java
@@ -1,5 +1,5 @@
-// Generated from C:/Users/Nikita Ivanov/Documents/GitHub/incubator-nlpcraft/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4\NCMacroDsl.g4 by ANTLR 4.9.1
-package org.apache.nlpcraft.common.makro.antlr4;
+// Generated from C:/Users/Nikita Ivanov/Documents/GitHub/incubator-nlpcraft/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4\NCMacroDsl.g4 by ANTLR 4.9.1
+package org.apache.nlpcraft.internal.makro.antlr4;
 import org.antlr.v4.runtime.tree.ParseTreeListener;
 
 /**
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDslParser.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4/NCMacroDslParser.java
similarity index 98%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDslParser.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4/NCMacroDslParser.java
index eef5f94..867c1f6 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4/NCMacroDslParser.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4/NCMacroDslParser.java
@@ -1,13 +1,9 @@
-// Generated from C:/Users/Nikita Ivanov/Documents/GitHub/incubator-nlpcraft/nlpcraft/src/main/scala/org/apache/nlpcraft/common/makro/antlr4\NCMacroDsl.g4 by ANTLR 4.9.1
-package org.apache.nlpcraft.common.makro.antlr4;
+// Generated from C:/Users/Nikita Ivanov/Documents/GitHub/incubator-nlpcraft/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/antlr4\NCMacroDsl.g4 by ANTLR 4.9.1
+package org.apache.nlpcraft.internal.makro.antlr4;
 import org.antlr.v4.runtime.atn.*;
 import org.antlr.v4.runtime.dfa.DFA;
 import org.antlr.v4.runtime.*;
-import org.antlr.v4.runtime.misc.*;
 import org.antlr.v4.runtime.tree.*;
-import java.util.List;
-import java.util.Iterator;
-import java.util.ArrayList;
 
 @SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
 public class NCMacroDslParser extends Parser {
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/util/NCUtils.scala
similarity index 98%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/internal/util/NCUtils.scala
index 6cb7341..f80f48c 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/util/NCUtils.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.common.util
+package org.apache.nlpcraft.internal.util
 
 import com.google.gson.GsonBuilder
 import com.typesafe.scalalogging.*
-import org.apache.nlpcraft.common.NCException
-import org.apache.nlpcraft.common.ansi.NCAnsi.*
+import org.apache.nlpcraft.NCException
+import org.apache.nlpcraft.internal.ansi.NCAnsi.*
 
 import java.io.*
 import java.net.*
@@ -81,7 +81,6 @@ object NCUtils extends LazyLogging:
       *
       * @param js JSON string.
       */
-    @throws[NCException]
     def jsonToObject(js: String): AnyRef =
         try
             GSON.fromJson(js, classOf[Object])
@@ -491,7 +490,7 @@ object NCUtils extends LazyLogging:
 
                 // Clean up trace.
                 clsName.startsWith("org.apache.nlpcraft") &&
-                    !clsName.startsWith("org.apache.nlpcraft.common.opencensus") &&
+                    !clsName.startsWith("org.apache.nlpcraft.internal.opencensus") &&
                     !mtdName.contains("startScopedSpan") &&
                     !mtdName.contains('$')
             }
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/version/NCVersion.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/version/NCVersion.scala
similarity index 95%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/common/version/NCVersion.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/internal/version/NCVersion.scala
index 47e5af9..8da34c9 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/version/NCVersion.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/version/NCVersion.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.common.version
+package org.apache.nlpcraft.internal.version
 
 import java.time.*
 import com.typesafe.scalalogging.LazyLogging
-import org.apache.nlpcraft.common.*
-import org.apache.nlpcraft.common.util.NCUtils
+import org.apache.nlpcraft.internal.*
+import org.apache.nlpcraft.internal.util.NCUtils
 
 /**
   * Release version holder. Note that this is manually changing property. For every official