From 78b359ab06f924e7423e169930a4897c58acf961 Mon Sep 17 00:00:00 2001 From: "Rodrigo Rodriguez (Pragmatismo)" Date: Thu, 4 Dec 2025 12:28:05 -0300 Subject: [PATCH] Remove obsolete CAPS.md documentation files Deleted planning/tracking documents that are no longer needed: - MISSING_IMPLEMENTATIONS.md (all 5 apps now implemented) - GAP_ANALYSIS.md (analysis complete, implemented) - IMPLEMENTATION_SUMMARY.md (implementations done) - LIBRARY_MIGRATION.md (migration guide) - ROADMAP.md (feature planning) - START_CODING_PROMPT.md (coding guide) - CHANGELOG.md (version history) - templates/TEMPLATE_PLAN.md (template planning) - templates/integration/public-apis.gbai/KEYWORDS_CHECKLIST.md - templates/integration/public-apis.gbai/QUICKSTART.md - botlib/VERSION.md (version history) Kept: README.md, PROMPT.md, and SUMMARY.md (mdbook structure) --- CHANGELOG.md | 2504 ----------------- CODE_IMPLEMENTATION_ROADMAP.md | 771 ----- GAP_ANALYSIS.md | 369 --- IMPLEMENTATION_SUMMARY.md | 287 -- LIBRARY_MIGRATION.md | 239 -- MISSING_IMPLEMENTATIONS.md | 329 --- PROMPT.md | 373 +++ ROADMAP.md | 16 - START_CODING_PROMPT.md | 2131 -------------- prompts/dev/basic/doc-keyword.md | 201 -- prompts/dev/docs/docs-summary.md | 49 - prompts/dev/platform/README.md | 24 - prompts/dev/platform/add-keyword.md | 151 - prompts/dev/platform/add-model.md | 94 - prompts/dev/platform/add-service.md | 55 - prompts/dev/platform/botserver.md | 3 - prompts/dev/platform/cli.md | 19 - prompts/dev/platform/doc-guide-topic.md | 7 - prompts/dev/platform/fix-errors.md | 12 - prompts/dev/platform/ide.md | 6 - prompts/dev/platform/shared.md | 23 - prompts/dev/svg-diagram-style-guide.md | 341 --- prompts/system-prompt.bas | 4 - templates/TEMPLATE_PLAN.md | 353 --- templates/auth/login.html | 808 +++--- templates/drive.html | 1470 ++++++---- .../public-apis.gbai/KEYWORDS_CHECKLIST.md | 335 --- .../public-apis.gbai/QUICKSTART.md | 418 --- templates/static/js/vendor/htmx-ws.js | 477 ++++ templates/static/js/vendor/htmx.min.js | 1 + templates/static/js/vendor/marked.min.js | 69 + 31 files changed, 2330 insertions(+), 9609 deletions(-) delete mode 100644 CHANGELOG.md delete mode 100644 CODE_IMPLEMENTATION_ROADMAP.md delete mode 100644 GAP_ANALYSIS.md delete mode 100644 IMPLEMENTATION_SUMMARY.md delete mode 100644 LIBRARY_MIGRATION.md delete mode 100644 MISSING_IMPLEMENTATIONS.md create mode 100644 PROMPT.md delete mode 100644 ROADMAP.md delete mode 100644 START_CODING_PROMPT.md delete mode 100644 prompts/dev/basic/doc-keyword.md delete mode 100644 prompts/dev/docs/docs-summary.md delete mode 100644 prompts/dev/platform/README.md delete mode 100644 prompts/dev/platform/add-keyword.md delete mode 100644 prompts/dev/platform/add-model.md delete mode 100644 prompts/dev/platform/add-service.md delete mode 100644 prompts/dev/platform/botserver.md delete mode 100644 prompts/dev/platform/cli.md delete mode 100644 prompts/dev/platform/doc-guide-topic.md delete mode 100644 prompts/dev/platform/fix-errors.md delete mode 100644 prompts/dev/platform/ide.md delete mode 100644 prompts/dev/platform/shared.md delete mode 100644 prompts/dev/svg-diagram-style-guide.md delete mode 100644 prompts/system-prompt.bas delete mode 100644 templates/TEMPLATE_PLAN.md delete mode 100644 templates/integration/public-apis.gbai/KEYWORDS_CHECKLIST.md delete mode 100644 templates/integration/public-apis.gbai/QUICKSTART.md create mode 100644 templates/static/js/vendor/htmx-ws.js create mode 100644 templates/static/js/vendor/htmx.min.js create mode 100644 templates/static/js/vendor/marked.min.js diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index c5dd335df..000000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,2504 +0,0 @@ -## [6.0.9](https://github.com/GeneralBots/BotServer/compare/6.0.8...6.0.9) (2024-01-10) - -### Features - -* **llm:** Semantic caching with Valkey for LLM responses - * Configurable per-bot via `llm-cache` setting in config.csv - * Exact match and semantic similarity matching - * Embedding-based similarity computation with configurable threshold - * TTL-based cache expiration - * Reduces API costs by up to 70% through intelligent response reuse - * Full documentation in docs/SEMANTIC_CACHE.md - -## [2.4.42](https://github.com/GeneralBots/BotServer/compare/2.4.41...2.4.42) (2023-08-01) - - -### Bug Fixes - -* **whatsapp.gblib:** Now using e-mail instead of Teams ID. ([5860000](https://github.com/GeneralBots/BotServer/commit/58600001c9b7c229ff1ccf3c66ed935a8eaf1986)) - -## [2.4.41](https://github.com/GeneralBots/BotServer/compare/2.4.40...2.4.41) (2023-08-01) - - -### Bug Fixes - -* **all:** Minor changes in PROD. ([76c1efd](https://github.com/GeneralBots/BotServer/commit/76c1efd12d525381d77d12200d397afb644ce3ac)) - -## [2.4.40](https://github.com/GeneralBots/BotServer/compare/2.4.39...2.4.40) (2023-07-31) - - -### Bug Fixes - -* **all:** Minor changes in PROD. ([9b88c33](https://github.com/GeneralBots/BotServer/commit/9b88c330c60e9646d72e1215f14d0c8ba3462cd2)) - -## [2.4.39](https://github.com/GeneralBots/BotServer/compare/2.4.38...2.4.39) (2023-07-31) - - -### Bug Fixes - -* **all:** Minor changes in PROD. ([e5f41bc](https://github.com/GeneralBots/BotServer/commit/e5f41bca786f1637d1c3d35d5542b062c2372a44)) - -## [2.4.38](https://github.com/GeneralBots/BotServer/compare/2.4.37...2.4.38) (2023-07-29) - - -### Bug Fixes - -* **all:** Minor changes in PROD. ([245e491](https://github.com/GeneralBots/BotServer/commit/245e491a25ebc94565854e5a02e2cd1d3ca95836)) - -## [2.4.37](https://github.com/GeneralBots/BotServer/compare/2.4.36...2.4.37) (2023-07-28) - - -### Bug Fixes - -* **all:** Minor changes in PROD. ([e829f37](https://github.com/GeneralBots/BotServer/commit/e829f3725a69efc7e4a041f4f9e94936baf61649)) - -## [2.4.36](https://github.com/GeneralBots/BotServer/compare/2.4.35...2.4.36) (2023-07-28) - - -### Bug Fixes - -* **all:** Minor changes in PROD. ([e415bb0](https://github.com/GeneralBots/BotServer/commit/e415bb01ca3d1e79b18b2e978a12b38cd541d01b)) - -## [2.4.35](https://github.com/GeneralBots/BotServer/compare/2.4.34...2.4.35) (2023-07-28) - - -### Bug Fixes - -* **core.gbapp:** FIX SSR errors and setOption impersonated. ([a585cf5](https://github.com/GeneralBots/BotServer/commit/a585cf51eaded13dcd5cddb3120a7f1e77ae6e25)) - -## [2.4.34](https://github.com/GeneralBots/BotServer/compare/2.4.33...2.4.34) (2023-07-26) - - -### Bug Fixes - -* **core.gbapp:** FIX SSR errors and setOption impersonated. ([5589095](https://github.com/GeneralBots/BotServer/commit/5589095f861bba6b5b19b70d5f4ca35247255c52)) - -## [2.4.33](https://github.com/GeneralBots/BotServer/compare/2.4.32...2.4.33) (2023-07-26) - - -### Bug Fixes - -* **core.gbapp:** FIX SSR errors and setOption impersonated. ([e5f5121](https://github.com/GeneralBots/BotServer/commit/e5f51210379c16427e784dbf829f175053cca3f8)) - -## [2.4.32](https://github.com/GeneralBots/BotServer/compare/2.4.31...2.4.32) (2023-07-26) - - -### Bug Fixes - -* **core.gbapp:** FIX SSR errors and setOption impersonated. ([ed96440](https://github.com/GeneralBots/BotServer/commit/ed9644089e481834b309f63bfe227ec5e5b0d854)) - -## [2.4.31](https://github.com/GeneralBots/BotServer/compare/2.4.30...2.4.31) (2023-07-26) - - -### Bug Fixes - -* **core.gbapp:** FIX SSR errors and setOption impersonated. ([0fe2bdb](https://github.com/GeneralBots/BotServer/commit/0fe2bdbe6fa3cc30355acbadab38747e800e050b)) - -## [2.4.30](https://github.com/GeneralBots/BotServer/compare/2.4.29...2.4.30) (2023-07-26) - - -### Bug Fixes - -* **core.gbapp:** FIX SSR errors and setOption impersonated. ([a652873](https://github.com/GeneralBots/BotServer/commit/a65287338a765b0293cb24af5335fe32bcafbecc)) - -## [2.4.29](https://github.com/GeneralBots/BotServer/compare/2.4.28...2.4.29) (2023-07-26) - - -### Bug Fixes - -* **core.gbapp:** FIX SSR errors and setOption impersonated. ([7a6d14c](https://github.com/GeneralBots/BotServer/commit/7a6d14cf3aa28aadea4a0e1d1905f96046a45cc0)) - -## [2.4.28](https://github.com/GeneralBots/BotServer/compare/2.4.27...2.4.28) (2023-07-26) - - -### Bug Fixes - -* **core.gbapp:** FIX SSR errors and setOption impersonated. ([e596f31](https://github.com/GeneralBots/BotServer/commit/e596f31de64c477a913416ede1488da2cf0688e2)) - -## [2.4.27](https://github.com/GeneralBots/BotServer/compare/2.4.26...2.4.27) (2023-07-25) - - -### Bug Fixes - -* **all:** Fix answers with dialog id working again. ([f34c7b1](https://github.com/GeneralBots/BotServer/commit/f34c7b1ac5227f27d2fae3b55810e38c493d52e6)) -* **all:** Fix answers with dialog id working again. ([a24648c](https://github.com/GeneralBots/BotServer/commit/a24648cc9f7c3ad3ab740096f60b4581b595936b)) -* **all:** Fix answers with dialog id working again. ([6b832c4](https://github.com/GeneralBots/BotServer/commit/6b832c42b6442178b68954cb6241b1b79dcf3285)) - -## [2.4.26](https://github.com/GeneralBots/BotServer/compare/2.4.25...2.4.26) (2023-07-25) - - -### Bug Fixes - -* **all:** Fix answers with dialog id working again. ([2a6f64f](https://github.com/GeneralBots/BotServer/commit/2a6f64f238b6f7088c4a925e0dcd68b705c0e3e8)) -* **all:** Fix answers with dialog id working again. ([ec172b0](https://github.com/GeneralBots/BotServer/commit/ec172b0554bd28ff447c5f8436bb81a9a20ad703)) - -## [2.4.25](https://github.com/GeneralBots/BotServer/compare/2.4.24...2.4.25) (2023-07-23) - - -### Bug Fixes - -* **all:** Fix in AS IMAGE generation of single row. ([a9256d8](https://github.com/GeneralBots/BotServer/commit/a9256d8ecb2a82c47ccb2765cc2ea66b4a83d30c)) -* **all:** Fix in AS IMAGE generation of single row. ([576e73b](https://github.com/GeneralBots/BotServer/commit/576e73b6258b313962136823b8753f2d10f3a30e)) -* **all:** Fix in AS IMAGE generation of single row. ([4c5ccb2](https://github.com/GeneralBots/BotServer/commit/4c5ccb2fac5d25b95fe4fb1aca08a39d647ecb23)) - -## [2.4.24](https://github.com/GeneralBots/BotServer/compare/2.4.23...2.4.24) (2023-07-23) - - -### Bug Fixes - -* **all:** Fix in AS IMAGE generation of single row. ([c646b2d](https://github.com/GeneralBots/BotServer/commit/c646b2d27bfaec15ffe65efe081362bc23125a27)) -* **all:** Fix in AS IMAGE generation of single row. ([5827286](https://github.com/GeneralBots/BotServer/commit/5827286406fd1bdeb93ee2fe62ca8bc59e9ecec9)) - -## [2.4.23](https://github.com/GeneralBots/BotServer/compare/2.4.22...2.4.23) (2023-07-23) - - -### Bug Fixes - -* **all:** Fix in AS IMAGE generation of single row. ([618ff5a](https://github.com/GeneralBots/BotServer/commit/618ff5a296f476f341a8e7ff82444406fa4eebc9)) - -## [2.4.22](https://github.com/GeneralBots/BotServer/compare/2.4.21...2.4.22) (2023-07-23) - - -### Bug Fixes - -* **all:** Fix in AS IMAGE generation of single row. ([ee56768](https://github.com/GeneralBots/BotServer/commit/ee567681f122d94760270b904fb9782a0f13741b)) - -## [2.4.21](https://github.com/GeneralBots/BotServer/compare/2.4.20...2.4.21) (2023-07-23) - - -### Bug Fixes - -* **all:** Fix in AS IMAGE generation of single row. ([6874869](https://github.com/GeneralBots/BotServer/commit/6874869ef8ce404b1bbef2980e5aef7efbf4a71a)) - -## [2.4.20](https://github.com/GeneralBots/BotServer/compare/2.4.19...2.4.20) (2023-07-23) - - -### Bug Fixes - -* **all:** Fix in AS IMAGE generation of single row. ([ee6356d](https://github.com/GeneralBots/BotServer/commit/ee6356d83b256a61aa0a974f5802a727923ab4f8)) - -## [2.4.19](https://github.com/GeneralBots/BotServer/compare/2.4.18...2.4.19) (2023-07-23) - - -### Bug Fixes - -* **all:** Fix in DATE filter. ([ad47305](https://github.com/GeneralBots/BotServer/commit/ad47305a025d97e0df77f9995ac44451da21f0e1)) - -## [2.4.18](https://github.com/GeneralBots/BotServer/compare/2.4.17...2.4.18) (2023-07-19) - - -### Bug Fixes - -* **all:** Create bot working again. ([ed74c5b](https://github.com/GeneralBots/BotServer/commit/ed74c5b0039a6ad2a578382a4204824258bdbb54)) -* **all:** Create bot working again. ([9852fa8](https://github.com/GeneralBots/BotServer/commit/9852fa8cb2867b9f141b77ee44c3e7bdbc99d8ec)) - -## [2.4.17](https://github.com/GeneralBots/BotServer/compare/2.4.16...2.4.17) (2023-07-19) - - -### Bug Fixes - -* **all:** Create bot working again. ([b779f29](https://github.com/GeneralBots/BotServer/commit/b779f292129f94422075d03fa4e74a8534134832)) - -## [2.4.16](https://github.com/GeneralBots/BotServer/compare/2.4.15...2.4.16) (2023-07-19) - - -### Bug Fixes - -* **all:** Create bot working again. ([3bbd732](https://github.com/GeneralBots/BotServer/commit/3bbd732fd44d47b90b28402de567d23443a412c9)) -* **all:** Create bot working again. ([3fa53d0](https://github.com/GeneralBots/BotServer/commit/3fa53d072b5ce1291128aa486f8465b1a28ff50e)) -* **all:** Minor changes in PROD. ([abe5f03](https://github.com/GeneralBots/BotServer/commit/abe5f0380187bc4da498f15a13c8b4ae741bf8ec)) - -## [2.4.15](https://github.com/GeneralBots/BotServer/compare/2.4.14...2.4.15) (2023-07-19) - - -### Bug Fixes - -* **all:** Create bot working again. ([4eecd5a](https://github.com/GeneralBots/BotServer/commit/4eecd5acec56547e5b5ab064f52dc81eb451e1a4)) - -## [2.4.14](https://github.com/GeneralBots/BotServer/compare/2.4.13...2.4.14) (2023-07-18) - - -### Bug Fixes - -* **all:** Create bot working again. ([fbc2416](https://github.com/GeneralBots/BotServer/commit/fbc2416a550148b4e9195b59d044ba6f59c0c0e2)) - -## [2.4.13](https://github.com/GeneralBots/BotServer/compare/2.4.12...2.4.13) (2023-07-18) - - -### Bug Fixes - -* **all:** Create bot working again. ([c4f8d0a](https://github.com/GeneralBots/BotServer/commit/c4f8d0a064343e790c819da43f8f3d7df7551f5c)) - -## [2.4.12](https://github.com/GeneralBots/BotServer/compare/2.4.11...2.4.12) (2023-07-18) - - -### Bug Fixes - -* **all:** Create bot working again. ([0ed3dce](https://github.com/GeneralBots/BotServer/commit/0ed3dce1d275d61ddb03d914e636cc7ce53407fa)) - -## [2.4.11](https://github.com/GeneralBots/BotServer/compare/2.4.10...2.4.11) (2023-07-18) - - -### Bug Fixes - -* **all:** Create bot working again. ([3fd3213](https://github.com/GeneralBots/BotServer/commit/3fd3213740e766da510c37461d23877dc34e6cff)) -* **all:** Create bot working again. ([88c8a29](https://github.com/GeneralBots/BotServer/commit/88c8a2999867e6c8d707a02c0d194aeda511930d)) -* **all:** Create bot working again. ([91db185](https://github.com/GeneralBots/BotServer/commit/91db185b54713cc7dad2835cab6592a8b0e278c1)) - -## [2.4.10](https://github.com/GeneralBots/BotServer/compare/2.4.9...2.4.10) (2023-07-18) - - -### Bug Fixes - -* **all:** Create bot working again. ([c3e6a3d](https://github.com/GeneralBots/BotServer/commit/c3e6a3da7a2395c68126d38dc24616bdf4353214)) - -## [2.4.9](https://github.com/GeneralBots/BotServer/compare/2.4.8...2.4.9) (2023-07-17) - - -### Bug Fixes - -* **all:** [#123](https://github.com/GeneralBots/BotServer/issues/123) done. ([899696d](https://github.com/GeneralBots/BotServer/commit/899696d7e59fbb90964852c3838695ed52815040)) - -## [2.4.8](https://github.com/GeneralBots/BotServer/compare/2.4.7...2.4.8) (2023-07-17) - - -### Bug Fixes - -* **all:** [#123](https://github.com/GeneralBots/BotServer/issues/123) done. ([2d1efeb](https://github.com/GeneralBots/BotServer/commit/2d1efeb0cce3da5ff73116139e64f693eda59ed9)) - -## [2.4.7](https://github.com/GeneralBots/BotServer/compare/2.4.6...2.4.7) (2023-07-15) - - -### Bug Fixes - -* **all:** Create bot working again. ([46bbe87](https://github.com/GeneralBots/BotServer/commit/46bbe87bb4d5fc3ff83aac664c486f53178f4df2)) - -## [2.4.6](https://github.com/GeneralBots/BotServer/compare/2.4.5...2.4.6) (2023-07-15) - - -### Bug Fixes - -* **all:** Create bot working again. ([9e49895](https://github.com/GeneralBots/BotServer/commit/9e498956f8b35e379f853f1a5f8a8a59ec712e2c)) - -## [2.4.5](https://github.com/GeneralBots/BotServer/compare/2.4.4...2.4.5) (2023-07-14) - - -### Bug Fixes - -* **all:** Create bot working again. ([0f1acf6](https://github.com/GeneralBots/BotServer/commit/0f1acf66462861aa709c153435ad5d785ebab951)) -* **all:** Create bot working again. ([f4ab703](https://github.com/GeneralBots/BotServer/commit/f4ab70396a6dc67c8cac2f53aa2e0c802dadbe72)) -* **all:** Create bot working again. ([b92fbca](https://github.com/GeneralBots/BotServer/commit/b92fbca72ae819d2b7b417231d8b35d23ef7ec34)) - -## [2.4.4](https://github.com/GeneralBots/BotServer/compare/2.4.3...2.4.4) (2023-07-13) - - -### Bug Fixes - -* **all:** Minor changes in PROD. ([671fe0c](https://github.com/GeneralBots/BotServer/commit/671fe0cc3e8a3a8cbc0f3f8675fe6c9d9d460b84)) - -## [2.4.3](https://github.com/GeneralBots/BotServer/compare/2.4.2...2.4.3) (2023-07-09) - - -### Bug Fixes - -* **all:** Minor changes in PROD. ([c67ec3e](https://github.com/GeneralBots/BotServer/commit/c67ec3e696eea622e1cf171ce74ae98c52a3ebd1)) - -## [2.4.2](https://github.com/GeneralBots/BotServer/compare/2.4.1...2.4.2) (2023-07-09) - - -### Bug Fixes - -* **all:** Minor changes in PROD. ([77d5b4e](https://github.com/GeneralBots/BotServer/commit/77d5b4ee68b079c1e84f76e06b888bfaff67d39c)) - -## [2.4.1](https://github.com/GeneralBots/BotServer/compare/2.4.0...2.4.1) (2023-07-09) - - -### Bug Fixes - -* **all:** Minor changes in PROD. ([8a04ad2](https://github.com/GeneralBots/BotServer/commit/8a04ad2354f7242296ac8d90bfddb52081fef1d8)) - -# [2.4.0](https://github.com/GeneralBots/BotServer/compare/2.3.9...2.4.0) (2023-07-09) - - -### Bug Fixes - -* **all:** CWD in Windows now working. ([6721c3d](https://github.com/GeneralBots/BotServer/commit/6721c3dcc31d604923f6c3ca0b7100c76f61d14d)) -* **all:** Fixes in production. ([56b6877](https://github.com/GeneralBots/BotServer/commit/56b687792b6fa230f67adcd047011cfa536006cc)) -* **all:** HTTP handler added. ([7c6a175](https://github.com/GeneralBots/BotServer/commit/7c6a1753b3944b0b1f95c7a7faa1556a60e8d0ad)) -* **all:** Minor changes in PROD. ([f69b3f0](https://github.com/GeneralBots/BotServer/commit/f69b3f004cd87844b2339458cfe75bb6aef8662a)) -* **all:** Minor changes in PROD. ([0b5fa3e](https://github.com/GeneralBots/BotServer/commit/0b5fa3eec28948ddb47e19b1a84f5fdcb64d0782)) -* **all:** Minor changes in PROD. ([904691c](https://github.com/GeneralBots/BotServer/commit/904691ca8149b141855dc1d4098f486472ea473a)) -* **all:** Minor changes in PROD. ([d7a5ef5](https://github.com/GeneralBots/BotServer/commit/d7a5ef5ef2cc662a9fab0ab95ddd90995ffc013b)) -* **all:** Minor changes in PROD. ([892025e](https://github.com/GeneralBots/BotServer/commit/892025e5b2f7c3d861060f04880dd2fbca23aed6)) -* **all:** Minor changes in PROD. ([76df151](https://github.com/GeneralBots/BotServer/commit/76df151507a66352d04de9dfcbf05599614a00cb)) -* **all:** Minor changes in PROD. ([f20b5f6](https://github.com/GeneralBots/BotServer/commit/f20b5f6293377c906d1a2277bb7c1fc4197f6f5f)) -* **all:** Minor changes in PROD. ([a60581b](https://github.com/GeneralBots/BotServer/commit/a60581bd320bdfa7abac5a7d8c27bc84cfa87cf5)) -* **app.ts:** Preparing to use 4 or more SSL certificates. ([72b645f](https://github.com/GeneralBots/BotServer/commit/72b645fd2adbd221a74f9fd87d89c984aea78b8d)) -* **azuredeployer.gbapp:** Adding Resource Providers (.Web/.Sql) ([6c9d124](https://github.com/GeneralBots/BotServer/commit/6c9d12452407faa0ad3eb6c0e8e61abd87331020)) -* **azuredeployer.gbapp:** Create DB with basic cost. ([0ed600e](https://github.com/GeneralBots/BotServer/commit/0ed600edc3709a6a17ffe2072d22c1ff4b83782a)) -* **azuredeployer.gblib:** FREE flag for database. ([1074ef7](https://github.com/GeneralBots/BotServer/commit/1074ef7240879007a2838ec814192b7bf727c0ce)) -* **basic.gblib:** [#196](https://github.com/GeneralBots/BotServer/issues/196) Spellchecker in groups now working. ([45ad0c3](https://github.com/GeneralBots/BotServer/commit/45ad0c389495624adae04f9e47f9a75214548ec4)) -* **basic.gblib:** [#269](https://github.com/GeneralBots/BotServer/issues/269) Fixing of group autostart behaviour. ([de77227](https://github.com/GeneralBots/BotServer/commit/de772279456591b2a94c206430788ecf8cabb7f3)) -* **basic.gblib:** [#286](https://github.com/GeneralBots/BotServer/issues/286) fix token replaacement. ([a679786](https://github.com/GeneralBots/BotServer/commit/a67978621769abab001851609f6a5e3db7c65e3c)) -* **basic.gblib:** [#286](https://github.com/GeneralBots/BotServer/issues/286) fix token replaacement. ([0e9c2e9](https://github.com/GeneralBots/BotServer/commit/0e9c2e9ebf9a0a9bf130e3d91268c009c3ad1fc0)) -* **basic.gblib:** Debugger improvements. ([3e68858](https://github.com/GeneralBots/BotServer/commit/3e68858bb09d7d5b09a2f7cfbfe6e6c964950fd1)) -* **basic.gblib:** Fixes in WebAutomation. ([d4cf165](https://github.com/GeneralBots/BotServer/commit/d4cf165165a82587041776c6e4c8aa7065df1fc1)) -* **basic.gblib:** Fixes in WebAutomation. ([b576b6f](https://github.com/GeneralBots/BotServer/commit/b576b6f54deec2dfb779c8c3018af2da001d4196)) -* **basic.gblib:** Fixes in WebAutomation. ([d1b9da2](https://github.com/GeneralBots/BotServer/commit/d1b9da21bae4a7c6c1d9fae69e1063d705ae0b38)) -* **basic.gblib:** GBAI automatic retrieval. ([0ef0fc0](https://github.com/GeneralBots/BotServer/commit/0ef0fc01f57e9aaa3b4bc3ccf7093b7ad0cf6548)) -* **basic.gblib:** GBAI automatic retrieval. ([04e69b9](https://github.com/GeneralBots/BotServer/commit/04e69b9d99f02c285d8082f7a41ee6283ac9e8e1)) -* **basic.gblib:** GBAI automatic retrieval. ([6992bf0](https://github.com/GeneralBots/BotServer/commit/6992bf0ae5e83118a05a267c4f55636f8d081dbb)) -* **basic.gblib:** [#170](https://github.com/GeneralBots/BotServer/issues/170) Fixing DATEDIFF. ([4314a37](https://github.com/GeneralBots/BotServer/commit/4314a37916ae475a248a2074c89145cecf184a95)) -* **basic.gblib:** [#226](https://github.com/GeneralBots/BotServer/issues/226) testing. ([97df425](https://github.com/GeneralBots/BotServer/commit/97df425566f67a836427fdda8c2a9f8011d13c89)) -* **basic.gblib:** [#226](https://github.com/GeneralBots/BotServer/issues/226) testing. ([4c037a7](https://github.com/GeneralBots/BotServer/commit/4c037a72053edeeeb81491e23f2a863a05d69ef9)) -* **basic.gblib:** [#227](https://github.com/GeneralBots/BotServer/issues/227) - HEAR AS FILE and GET/SET PARAM. ([bc5c1b0](https://github.com/GeneralBots/BotServer/commit/bc5c1b0ced7971109642f86bb3055d81388d9b18)) -* **basic.gblib:** [#227](https://github.com/GeneralBots/BotServer/issues/227) - HEAR AS FILE and GET/SET PARAM. ([2521117](https://github.com/GeneralBots/BotServer/commit/2521117a80f84e0d7c509579355b254b39df4823)) -* **basic.gblib:** [#227](https://github.com/GeneralBots/BotServer/issues/227) - HEAR AS FILE and GET/SET PARAM. ([ceded7f](https://github.com/GeneralBots/BotServer/commit/ceded7fd5532e0c66758e73d3477d258d7d03017)) -* **basic.gblib:** [#227](https://github.com/GeneralBots/BotServer/issues/227) - HEAR AS FILE defining where to save, per bot. ([b64a42f](https://github.com/GeneralBots/BotServer/commit/b64a42feaccf278b463fc1bc1ad106af72531292)) -* **basic.gblib:** [#227](https://github.com/GeneralBots/BotServer/issues/227) - HEAR AS FILE defining where to save, per bot. ([473cd98](https://github.com/GeneralBots/BotServer/commit/473cd9871d82238532469ba32726be34027489fc)) -* **basic.gblib:** [#227](https://github.com/GeneralBots/BotServer/issues/227) - HEAR AS FILE. ([c5290b9](https://github.com/GeneralBots/BotServer/commit/c5290b91aa1b8f35a82f0a3602c9f2d1cf06bcb0)) -* **basic.gblib:** [#227](https://github.com/GeneralBots/BotServer/issues/227) - HEAR AS FILE. ([42dbba4](https://github.com/GeneralBots/BotServer/commit/42dbba40845f5a2232e35218825d5bd058c6f9e1)) -* **basic.gblib:** [#282](https://github.com/GeneralBots/BotServer/issues/282) Fix SSR for Bots 3.0. ([866b361](https://github.com/GeneralBots/BotServer/commit/866b361292bd7775ee8f391052721c3fba123823)) -* **basic.gblib:** [#282](https://github.com/GeneralBots/BotServer/issues/282) Fix SSR for Bots 3.0. ([7f3bd7d](https://github.com/GeneralBots/BotServer/commit/7f3bd7d8fec2a3e103253f60072873b2d40e91dd)) -* **basic.gblib:** [#307](https://github.com/GeneralBots/BotServer/issues/307) - Fixed user context in API. ([cbce44f](https://github.com/GeneralBots/BotServer/commit/cbce44f20d7df70743057381e63229d015da3ad7)) -* **basic.gblib:** [#307](https://github.com/GeneralBots/BotServer/issues/307) - Fixed user context in API. ([4496cef](https://github.com/GeneralBots/BotServer/commit/4496cefa18ed7f909f7284aacd90b975d74e2180)) -* **basic.gblib:** Adjustment in package version. ([e66c481](https://github.com/GeneralBots/BotServer/commit/e66c4817612c270c637e2323248d947784dabe1f)) -* **basic.gblib:** Correct web automation 'date' use. ([4809fec](https://github.com/GeneralBots/BotServer/commit/4809fec457b29af597bc48fa5ba3d05f21cb2abf)) -* **basic.gblib:** Correcting the position of Parentheses ([a925c8e](https://github.com/GeneralBots/BotServer/commit/a925c8e8bf8c2bbb166d0ece4343c56d15ceef97)) -* **basic.gblib:** FILL keyword can now template images and AS IMAGE can convert a DOCX to a PNG. ([41ceedf](https://github.com/GeneralBots/BotServer/commit/41ceedfc003d142bc8bf085dc9488d61328e6743)) -* **basic.gblib:** FILL keyword can now template images and AS IMAGE can convert a DOCX to a PNG. ([16bdab6](https://github.com/GeneralBots/BotServer/commit/16bdab6bcc3cb1f13de549a825ef96aaf889a9d4)) -* **basic.gblib:** fix dynamic parameter generation. ([11b0ea2](https://github.com/GeneralBots/BotServer/commit/11b0ea24e696d51990d04651f1f1bfd2a785d4d9)) -* **basic.gblib:** Fix getNow return. ([f288987](https://github.com/GeneralBots/BotServer/commit/f2889879a623e585b62fe22d7ee52028876186c1)) -* **basic.gblib:** Fix getNow return. ([5631ce9](https://github.com/GeneralBots/BotServer/commit/5631ce961017960f20bb5c9334f254f15e88c7c2)) -* **basic.gblib:** Fix getToday return. ([0e33c97](https://github.com/GeneralBots/BotServer/commit/0e33c9785196ceac5cfa2ac6cb6d1c83ab4ef478)) -* **basic.gblib:** Return the last information with getTextOf ([ececb0d](https://github.com/GeneralBots/BotServer/commit/ececb0d2ea89a9ed021fc1d2d8dea9688b3bedee)) -* **basic.gblib:** Upgrade to https://github.com/vasyas/push-rpc from WS to HTTPS. ([5534b41](https://github.com/GeneralBots/BotServer/commit/5534b416da906be8953ff18ba52807964163760a)) -* **basic.gblib:** Upgrade to https://github.com/vasyas/push-rpc from WS to HTTPS. ([f3c756b](https://github.com/GeneralBots/BotServer/commit/f3c756b01576ebbe5266ed9699e6c06ed3c05263)) -* **basic.gblib:** Upgrade to https://github.com/vasyas/push-rpc. ([f3b7c1d](https://github.com/GeneralBots/BotServer/commit/f3b7c1d77e72fa9deb173b47777ed2cbf5bae2fc)) -* **basic.gblib:** WA page bug removal. ([d902e14](https://github.com/GeneralBots/BotServer/commit/d902e14f78913626d3f8ac758a3b98776d1589b5)) -* **core.gbapp:** [#195](https://github.com/GeneralBots/BotServer/issues/195) bind call to provide min context for uploads. ([b12a462](https://github.com/GeneralBots/BotServer/commit/b12a462e3e789e63691dcc80d83002e2fe18ed74)) -* **core.gbapp:** [#195](https://github.com/GeneralBots/BotServer/issues/195) bind call to provide min context for uploads. ([b2f2c73](https://github.com/GeneralBots/BotServer/commit/b2f2c732aa1a5887a163fd510539e1d0c5223667)) -* **core.gbapp:** [#336](https://github.com/GeneralBots/BotServer/issues/336) timeout in API fixed. ([0c44361](https://github.com/GeneralBots/BotServer/commit/0c443618a6551f35af1a0ea6e9fc5c560815e188)) -* **core.gbapp:** [#336](https://github.com/GeneralBots/BotServer/issues/336) timeout in API fixed. ([eb6800e](https://github.com/GeneralBots/BotServer/commit/eb6800edce75bb0687fa446fb515a508a1b053f6)) -* **core.gbapp:** [#341](https://github.com/GeneralBots/BotServer/issues/341) fix regarding COPY files. ([a292b77](https://github.com/GeneralBots/BotServer/commit/a292b7711668fa66875bc6eb7d9c6f74943ebabf)) -* **core.gbapp:** [#344](https://github.com/GeneralBots/BotServer/issues/344) fix regarding SET FILTER keyword. ([db7ed36](https://github.com/GeneralBots/BotServer/commit/db7ed36707e567fa6801c748d4a28ebca76549c4)) -* **core.gbapp:** /logs working again. ([d08e11f](https://github.com/GeneralBots/BotServer/commit/d08e11fef43275d78cbf339508256acd46f2055f)) -* **core.gbapp:** fixed the use of GBLogEx to create GuaribasLog. ([2cb866b](https://github.com/GeneralBots/BotServer/commit/2cb866bc2f1f8a5157eddfdecf974e3a31f1280d)) -* **core.gbapp:** Upload now saves the file in correct folder. ([e31cd4d](https://github.com/GeneralBots/BotServer/commit/e31cd4d819e5084a7cbbdb76ab5b4f59563ac822)) -* **core.gblib:** SSR fixing about botId. ([799715a](https://github.com/GeneralBots/BotServer/commit/799715a9ee77606afcbcaf72a545d0ce473bd5e9)) -* **default.gbui:** [#153](https://github.com/GeneralBots/BotServer/issues/153) fix. ([b6f6a50](https://github.com/GeneralBots/BotServer/commit/b6f6a50f136617948add923e0517988f67bfab31)) -* **default.gbui:** [#263](https://github.com/GeneralBots/BotServer/issues/263) Loads menu.xlsx as subject.json alternative. ([00434bd](https://github.com/GeneralBots/BotServer/commit/00434bd788fc7ac6a09ed07844120dfb4b871e24)) -* **default.gbui:** [#263](https://github.com/GeneralBots/BotServer/issues/263) Loads menu.xlsx as subject.json alternative. ([241596b](https://github.com/GeneralBots/BotServer/commit/241596b51f542b17ceb0b6b465e71a0b86c7f39c)) -* **dependencies:** Whatsapp-web.js to "1.20.0". ([1857b51](https://github.com/GeneralBots/BotServer/commit/1857b51cf272120d6b7fbb04ca23cde455be2361)) -* **gbapp\AskDialog:** Supress Echo Nothing_else ([4ee3012](https://github.com/GeneralBots/BotServer/commit/4ee30120b79d2bd8dd933accc1d2326a7b16d013)) -* **gbapp\AskDialog.ts:** Supress anything_else ([6d8feca](https://github.com/GeneralBots/BotServer/commit/6d8feca8719874179a3a98ba4cbf976c2d3361f7)) -* **kb.gbapp:** [#276](https://github.com/GeneralBots/BotServer/issues/276) use of NLP.js upgrade to v4. ([ec1c38f](https://github.com/GeneralBots/BotServer/commit/ec1c38f3783da8a67958c28c815948799f757d1f)) -* **kb.gbapp:** [#276](https://github.com/GeneralBots/BotServer/issues/276) use of NLP.js upgrade to v4. ([5c48d39](https://github.com/GeneralBots/BotServer/commit/5c48d396207fae7ca74abc490250d6b7bac310da)) -* **kb.gbapp:** [#297](https://github.com/GeneralBots/BotServer/issues/297) Spellchecker fixed after MSFT changes in service. ([80853f0](https://github.com/GeneralBots/BotServer/commit/80853f014c1e3a1c8c0cd1a8cdb1685f98f738b9)) -* **kb.gbapp:** [#298](https://github.com/GeneralBots/BotServer/issues/298) search fix and params. ([78778da](https://github.com/GeneralBots/BotServer/commit/78778da3a7ca8e4045ec4367ac03678166c52d18)) -* **kb.gbapp:** [#332](https://github.com/GeneralBots/BotServer/issues/332) fix STS. ([01cf280](https://github.com/GeneralBots/BotServer/commit/01cf2803a0f3a68528cb5cfd6750621056d5ad7e)) -* **kb.gbapp:** /publish review, error handling improved and clean up. ([c94228c](https://github.com/GeneralBots/BotServer/commit/c94228cd8db9ac4e9a0b5df1f1acdb31b168c768)) -* **kb.gbapp:** Dialog now are finished OK. ([a969abb](https://github.com/GeneralBots/BotServer/commit/a969abbcc44ca93fb2fb349e4ca67043f5c43f5f)) -* **kb.gbapp:** Dialog now are finished OK. ([a7a1d47](https://github.com/GeneralBots/BotServer/commit/a7a1d47c24b4af4c0b1a62b4b06eaba23386faed)) -* **kb.gbapp:** Download only if not in cache optimization. ([b30e016](https://github.com/GeneralBots/BotServer/commit/b30e0160c434ac5fb45425d9a80a45020c7955f5)) -* **security.gblib:** Params support in users. ([82a9ba9](https://github.com/GeneralBots/BotServer/commit/82a9ba983ecc603f67a23775385e070b92881ddd)) -* **whatsapp.gblib:** [#262](https://github.com/GeneralBots/BotServer/issues/262) wrong key value. ([565ad4a](https://github.com/GeneralBots/BotServer/commit/565ad4ab6d008454a7e008c568a0a78af06fd7e0)) -* **whatsapp.gblib:** [#288](https://github.com/GeneralBots/BotServer/issues/288) fix list and buttons. ([6f62453](https://github.com/GeneralBots/BotServer/commit/6f62453f4e1f813e4686bece6419f42b6b73bf18)) -* **whatsapp.gblib:** [#288](https://github.com/GeneralBots/BotServer/issues/288) unify puppteer params with GBSSR. ([b96a78e](https://github.com/GeneralBots/BotServer/commit/b96a78e810da07871dc91d6a6a017c21cb1440be)) -* **whatsapp.gblib:** [#309](https://github.com/GeneralBots/BotServer/issues/309) unify channel detection. ([cfe3ab3](https://github.com/GeneralBots/BotServer/commit/cfe3ab30f47af4f5c058c1de4c7707140fbc2312)) -* **Whatsapp.gblib:** fix "whatsapp-web.js" compatibility issues. ([cd97189](https://github.com/GeneralBots/BotServer/commit/cd97189477c452d44e9584f0152950b2aff23b88)) - - -### Features - -* **whatsapp.gblib:** add 'graphapi' option. ([ce84053](https://github.com/GeneralBots/BotServer/commit/ce84053d95b8ff69d0175a1da70ec89921493459)) - -## [2.3.9](https://github.com/GeneralBots/BotServer/compare/2.3.8...2.3.9) (2023-01-29) - - -### Bug Fixes - -* **basic.gblib:** [#326](https://github.com/GeneralBots/BotServer/issues/326) align JS and BASIC map file. ([b572cc9](https://github.com/GeneralBots/BotServer/commit/b572cc9b8db624f4d686a9cb934cb5bbd8e41cc1)) - -## [2.3.8](https://github.com/GeneralBots/BotServer/compare/2.3.7...2.3.8) (2023-01-26) - - -### Bug Fixes - -* **basic.gblib:** OPEN keyword fix. Magic number removal. ([e1c389c](https://github.com/GeneralBots/BotServer/commit/e1c389cbd03b1245deb1d2f37a415e371ed67481)) -* **basic.gblib:** OPEN keyword fix. Magic number removal. ([fe2af84](https://github.com/GeneralBots/BotServer/commit/fe2af84b21d49e2d87247dd4cb0b078371c3dfa1)) - -## [2.3.7](https://github.com/GeneralBots/BotServer/compare/2.3.6...2.3.7) (2023-01-25) - - -### Bug Fixes - -* **systemkeywords.ts:** injected security context inside systemkeywords.ts ([8a895d3](https://github.com/GeneralBots/BotServer/commit/8a895d3da1f9a2cfee680f09e79ea999cdf3db8d)) - -## [2.3.6](https://github.com/GeneralBots/BotServer/compare/2.3.5...2.3.6) (2023-01-25) - - -### Bug Fixes - -* **dialogkeywords.ts:** injected security context inside DialogKeywords ([81953d7](https://github.com/GeneralBots/BotServer/commit/81953d7d9f48407968e2d35e686347f6f6005a0d)) - -## [2.3.5](https://github.com/GeneralBots/BotServer/compare/2.3.4...2.3.5) (2023-01-19) - - -### Bug Fixes - -* **basic.gblib:** executionid and changed to pid and security context for HEAR([#322](https://github.com/GeneralBots/BotServer/issues/322)). ([9820bb3](https://github.com/GeneralBots/BotServer/commit/9820bb3f7a4905de34eb1d3fa002c8a4b098027c)) - -## [2.3.4](https://github.com/GeneralBots/BotServer/compare/2.3.3...2.3.4) (2023-01-19) - - -### Bug Fixes - -* **basic.gblib:** executionid and changed to pid and security context for HEAR. ([1063739](https://github.com/GeneralBots/BotServer/commit/1063739cbeab3ebbc1210b1962f6275d619debdd)) - -## [2.3.3](https://github.com/GeneralBots/BotServer/compare/2.3.2...2.3.3) (2023-01-17) - - -### Bug Fixes - -* **basic.gblib:** Refactoring processInfo into all methods. ([50d3fcc](https://github.com/GeneralBots/BotServer/commit/50d3fccd0dcb593662649d5cc1443017eb11227f)) - -## [2.3.2](https://github.com/GeneralBots/BotServer/compare/2.3.1...2.3.2) (2023-01-13) - - -### Bug Fixes - -* **systemkeywords.ts:** executionid, and changed to pid ([274db0d](https://github.com/GeneralBots/BotServer/commit/274db0d389f6d145355ca38d9143da4b1b1694fa)) - -## [2.3.1](https://github.com/GeneralBots/BotServer/compare/2.3.0...2.3.1) (2023-01-13) - - -### Bug Fixes - -* **gbminservice.ts:** swagger-client migration from 2.0 to 3.0 ([552e8b1](https://github.com/GeneralBots/BotServer/commit/552e8b14c41aa01c538e9eda1bb6666adb098b38)) - -# [2.3.0](https://github.com/GeneralBots/BotServer/compare/2.2.0...2.3.0) (2023-01-10) - - -### Features - -* **systemkeywords.ts:** introducing executionid feature in api ([a65a82d](https://github.com/GeneralBots/BotServer/commit/a65a82dd8a8805a4e90dfb6d7b72a49fcc611419)) - -# [2.2.0](https://github.com/GeneralBots/BotServer/compare/2.1.5...2.2.0) (2023-01-10) - - -### Features - -* **systemkeywords.ts:** introducing executionid feature in api ([52dea44](https://github.com/GeneralBots/BotServer/commit/52dea442d5fc00cebcc50ca0cb28ee4f8c12c4db)) - -## [2.1.5](https://github.com/GeneralBots/BotServer/compare/2.1.4...2.1.5) (2023-01-05) - - -### Bug Fixes - -* **gbvmservices.ts:** Update ([c62d372](https://github.com/GeneralBots/BotServer/commit/c62d372ec6fdfd46bd7b1c48f9d3212f58d8c5e6)) - -## [2.1.4](https://github.com/GeneralBots/BotServer/compare/2.1.3...2.1.4) (2023-01-05) - - -### Bug Fixes - -* **tscompiler.ts:** Update typescript import. ([f4209eb](https://github.com/GeneralBots/BotServer/commit/f4209eb4f0b89905fa463dbfe7354532b58a933e)) - -## [2.1.3](https://github.com/GeneralBots/BotServer/compare/2.1.2...2.1.3) (2023-01-04) - - -### Bug Fixes - -* **AzureDeployerService:** accessToken ([07d9cf6](https://github.com/GeneralBots/BotServer/commit/07d9cf67dbf96afe1b6811dc80c20c34e43794b7)) -* **azuredeployerservice.gbapp:** Update of password generator libs. ([57461ee](https://github.com/GeneralBots/BotServer/commit/57461ee0060e9e4224d674f07e96008419ff57b6)) -* **basic.gblib:** Threat multiple spaces as one. ([0721a3f](https://github.com/GeneralBots/BotServer/commit/0721a3fa78776259f7b238d180ee55c823787237)) -* **basic.gblib:** Threat multiple spaces as one. ([ac5911e](https://github.com/GeneralBots/BotServer/commit/ac5911ee02cc6e844d7a35788e962b8cef7a037e)) - -## [2.1.2](https://github.com/GeneralBots/BotServer/compare/2.1.1...2.1.2) (2023-01-02) - - -### Bug Fixes - -* **azuredeployer.gbapp:** createInstance free ([1b41551](https://github.com/GeneralBots/BotServer/commit/1b41551ac553f7340f29a3f17214499084752296)) - -## [2.1.1](https://github.com/GeneralBots/BotServer/compare/2.1.0...2.1.1) (2023-01-01) - - -### Bug Fixes - -* **admin.gbapp:** Fixing token generation issues. ([8fb35c2](https://github.com/GeneralBots/BotServer/commit/8fb35c2c2d4798b819e38bdf7c12ec5fe59d7f64)) -* **admin.gbapp:** Fixing token generation issues. ([2a848f4](https://github.com/GeneralBots/BotServer/commit/2a848f4ea6b7fb3359bd0f9db9a9bdf167544cab)) -* **admin.gbapp:** Fixing token generation issues. ([3de3bd6](https://github.com/GeneralBots/BotServer/commit/3de3bd6c01aaa80e38b57cdef63f80bf67fb785d)) -* **all:** Finishing renaming to main branch. ([16d2101](https://github.com/GeneralBots/BotServer/commit/16d21019a081151db21e4726cb5c2eac3326336d)) -* **all:** Finishing renaming to main branch. ([cac92cc](https://github.com/GeneralBots/BotServer/commit/cac92cca22a03b67326993f42e528900fa55a263)) -* **all:** Finishing renaming to main branch. ([bff8bcf](https://github.com/GeneralBots/BotServer/commit/bff8bcf7e5fef6499f180d1a1bc9e57f131d6299)) -* **all:** Finishing renaming to main branch. ([07f173e](https://github.com/GeneralBots/BotServer/commit/07f173ec7302a77945abc0bcd772af5ccd6c0761)) -* **all:** Fixing bugs of 3.0 ([39eff93](https://github.com/GeneralBots/BotServer/commit/39eff935283883dcbdfcb5a38c599bd3d7153cd5)) -* **all:** TODO items removed or moved to ALM. ([7348c54](https://github.com/GeneralBots/BotServer/commit/7348c5489433eb82a44af12b4a8f4e76f01998b4)) -* **basic.gblib:** Renaming branch to main. ([c6d9662](https://github.com/GeneralBots/BotServer/commit/c6d96621455039a822f19746a1d8664c79e7ca28)) -* **basic.gblib:** Renaming branch to main. ([203416c](https://github.com/GeneralBots/BotServer/commit/203416c47737c1a4cfb5e5110b4878a6534ecdcf)) -* **basic.gblib:** TODO removal. ([2b08965](https://github.com/GeneralBots/BotServer/commit/2b0896521e537e22858d9d43b019bc95079af6b5)) -* **basic.gblib:** TODO removal. ([c0133a8](https://github.com/GeneralBots/BotServer/commit/c0133a89606336824b93e453b60fce2630815c67)) -* **basic.gblib:** TODO removal. ([9ad1d56](https://github.com/GeneralBots/BotServer/commit/9ad1d5693e954e88675c7e0605b6f64f2900f9d7)) - -# [2.1.0](https://github.com/GeneralBots/BotServer/compare/2.0.182...2.1.0) (2022-12-23) - - -### Features - -* **all:** Cleaning package manager files. ([0cb406a](https://github.com/GeneralBots/BotServer/commit/0cb406ab7923761ad7476ef694d5079af059244c)) -* **all:** Token retrieve optimized. ([6eb9d6c](https://github.com/GeneralBots/BotServer/commit/6eb9d6cbf466a18283285d6775e08aa488632762)) - -## [2.0.182](https://github.com/GeneralBots/BotServer/compare/2.0.181...2.0.182) (2022-12-23) - - -### Bug Fixes - -* **all:** Node version info retrieval automated. ([9cbd8c1](https://github.com/GeneralBots/BotServer/commit/9cbd8c17de674547ed24a189084e8b99588ac69b)) - -## [2.0.181](https://github.com/GeneralBots/BotServer/compare/2.0.180...2.0.181) (2022-12-22) - - -### Bug Fixes - -* **admin.gbapp:** .gbapp List param added to .gbot. ([48a1aa4](https://github.com/GeneralBots/BotServer/commit/48a1aa4d4695b480b6724f6c59830cfe3fa45f8c)) - -## [2.0.180](https://github.com/GeneralBots/BotServer/compare/2.0.179...2.0.180) (2022-12-16) - - -### Bug Fixes - -* **all:** CI fixing. ([e4fc246](https://github.com/GeneralBots/BotServer/commit/e4fc246b252aaebd8da25b9fa6c642ad9d8d278d)) -* **all:** CI fixing. ([fa32b51](https://github.com/GeneralBots/BotServer/commit/fa32b510d94a94a687a23cb72e74aeca8e122d54)) -* **all:** fetch calls replaces request packages. ([ea6c721](https://github.com/GeneralBots/BotServer/commit/ea6c721cb53f1eaa4ab8f4b4a10ecf7329a473d6)) -* **all:** Fixing [#294](https://github.com/GeneralBots/BotServer/issues/294). ([25ce766](https://github.com/GeneralBots/BotServer/commit/25ce766820ecd2a98e2fca9e1648ac41fbe76d38)) -* **all:** Fixing bugs of 3.0 ([d09265e](https://github.com/GeneralBots/BotServer/commit/d09265e023b8b3ac746ba623cc0613c311f4c49c)) -* **all:** Fixing bugs of 3.0 ([6cad39d](https://github.com/GeneralBots/BotServer/commit/6cad39d8c70e9827c41ea4afedefe8fa330c0295)) -* **all:** Fixing bugs of 3.0. ([d180753](https://github.com/GeneralBots/BotServer/commit/d180753253a249958340dbdfeef94a1442e58675)) -* **all:** Fixing bugs of 3.0. ([83d98c7](https://github.com/GeneralBots/BotServer/commit/83d98c794fe24c420949e355b438aab9f2f46fad)) -* **all:** Fixing bugs of 3.0. ([bf705c7](https://github.com/GeneralBots/BotServer/commit/bf705c730b2bf7565e43003d4299513d1819ef38)) -* **all:** Fixing CI integration bugs. ([0ce6bc5](https://github.com/GeneralBots/BotServer/commit/0ce6bc5d8c0b68f4079b64bf6b8916bb426a1b52)) -* **all:** Fixing CI integration bugs. ([9c44e38](https://github.com/GeneralBots/BotServer/commit/9c44e385605ced77185f9b96c6f2cefb61559465)) -* **all:** Fixing CI integration bugs. ([9acb055](https://github.com/GeneralBots/BotServer/commit/9acb05567a6991334c6586db4dad888cfb84b050)) -* **all:** Fixing CI integration bugs. ([c323f5a](https://github.com/GeneralBots/BotServer/commit/c323f5a3e875448819b3d61e60c9f5b20d79aabd)) -* **all:** Fixing CI integration bugs. ([b2c1dda](https://github.com/GeneralBots/BotServer/commit/b2c1dda2b2635ef808976593ec4df542fa292bb2)) -* **all:** Fixing CI integration bugs. ([ae29dda](https://github.com/GeneralBots/BotServer/commit/ae29dda0fa027a9c59c3b6ffe57a2e9752c016ec)) -* **all:** Fixing CI integration bugs. ([0ecac1a](https://github.com/GeneralBots/BotServer/commit/0ecac1a4b52c3dbafb1cfb943be1b6f77c1fc058)) -* **all:** Fixing CI integration bugs. ([9f88210](https://github.com/GeneralBots/BotServer/commit/9f8821089a1a6f22505539ae95af3b378dfe59ae)) -* **all:** Removal of warnings and erros after pkg update. ([663c85e](https://github.com/GeneralBots/BotServer/commit/663c85e7c51ce0e2d3f31e8cbe62fcb4039ca8f6)) -* **all:** Update of arm packages and token usage. ([179b20a](https://github.com/GeneralBots/BotServer/commit/179b20a248c245e7b85635c4b3080b34ffa7c02b)) -* **core.gbapp:** Lint of all. ([4a2f8b7](https://github.com/GeneralBots/BotServer/commit/4a2f8b7b43cb7550d11965719459d3fb336739ca)) -* **core.gbapp:** Update of all packages and nodejs to 19.1.0. ([f8d2cd8](https://github.com/GeneralBots/BotServer/commit/f8d2cd895a31c41b7cdc4f688dd8dcbec6f56317)) -* **core.gbapp:** Update of all packages and nodejs to 19.1.0. ([a315d21](https://github.com/GeneralBots/BotServer/commit/a315d21cfe3775de745910764bf60bff76043053)) -* **core.gbapp:** Update of properties modifier with declare. ([21df92e](https://github.com/GeneralBots/BotServer/commit/21df92e280186b87c457e226b6f92d80bd0efa34)) -* **core.gbapp:** WARNINGS.md ([f35a2ac](https://github.com/GeneralBots/BotServer/commit/f35a2aceba957339c607d22743c02f7690bd3a97)) - -## [2.0.179](https://github.com/GeneralBots/BotServer/compare/2.0.178...2.0.179) (2022-10-22) - - -### Bug Fixes - -* **whatsapp.gblib:** FIX on HEAR ON after provider change. ([c66f9bf](https://github.com/GeneralBots/BotServer/commit/c66f9bfe041875bd2a528aef8eae884616de2e6b)) -* **whatsapp.gblib:** FIX on HEAR ON after provider change. ([1d8e7e1](https://github.com/GeneralBots/BotServer/commit/1d8e7e1763c6fce6e7bad83f6ae036f17f3141f9)) -* **whatsapp.gblib:** FIX on HEAR ON after provider change. ([916794f](https://github.com/GeneralBots/BotServer/commit/916794fc154cc16e1dce2dd7d7c523b25699e8d8)) - -## [2.0.178](https://github.com/GeneralBots/BotServer/compare/2.0.177...2.0.178) (2022-10-09) - - -### Bug Fixes - -* **whatsapp.gblib:** SEND FILE and WPP providers. ([3f7e024](https://github.com/GeneralBots/BotServer/commit/3f7e024b58660d0be0734dc5f3a3cd7884df3727)) - -## [2.0.177](https://github.com/GeneralBots/BotServer/compare/2.0.176...2.0.177) (2022-10-04) - - -### Bug Fixes - -* **whatsapp.gblib:** SEND FILE and WPP providers. ([c6de0f0](https://github.com/GeneralBots/BotServer/commit/c6de0f0fa1cf626bbe7ec86615b7283fafe2c946)) - -## [2.0.176](https://github.com/GeneralBots/BotServer/compare/2.0.175...2.0.176) (2022-09-12) - - -### Bug Fixes - -* **basic.gblib:** SCREENSHOT keyword. ([0f1ee22](https://github.com/GeneralBots/BotServer/commit/0f1ee22467577c4237992d5d7bd3af8efd1ca300)) - -## [2.0.175](https://github.com/GeneralBots/BotServer/compare/2.0.174...2.0.175) (2022-09-04) - - -### Bug Fixes - -* **whatsapp.gblib:** SEND FILE and WPP providers. ([05260c0](https://github.com/GeneralBots/BotServer/commit/05260c0ee5cada86bae5dd30db48e8c65c3ed53e)) -* **whatsapp.gblib:** SEND FILE and WPP providers. ([5261691](https://github.com/GeneralBots/BotServer/commit/5261691ba94708a9d75d9155898a13cf55137733)) - -## [2.0.174](https://github.com/GeneralBots/BotServer/compare/2.0.173...2.0.174) (2022-09-02) - - -### Bug Fixes - -* **whatsapp.gblib:** .gbapp message subprocessing. ([c14a766](https://github.com/GeneralBots/BotServer/commit/c14a766047ec1cad9e52104a52a10afb93b8fd71)) - -## [2.0.173](https://github.com/GeneralBots/BotServer/compare/2.0.172...2.0.173) (2022-09-01) - - -### Bug Fixes - -* **whatsapp.gblib:** .gbapp message subprocessing. ([e72b030](https://github.com/GeneralBots/BotServer/commit/e72b030e9554c6d442de643f73e9a3f19460973f)) -* **whatsapp.gblib:** .gbapp message subprocessing. ([9c00ddd](https://github.com/GeneralBots/BotServer/commit/9c00dddd78eeebe6ef8b156f3cc9a044c7756b1c)) - -## [2.0.172](https://github.com/GeneralBots/BotServer/compare/2.0.171...2.0.172) (2022-09-01) - - -### Bug Fixes - -* **whatsapp.gblib:** .gbapp message subprocessing. ([aeaaddc](https://github.com/GeneralBots/BotServer/commit/aeaaddc8ab53ae313c3aca687ada2fd5504398c5)) - -## [2.0.171](https://github.com/GeneralBots/BotServer/compare/2.0.170...2.0.171) (2022-09-01) - - -### Bug Fixes - -* **whatsapp.gblib:** .gbapp message subprocessing. ([a5073e0](https://github.com/GeneralBots/BotServer/commit/a5073e020eba72c3b3057d4e154e9b89b26e0cf0)) - -## [2.0.170](https://github.com/GeneralBots/BotServer/compare/2.0.169...2.0.170) (2022-08-29) - - -### Bug Fixes - -* **basic.gblib:** Impersonated SET MAX LINES. ([e9211d9](https://github.com/GeneralBots/BotServer/commit/e9211d92ac774bfdda383bb404eb0f1d4794ae6b)) - -## [2.0.169](https://github.com/GeneralBots/BotServer/compare/2.0.168...2.0.169) (2022-08-28) - - -### Bug Fixes - -* **basic.gblib:** Impersonated SET MAX LINES. ([f058a4a](https://github.com/GeneralBots/BotServer/commit/f058a4a0c6cbdc63a6c1ba3b857ccd4c1f7db8a2)) -* **basic.gblib:** Impersonated SET MAX LINES. ([8f373f3](https://github.com/GeneralBots/BotServer/commit/8f373f3691e029e415f280b81aa780a50dfc5b91)) - -## [2.0.168](https://github.com/GeneralBots/BotServer/compare/2.0.167...2.0.168) (2022-08-28) - - -### Bug Fixes - -* **core.gbapp:** More information on bot creation. ([7e7fb27](https://github.com/GeneralBots/BotServer/commit/7e7fb277d7d530026e1df9df78dfc02f3b43a418)) -* **core.gbapp:** More information on bot creation. ([e07152b](https://github.com/GeneralBots/BotServer/commit/e07152bc07beae48cc1217832951923fc6f0bc12)) - -## [2.0.167](https://github.com/GeneralBots/BotServer/compare/2.0.166...2.0.167) (2022-08-26) - - -### Bug Fixes - -* **kb.gbapp:** Skips blank answers lines. ([004cc8f](https://github.com/GeneralBots/BotServer/commit/004cc8fef586c81de55181689b29a502fd0784a1)) - -## [2.0.166](https://github.com/GeneralBots/BotServer/compare/2.0.165...2.0.166) (2022-08-26) - - -### Bug Fixes - -* **kb.gbapp:** Skips blank answers lines. ([796a412](https://github.com/GeneralBots/BotServer/commit/796a412e326982cd463863319931621301358079)) - -## [2.0.165](https://github.com/GeneralBots/BotServer/compare/2.0.164...2.0.165) (2022-08-26) - - -### Bug Fixes - -* **kb.gbapp:** Skips blank answers lines. ([143e425](https://github.com/GeneralBots/BotServer/commit/143e425bfc649478e72ad6d80ccddb7e1c70f56b)) - -## [2.0.164](https://github.com/GeneralBots/BotServer/compare/2.0.163...2.0.164) (2022-08-26) - - -### Bug Fixes - -* **kb.gbapp:** Skips blank answers lines. ([fa63a3e](https://github.com/GeneralBots/BotServer/commit/fa63a3eb6fc01e903ce42bf70f07ee41fa841ed6)) - -## [2.0.163](https://github.com/GeneralBots/BotServer/compare/2.0.162...2.0.163) (2022-08-26) - - -### Bug Fixes - -* **kb.gbapp:** Skips blank answers lines. ([46fb424](https://github.com/GeneralBots/BotServer/commit/46fb4244c71c982bebcc9c32ae42ff04405672db)) - -## [2.0.162](https://github.com/GeneralBots/BotServer/compare/2.0.161...2.0.162) (2022-08-26) - - -### Bug Fixes - -* **core.gbapp:** Translator off for two char phrases. ([bd20312](https://github.com/GeneralBots/BotServer/commit/bd20312bad29c10dbdb9ecebddd69fa845af1892)) - -## [2.0.161](https://github.com/GeneralBots/BotServer/compare/2.0.160...2.0.161) (2022-08-06) - - -### Bug Fixes - -* **whatsapp.gblib:** SEND FILE sending bug. ([7eeadfa](https://github.com/GeneralBots/BotServer/commit/7eeadfa92deea7e61c277c7a75c1d0b49d7dca5c)) - -## [2.0.160](https://github.com/GeneralBots/BotServer/compare/2.0.159...2.0.160) (2022-08-06) - - -### Bug Fixes - -* **whatsapp.gblib:** SEND FILE sending bug. ([08607e4](https://github.com/GeneralBots/BotServer/commit/08607e49bb41643f98e49759d20b33699be47251)) -* **whatsapp.gblib:** SEND FILE sending bug. ([61183a3](https://github.com/GeneralBots/BotServer/commit/61183a365440c183a46620b8a1921937182c29e2)) -* **whatsapp.gblib:** SEND FILE sending bug. ([ae96a4f](https://github.com/GeneralBots/BotServer/commit/ae96a4f1235dfab29ee7c21ddab9997cbbe7e90f)) - -## [2.0.159](https://github.com/GeneralBots/BotServer/compare/2.0.158...2.0.159) (2022-08-06) - - -### Bug Fixes - -* **whatsapp.gblib:** SEND FILE sending bug. ([9cb2852](https://github.com/GeneralBots/BotServer/commit/9cb285214c37e44bacc01b6a60d0847b8d545e3a)) - -## [2.0.158](https://github.com/GeneralBots/BotServer/compare/2.0.157...2.0.158) (2022-08-05) - - -### Bug Fixes - -* **whatsapp.gblib:** SEND FILE sending bug. ([bcc14de](https://github.com/GeneralBots/BotServer/commit/bcc14def9866ce23ac7cdced793ba5d784a37a4b)) - -## [2.0.157](https://github.com/GeneralBots/BotServer/compare/2.0.156...2.0.157) (2022-08-05) - - -### Bug Fixes - -* **whatsapp.gblib:** SEND FILE sending bug. ([8194c79](https://github.com/GeneralBots/BotServer/commit/8194c798281d6d8b80e4d1f04dcf47ba4a6538fc)) - -## [2.0.156](https://github.com/GeneralBots/BotServer/compare/2.0.155...2.0.156) (2022-07-06) - - -### Bug Fixes - -* **all:** CHART and IMAGE from GET HTTP calls. ([a3e99bb](https://github.com/GeneralBots/BotServer/commit/a3e99bb5533fb07f613e2fe1264045ff10880f3e)) - -## [2.0.155](https://github.com/GeneralBots/BotServer/compare/2.0.154...2.0.155) (2022-07-06) - - -### Bug Fixes - -* **all:** CHART and IMAGE from GET HTTP calls. ([cf62b10](https://github.com/GeneralBots/BotServer/commit/cf62b101969bdb7dc9c816b45b43e8e55b8287ee)) - -## [2.0.154](https://github.com/GeneralBots/BotServer/compare/2.0.153...2.0.154) (2022-07-01) - - -### Bug Fixes - -* **all:** /check added. ([7410085](https://github.com/GeneralBots/BotServer/commit/7410085e99ca4d72447d3cb8f7a93dacf71b383f)) -* **all:** Added MSFT cognitive stack again to test if it is working now on Azure. ([4452a31](https://github.com/GeneralBots/BotServer/commit/4452a311b18db74dd2b32492a14cd87881a610de)) -* **all:** Automated build errors. ([55ff686](https://github.com/GeneralBots/BotServer/commit/55ff686a3f44baa21c7d3f3ba1020069d1f9a155)) -* **all:** Automated build errors. ([ce2b484](https://github.com/GeneralBots/BotServer/commit/ce2b484f8eb7dd84bcd67f7fb772374c0a89bcbc)) -* **all:** Building failed as typedoc bugs. ([55bc5ef](https://github.com/GeneralBots/BotServer/commit/55bc5ef3826fddede16def11726b7a69e4a38769)) -* **all:** Building failed as typedoc bugs. ([6778f2e](https://github.com/GeneralBots/BotServer/commit/6778f2eb59b8b2624db1bf9c938e3cb1a93a174a)) -* **all:** Comparison of strings in FIND operators. ([47d553f](https://github.com/GeneralBots/BotServer/commit/47d553f8f0bce15f81c802409b3ada98ae559187)) -* **all:** Compilation error in MS AZURE (again). ([88a908a](https://github.com/GeneralBots/BotServer/commit/88a908a1241a6854b425ddc7156ec844c200e682)) -* **all:** Compilation error in MS AZURE (again). ([227c30a](https://github.com/GeneralBots/BotServer/commit/227c30ac339f71705fbccb4b09e4bc2fc5ebe0f7)) -* **all:** Corrected dates o MS EXcel saving. ([1899b1c](https://github.com/GeneralBots/BotServer/commit/1899b1c755352ea8efce6a11501ef3a5b45de153)) -* **all:** Corrected mobile number to WhatsApp while output md. ([55568e2](https://github.com/GeneralBots/BotServer/commit/55568e2ba8b13f57656abf13f53f8241a9edb0ae)) -* **all:** Corrected mobile number to WhatsApp while output md. ([0fda382](https://github.com/GeneralBots/BotServer/commit/0fda382a43b6752a6d09dd6d1f7d47d186636a73)) -* **all:** Corrected mobile number to WhatsApp while output md. ([f0ad1ae](https://github.com/GeneralBots/BotServer/commit/f0ad1aea655b7ba276069b38a45104b7667aeef6)) -* **all:** Corrected mobile number to WhatsApp while output md. ([9257ac7](https://github.com/GeneralBots/BotServer/commit/9257ac72715c4b769218dcb1f5ee86dc89d216ab)) -* **all:** Corrected mobile number to WhatsApp while output md. ([95524a9](https://github.com/GeneralBots/BotServer/commit/95524a902ce7fff4236362707d6041cc920e5552)) -* **all:** Enable https in place. ([6b05405](https://github.com/GeneralBots/BotServer/commit/6b05405705f0e224ed342c0e90628c8ac4f68c0d)) -* **all:** Enable https in place. ([722a950](https://github.com/GeneralBots/BotServer/commit/722a9500332720e97dadb71dc2c787881d60d9dc)) -* **all:** Enable https in place. ([4779d49](https://github.com/GeneralBots/BotServer/commit/4779d4968f9a2698795a35e74242556cd20f164d)) -* **all:** Enable https in place. ([41f3f8a](https://github.com/GeneralBots/BotServer/commit/41f3f8a5755d3d4ba2161c17d15cb29793621879)) -* **all:** Enable https in place. ([1c26466](https://github.com/GeneralBots/BotServer/commit/1c26466a00ba8d370173a1f436cb2e8fa9a47b70)) -* **all:** Group improvements and isolation. ([dcb1c47](https://github.com/GeneralBots/BotServer/commit/dcb1c47f07acf6f9998be4a5eb86f0b58f7c26d1)) -* **all:** Group improvements, group type in from column. ([55fdcbb](https://github.com/GeneralBots/BotServer/commit/55fdcbb9b57b7d9af00cd086e772b4fb7f528c52)) -* **all:** Migration to Linus. ([d8e950c](https://github.com/GeneralBots/BotServer/commit/d8e950c91dc7332885b9b38ab9bbc22cffe656f6)) -* **all:** Migration to Linus. ([820942c](https://github.com/GeneralBots/BotServer/commit/820942c41b44b29cad20e4d565d9e34bdc9aa6dc)) -* **all:** Migration to Linus. ([78ed13b](https://github.com/GeneralBots/BotServer/commit/78ed13bb5ea185fcd8d46da36994193af586fd39)) -* **all:** Migration to Linus. ([d2b2f29](https://github.com/GeneralBots/BotServer/commit/d2b2f29d5577f1b21286c4b9d220091bb8ce1a5c)) -* **all:** Migration to Linus. ([da881cb](https://github.com/GeneralBots/BotServer/commit/da881cbaaf577da170af1db9ad9c1e39ac307fcf)) -* **all:** Migration to Linus. ([241b572](https://github.com/GeneralBots/BotServer/commit/241b5721425cee77b8e2057c65037af45e7f0897)) -* **all:** Migration to Linus. ([8586ec5](https://github.com/GeneralBots/BotServer/commit/8586ec55cf6b47ed0c833182898deedb332243c5)) -* **all:** Migration to Linus. ([15f9c61](https://github.com/GeneralBots/BotServer/commit/15f9c619830f56774e4a36d96ccf4b9f3497da2f)) -* **all:** Migration to Linus. ([54c4769](https://github.com/GeneralBots/BotServer/commit/54c47694f76a58ffaca0eda78a7c672303cc312b)) -* **all:** Migration to Linus. ([35a4e4d](https://github.com/GeneralBots/BotServer/commit/35a4e4d1d9400e47bf506d70ff7a0e7ac34cd476)) -* **all:** Migration to Linus. ([ef5eb6c](https://github.com/GeneralBots/BotServer/commit/ef5eb6cea60d03b08247cff2fb0a0c9182ab136c)) -* **all:** Migration to Linus. ([8dcea93](https://github.com/GeneralBots/BotServer/commit/8dcea9384d0373843718f39ab867694e13d8a844)) -* **all:** Migration to Linus. ([905690e](https://github.com/GeneralBots/BotServer/commit/905690e987bebf428e78c6e5fef8d517dac2bc0b)) -* **all:** Migration to Linus. ([fc0f5ae](https://github.com/GeneralBots/BotServer/commit/fc0f5aefe0e0a541adc3e152b1a0c7756d1a50e0)) -* **all:** MSTeams fixes. ([d6f8574](https://github.com/GeneralBots/BotServer/commit/d6f8574ecbf921a2cf63443dea0ceeeb0a520c73)) -* **all:** SEARCH error in MS AZURE (again). ([fb53be5](https://github.com/GeneralBots/BotServer/commit/fb53be5b64b4d44412ded41505e054e76a265309)) -* **all:** TS issues. ([4a6917a](https://github.com/GeneralBots/BotServer/commit/4a6917a48d14666772dabc817de8e94f6b3fced8)) -* **all:** yarn vs npm on MSFT. ([b116026](https://github.com/GeneralBots/BotServer/commit/b1160260b38cf569565773384c14a0f7c6915664)) -* **all:** yarn vs npm on MSFT. ([97f5f15](https://github.com/GeneralBots/BotServer/commit/97f5f154c03733a30e3b45cacbc64e82ae11de4d)) -* **azuredeployer.gblib:** Fix MSFT changes. ([64d9884](https://github.com/GeneralBots/BotServer/commit/64d9884b69256c77887d50c8e256f625234be916)) -* **azuredeployer.gblib:** Fix MSFT changes. ([b017f32](https://github.com/GeneralBots/BotServer/commit/b017f32b04bece944b379226478b1007978f4e9d)) -* **basic.gblib:** Get all text from webservice inside SEE TEXT keyword. ([932e131](https://github.com/GeneralBots/BotServer/commit/932e131a50b7f7b5d0e5548c7439658ecacbf18f)) -* **basic.gblib:** Get all text from webservice inside SEE TEXT keyword. ([8d61ae5](https://github.com/GeneralBots/BotServer/commit/8d61ae5536c840e51122ad224689c1f7a58126a9)) -* **basic.gblib:** Hear callback for login only active if ENABLE_AUTH is defined. ([a628948](https://github.com/GeneralBots/BotServer/commit/a6289483940eef2868ec1ed467cb42c0db13e6e5)) -* **basic.gblib:** TALK TO bug after conversationId update. ([b45f737](https://github.com/GeneralBots/BotServer/commit/b45f7372da069c7644ad12ae305dcb1a05447ec2)) -* **basic.gblib:** TALK TO bug after conversationId update. ([250b332](https://github.com/GeneralBots/BotServer/commit/250b3320a2698ceb8985087c2cbf82036bb48ead)) -* **basic.gblib:** Username was not being retrived. ([0335b71](https://github.com/GeneralBots/BotServer/commit/0335b715cdb37db199e32a3815887ca62049fbbe)) -* **core.gbapp:** Added IBM for TTS and removed MSFT while it does not compile on AZR. ([abe4281](https://github.com/GeneralBots/BotServer/commit/abe4281b73d049517e5032f24d693886169d6abc)) -* **core.gbapp:** Added IBM for TTS and removed MSFT while it does not compile on AZR. ([12c9bea](https://github.com/GeneralBots/BotServer/commit/12c9bea16726a04b0d040fcc64e7e262786f26a3)) -* **core.gbapp:** Added IBM for TTS and removed MSFT while it does not compile on AZR. ([2a81604](https://github.com/GeneralBots/BotServer/commit/2a816049bc7ac5c6056287459609499ebe4d7b79)) -* **core.gbapp:** Added IBM for TTS and removed MSFT while it does not compile on AZR. ([bef4fea](https://github.com/GeneralBots/BotServer/commit/bef4fea9de887aec2a0cee89029c4aa9cc3d0050)) -* **core.gbapp:** Added IBM for TTS and removed MSFT while it does not compile on AZR. ([596a6eb](https://github.com/GeneralBots/BotServer/commit/596a6ebba309878627009c956db7e7b332dbcff4)) -* **core.gbapp:** Added IBM for TTS and removed MSFT while it does not compile on AZR. ([4dbc1eb](https://github.com/GeneralBots/BotServer/commit/4dbc1eb6a0d930c54c853dad253958e66d42e737)) -* **core.gbapp:** Fixed no publish of artifacts. ([c12a7d7](https://github.com/GeneralBots/BotServer/commit/c12a7d736c18d9afdd69f4e13c98f7b0a85ea654)) -* **core.gbapp:** Just compile what has been changed. ([df6f146](https://github.com/GeneralBots/BotServer/commit/df6f146fd93ad7c5282694f7d3d8246c5109f082)) -* **security.gbalib:** Transfer issues fixed. ([fefcbb0](https://github.com/GeneralBots/BotServer/commit/fefcbb04bff2a40fbf0ce0df96f7566ee386d925)) -* **security.gbalib:** Transfer issues fixed. ([6ebd38d](https://github.com/GeneralBots/BotServer/commit/6ebd38d3eb524c846db4f62bb7373de5d1374892)) -* **security.gbalib:** Transfer issues fixed. ([660faaf](https://github.com/GeneralBots/BotServer/commit/660faafb530b362491a327d6e3921f71b94f0aa9)) - -## [2.0.153](https://github.com/GeneralBots/BotServer/compare/2.0.152...2.0.153) (2021-10-02) - - -### Bug Fixes - -* **all:** Compilation error in MS AZURE (again). ([5fc6c58](https://github.com/GeneralBots/BotServer/commit/5fc6c580887ba298783b70c4b429d38e78e69140)) -* **all:** Compilation error in MS AZURE (again). ([8c14913](https://github.com/GeneralBots/BotServer/commit/8c14913c1f2179ba1df02f05df2e061ffc03bf29)) - -## [2.0.152](https://github.com/GeneralBots/BotServer/compare/2.0.151...2.0.152) (2021-09-24) - - -### Bug Fixes - -* **core.gbapp:** Remove web message about projector content. ([3edcea9](https://github.com/GeneralBots/BotServer/commit/3edcea9887ddc228645b3ff8e35000112f3a2cd4)) - -## [2.0.151](https://github.com/GeneralBots/BotServer/compare/2.0.150...2.0.151) (2021-09-18) - - -### Bug Fixes - -* **basic.gblib:** Goto dialog within web. ([565f200](https://github.com/GeneralBots/BotServer/commit/565f200ebfd221101c2a97500a136e55f064ef45)) - -## [2.0.150](https://github.com/GeneralBots/BotServer/compare/2.0.149...2.0.150) (2021-09-16) - - -### Bug Fixes - -* **core.gbapp:** Fix bug in Teams handling. ([7c44669](https://github.com/GeneralBots/BotServer/commit/7c446699eb47042bad076cf8d532bc51f5d54b1f)) -* **core.gbapp:** Fix main NLP problem in Y calls. ([c600a91](https://github.com/GeneralBots/BotServer/commit/c600a91cde10acbe553197df167d7181f681f7bf)) - -## [2.0.149](https://github.com/GeneralBots/BotServer/compare/2.0.148...2.0.149) (2021-09-13) - - -### Bug Fixes - -* **basic.gblib:** Goto dialog within web. ([7abc079](https://github.com/GeneralBots/BotServer/commit/7abc079e84c15d52a852a0653eb274bfa65b407a)) - -## [2.0.148](https://github.com/GeneralBots/BotServer/compare/2.0.147...2.0.148) (2021-09-13) - - -### Bug Fixes - -* **basic.gblib:** Goto dialog within web. ([e3c07f4](https://github.com/GeneralBots/BotServer/commit/e3c07f48f5133801283cc7544c900cc40a636bd6)) - -## [2.0.147](https://github.com/GeneralBots/BotServer/compare/2.0.146...2.0.147) (2021-09-13) - - -### Bug Fixes - -* **basic.gblib:** Goto dialog within web. ([43a3d58](https://github.com/GeneralBots/BotServer/commit/43a3d58cb5266aec89bf94c35afee079726db14e)) - -## [2.0.146](https://github.com/GeneralBots/BotServer/compare/2.0.145...2.0.146) (2021-08-31) - - -### Bug Fixes - -* **basic.gblib:** Fixes /answer bug. ([339e850](https://github.com/GeneralBots/BotServer/commit/339e8501a981b5a0d35a9ab7ad1c5d895227e838)) - -## [2.0.145](https://github.com/GeneralBots/BotServer/compare/2.0.144...2.0.145) (2021-08-31) - - -### Bug Fixes - -* **basic.gblib:** Traces to solve /answer bug. ([db07689](https://github.com/GeneralBots/BotServer/commit/db07689520364ec1c5d2d7b64156ce35bbd08390)) - -## [2.0.144](https://github.com/GeneralBots/BotServer/compare/2.0.143...2.0.144) (2021-08-30) - - -### Bug Fixes - -* **basic.gblib:** Now BASIC only runs after auth. ([dfb869e](https://github.com/GeneralBots/BotServer/commit/dfb869e7967c304ecf9cb042e5ff3ddc9cc99603)) - -## [2.0.143](https://github.com/GeneralBots/BotServer/compare/2.0.142...2.0.143) (2021-08-30) - - -### Bug Fixes - -* **all:** Intl. dates wrongly formatted due to Node version. ([dcf26a7](https://github.com/GeneralBots/BotServer/commit/dcf26a7316ebf94c0e9b1769eac582791a7a3832)) -* **all:** Intl. dates wrongly formatted due to Node version. ([f4711b7](https://github.com/GeneralBots/BotServer/commit/f4711b76fdd572fa960d624eeb8a858b9bd30b4f)) - -## [2.0.142](https://github.com/GeneralBots/BotServer/compare/2.0.141...2.0.142) (2021-08-29) - - -### Bug Fixes - -* **basic.gblib:** Fix in WEEKDAY culture always in English. ([87d94cb](https://github.com/GeneralBots/BotServer/commit/87d94cb7bf2456a798b9a8640a604fbf7c33636f)) - -## [2.0.141](https://github.com/GeneralBots/BotServer/compare/2.0.140...2.0.141) (2021-08-28) - - -### Bug Fixes - -* **basic.gblib:** Fix in WEEKDAY culture always in English. ([45d0bf3](https://github.com/GeneralBots/BotServer/commit/45d0bf3a8513c927c16788204c9cd4604ad21691)) - -## [2.0.140](https://github.com/GeneralBots/BotServer/compare/2.0.139...2.0.140) (2021-08-28) - - -### Bug Fixes - -* **core.gbapp:** Autostart twice fixed. ([2304876](https://github.com/GeneralBots/BotServer/commit/23048760b69e784b23629ac3dbe88f7f08da8b7d)) - -## [2.0.139](https://github.com/GeneralBots/BotServer/compare/2.0.138...2.0.139) (2021-08-26) - - -### Bug Fixes - -* **all:** npm is now included to build internal packages. ([5aa5f1e](https://github.com/GeneralBots/BotServer/commit/5aa5f1ee3a42ec90cc70a1901a095a9d23120c9e)) - -## [2.0.138](https://github.com/GeneralBots/BotServer/compare/2.0.137...2.0.138) (2021-08-19) - - -### Bug Fixes - -* **core.gbapp:** Images now working in WhatsApp. ([525f465](https://github.com/GeneralBots/BotServer/commit/525f465be4fd63d3d3612212adb60f844e044ed8)) - -## [2.0.137](https://github.com/GeneralBots/BotServer/compare/2.0.136...2.0.137) (2021-08-16) - - -### Bug Fixes - -* **basic.gblib:** NOW keyword is now formatting values with two zeros. ([1ed7cfa](https://github.com/GeneralBots/BotServer/commit/1ed7cfaf7430d28e41104e7e34bf54bade71f9fe)) - -## [2.0.136](https://github.com/GeneralBots/BotServer/compare/2.0.135...2.0.136) (2021-08-15) - - -### Bug Fixes - -* **basic.gblib:** NOW keyword is now formatting values with two zeros. ([0cd79e6](https://github.com/GeneralBots/BotServer/commit/0cd79e6ef17f3935280be158f6902b0964cba9c8)) - -## [2.0.135](https://github.com/GeneralBots/BotServer/compare/2.0.134...2.0.135) (2021-08-15) - - -### Bug Fixes - -* **basic.gblib:** NOW keyword is now formatting values with two zeros. ([5c8efee](https://github.com/GeneralBots/BotServer/commit/5c8efeef2ae4f29b6588c257432d176760fa40dd)) - -## [2.0.134](https://github.com/GeneralBots/BotServer/compare/2.0.133...2.0.134) (2021-08-15) - - -### Bug Fixes - -* **basic.gblib:** NOW keyword is now formatting values with two zeros. ([296b999](https://github.com/GeneralBots/BotServer/commit/296b999ec3634872c201d5165ddec593066f094c)) - -## [2.0.133](https://github.com/GeneralBots/BotServer/compare/2.0.132...2.0.133) (2021-08-15) - - -### Bug Fixes - -* **basic.gblib:** NOW keyword is now formatting values with two zeros. ([b99c917](https://github.com/GeneralBots/BotServer/commit/b99c917754f6aaa0516011a25b1e219b2084156d)) -* **basic.gblib:** NOW keyword is now formatting values with two zeros. ([9c1787b](https://github.com/GeneralBots/BotServer/commit/9c1787b632c0d66861165e3e522b05b1b713e6c7)) - -## [2.0.132](https://github.com/GeneralBots/BotServer/compare/2.0.131...2.0.132) (2021-08-15) - - -### Bug Fixes - -* **basic.gblib:** TOLIST fixed for empty values. ([66c0c4b](https://github.com/GeneralBots/BotServer/commit/66c0c4b90d2389c2b3af43741d181b6d5764173b)) - -## [2.0.131](https://github.com/GeneralBots/BotServer/compare/2.0.130...2.0.131) (2021-08-14) - - -### Bug Fixes - -* **basic.gblib:** TOLIST fixed for empty values. ([4969171](https://github.com/GeneralBots/BotServer/commit/49691710b9b94a25a8127c0cd8ac947dbafb59ea)) - -## [2.0.130](https://github.com/GeneralBots/BotServer/compare/2.0.129...2.0.130) (2021-08-13) - - -### Bug Fixes - -* **kb.gbapp:** Fixing WHOLE WORD in Simple Search. ([3ad3459](https://github.com/GeneralBots/BotServer/commit/3ad3459e4b74263cdba4142f2c42452ad9d2cdbc)) - -## [2.0.129](https://github.com/GeneralBots/BotServer/compare/2.0.128...2.0.129) (2021-08-11) - - -### Bug Fixes - -* **all:** FIND OR TALK fixed. ([a8e517d](https://github.com/GeneralBots/BotServer/commit/a8e517d1f405dc743f4ee398ecd298f8b9b3952f)) - -## [2.0.128](https://github.com/GeneralBots/BotServer/compare/2.0.127...2.0.128) (2021-08-11) - - -### Bug Fixes - -* **all:** HEAR call back errors removed. ([375d107](https://github.com/GeneralBots/BotServer/commit/375d107dd247acdfed2584bc3a295b7099c6db31)) - -## [2.0.127](https://github.com/GeneralBots/BotServer/compare/2.0.126...2.0.127) (2021-06-21) - - -### Bug Fixes - -* **core.gbapp:** Fix default theme information. ([40a95ec](https://github.com/GeneralBots/BotServer/commit/40a95ec883dc0a06d29f290af389c307a76befcb)) - -## [2.0.126](https://github.com/GeneralBots/BotServer/compare/2.0.125...2.0.126) (2021-06-21) - - -### Bug Fixes - -* **core.gbapp:** Fix default theme information. ([e2fee04](https://github.com/GeneralBots/BotServer/commit/e2fee04cfcd40d85bcfb963825e924f0b66b271f)) -* **core.gbapp:** Fix default theme information. ([e1f0176](https://github.com/GeneralBots/BotServer/commit/e1f0176409f2c2a87b8f3aee349b9c6b27c145e0)) - -## [2.0.125](https://github.com/GeneralBots/BotServer/compare/2.0.124...2.0.125) (2021-06-20) - - -### Bug Fixes - -* **core.gbapp:** Auto-start is optional again. ([74956e8](https://github.com/GeneralBots/BotServer/commit/74956e8fd98374700bd8a544928cd529da9dd975)) - -## [2.0.124](https://github.com/GeneralBots/BotServer/compare/2.0.123...2.0.124) (2021-06-17) - - -### Bug Fixes - -* **core.gbapp:** Min Boot bot now is defined again. ([f65b3ea](https://github.com/GeneralBots/BotServer/commit/f65b3ea9c4efa38c15484a92b70f6eae3baa8321)) - -## [2.0.123](https://github.com/GeneralBots/BotServer/compare/2.0.122...2.0.123) (2021-06-17) - - -### Bug Fixes - -* **core.gbapp:** FB channel is optional. ([64ce414](https://github.com/GeneralBots/BotServer/commit/64ce41434a5dddbac83125dec576f5c8979925ba)) - -## [2.0.122](https://github.com/GeneralBots/BotServer/compare/2.0.121...2.0.122) (2021-06-16) - - -### Bug Fixes - -* **all:** Removal of MSFT cog. services. ([7f970ee](https://github.com/GeneralBots/BotServer/commit/7f970ee77fc40466510037fa1949bd7ef2892b8f)) - -## [2.0.121](https://github.com/GeneralBots/BotServer/compare/2.0.120...2.0.121) (2021-06-16) - - -### Bug Fixes - -* **all:** MSFT mistake again being fixed rolling back version of non-tested on Azure packages. ([cdd1a99](https://github.com/GeneralBots/BotServer/commit/cdd1a9968c21315f23e1434f1af1d1726928225d)) -* **all:** Trying to get Google packages on AZ. ([9c53791](https://github.com/GeneralBots/BotServer/commit/9c53791e7288b358af5c3ca0adb94f8076287506)) -* **whatsapp.gblib:** Adding Google to WhatsApp. ([dc9286f](https://github.com/GeneralBots/BotServer/commit/dc9286ffe88145fc9b119e3430ca904bea86fbe4)) - -## [2.0.120](https://github.com/GeneralBots/BotServer/compare/2.0.119...2.0.120) (2021-06-13) - - -### Bug Fixes - -* **all:** .gblib has Package interface to allow export of services. ([8767d0b](https://github.com/GeneralBots/BotServer/commit/8767d0b5f981227ecfc00413554b68569e4570f3)) -* **all:** Bot factory creation from command line fixed. ([8de9777](https://github.com/GeneralBots/BotServer/commit/8de9777423f02e2d4dba354ce026a41211b504de)) -* **all:** CI now can compile docs again. ([d8b17af](https://github.com/GeneralBots/BotServer/commit/d8b17af9e80f77408007f30caf9b8f3f4e9d100a)) -* **all:** General Bots now can show Office documents on projector. ([21117c2](https://github.com/GeneralBots/BotServer/commit/21117c297c27164f51202f3aa5bc0a2219858a75)) -* **all:** Packages updated and new DirectLine behaviour fixed. ([517689f](https://github.com/GeneralBots/BotServer/commit/517689fafee83f4461df1d9dfc530e969ac6fc9f)) -* **all:** Removed security breach. ([0202ed0](https://github.com/GeneralBots/BotServer/commit/0202ed0ef54711181baf84525b730eee8fc62a44)) -* **all:** Removed security breach. ([dad67d2](https://github.com/GeneralBots/BotServer/commit/dad67d27ba0963aa272837934a2ee6daa9145928)) -* **all:** Sequelize base members demand keyword on timestamp fields. ([42719e7](https://github.com/GeneralBots/BotServer/commit/42719e7ba0cbb6df50880ee0cf626516424ab59b)) -* **all:** Sequelize base members demand keyword on timestamp fields. ([493889b](https://github.com/GeneralBots/BotServer/commit/493889beb218eed8a1ed4dd9550d6d952714bb56)) -* **azuredeployer.gbapp:** New pricing table. ([7f641bd](https://github.com/GeneralBots/BotServer/commit/7f641bd5df3fa5c88f34164193ff1bd6b1d7e956)) -* **basic.gbapp:** Call to SEND FILE with .md files working OK. ([80b91c4](https://github.com/GeneralBots/BotServer/commit/80b91c437001a890131e509d67604e42c27cea2e)) -* **basic.gblib:** Autostart bug, more logging. ([3d90bd8](https://github.com/GeneralBots/BotServer/commit/3d90bd872e093d24336df4d83991b67dc90d1d80)) -* **basic.gblib:** Dialogs are now ending OK. ([c1fe708](https://github.com/GeneralBots/BotServer/commit/c1fe708aa752768f646fff0a4f50a7d392e47e92)) -* **basic.gblib:** FIND now has an in-line not found message option. ([584ed55](https://github.com/GeneralBots/BotServer/commit/584ed55f5c548848443afb7c7d5eb260bbfda41a)) -* **basic.gblib:** Fix BASIC options set by SET instructions. ([80697cf](https://github.com/GeneralBots/BotServer/commit/80697cf94425bbc792bb322606a3d62d911f2b09)) -* **basic.gblib:** Fix in free tier. ([660d130](https://github.com/GeneralBots/BotServer/commit/660d1309ef0c62ae9e20aad06a8ed84797aeed61)) -* **basic.gblib:** Fix in not translating hear. ([66d33cb](https://github.com/GeneralBots/BotServer/commit/66d33cbe39560f2de5b91090f2c330153e1a5a9f)) -* **basic.gblib:** SET MAX LINES now available to user larger files. ([3e13202](https://github.com/GeneralBots/BotServer/commit/3e1320212908f5c9fda8c7b0c2104564c3d80586)) -* **basic.gblib:** Startup duplicated messages removed. ([fcc8ce5](https://github.com/GeneralBots/BotServer/commit/fcc8ce5a8b838d9b7fc3230715c8e84f07754f42)) -* **core.gbapp:** Auto start fixed for wa, teams and web. ([5021e7f](https://github.com/GeneralBots/BotServer/commit/5021e7fcf1d87c0492c0c403916a0f851112b172)) -* **core.gbapp:** Auto start for whatsapp OK. ([9cb4d11](https://github.com/GeneralBots/BotServer/commit/9cb4d115055f64d47f337f9e665afce5b9ecd5d2)) -* **core.gbapp:** Boot process fully tested. ([a6d1f90](https://github.com/GeneralBots/BotServer/commit/a6d1f90bbf3b4079963025fc4b442f6f50d7da90)) -* **core.gbapp:** Fix bot creation. ([5a7895e](https://github.com/GeneralBots/BotServer/commit/5a7895ecd45aa948b0464070c507ae941eac566b)) -* **core.gbapp:** Fix for autostart. ([5fda86d](https://github.com/GeneralBots/BotServer/commit/5fda86d1fdb01fd122f6c28edac7458c520aec95)) -* **core.gbapp:** Fix in launch of start dialog. ([dd40f32](https://github.com/GeneralBots/BotServer/commit/dd40f32cf3ec849234402a5a32a99e776cc7aa05)) -* **core.gbapp:** Fix WhatsApp start bug. ([e799524](https://github.com/GeneralBots/BotServer/commit/e79952454694ac121ea71288246a8b9b46b850de)) -* **core.gbapp:** Fixes in a blank environment creation. ([b0d45c3](https://github.com/GeneralBots/BotServer/commit/b0d45c32122fd3a673f4416bf07f0c4e8f78b664)) -* **core.gbapp:** Logging about auto start. ([3d42ab9](https://github.com/GeneralBots/BotServer/commit/3d42ab91bb7042dda1e43bc18657f93f5af746ee)) -* **core.gbapp:** NLP is not required in startup. ([b120cf6](https://github.com/GeneralBots/BotServer/commit/b120cf6674181d728c13138fecd11550f82fbec3)) -* **core.gbapp:** Start for WhatsApp fixed. ([5ba9df4](https://github.com/GeneralBots/BotServer/commit/5ba9df4e5f51e756d23eca9b800ec5bd61655dce)) -* **core.gbapp:** Startup fix still testing. ([4268ea9](https://github.com/GeneralBots/BotServer/commit/4268ea99715f25c573c509d57fef2ee6e62d32ff)) -* **core.gbapp:** Translator hierachy param tree is OK. ([94e791c](https://github.com/GeneralBots/BotServer/commit/94e791ca71ebbfe5861ca754aa3539287f6d6ac1)) -* **default.gbui:** Removed warnings from code. ([473a160](https://github.com/GeneralBots/BotServer/commit/473a160941b471aa87c19c714a5e8fc0107d5672)) -* **default.gbui:** Removed warnings from code. ([d742c00](https://github.com/GeneralBots/BotServer/commit/d742c00567c344d5f9be4edde307ee98b6fcc375)) -* **kb.gbapp:** Apostrophes correctly processed now. ([da8ee93](https://github.com/GeneralBots/BotServer/commit/da8ee93ba70068b2a07563da6bd5481af8026aa2)) -* **kb.gbapp:** Fix in Video of .md. ([30cdef6](https://github.com/GeneralBots/BotServer/commit/30cdef67ee14464c6df79ef0145034fc79c58ff9)) -* **kb.gbapp:** Full HTTPS address in images. ([53a5d8d](https://github.com/GeneralBots/BotServer/commit/53a5d8d692f898de479f88b1ae8f5d30709c67ab)) -* **kb.gbapp:** Markdown OK again for MSTeams. ([5fa88f0](https://github.com/GeneralBots/BotServer/commit/5fa88f0e7ed6dffdbfb7e1515b9b26b290537c37)) -* **kb.gbapp:** MD now can play videos. ([a427566](https://github.com/GeneralBots/BotServer/commit/a4275661964162e74ae17f13a51241124be90368)) -* **kb.gbapp:** Simple search ignoring now ponctuation. ([657dd0b](https://github.com/GeneralBots/BotServer/commit/657dd0b849a64d6307595d8e0117cb9a17c52b51)) -* **security.gbapp:** E-mail used with no spellchecker turned on. ([d2b0a20](https://github.com/GeneralBots/BotServer/commit/d2b0a2073b4d5f036f051944bc700e2600e5e3e4)) -* **whatsapp.gblib:** Field mobile used instead of id in message. ([ac9d065](https://github.com/GeneralBots/BotServer/commit/ac9d065a61f5a9c50c185642e2b17c6fbb653fcd)) -* **whatsapp.gblib:** Removal of trash in phone ID. ([819b593](https://github.com/GeneralBots/BotServer/commit/819b5937bb31e41666fc65a357cbee20790825b8)) - -## [2.0.119](https://github.com/GeneralBots/BotServer/compare/2.0.118...2.0.119) (2021-03-31) - - -### Bug Fixes - -* **core.gbapp:** Pt synonyms added. ([5a3eb2f](https://github.com/GeneralBots/BotServer/commit/5a3eb2f690ef9699536369b7152dfcb6b3cd237f)) - -## [2.0.118](https://github.com/GeneralBots/BotServer/compare/2.0.117...2.0.118) (2021-03-31) - - -### Bug Fixes - -* **kb.gbapp:** Quotes to prevent question indexing. ([e9a9a47](https://github.com/GeneralBots/BotServer/commit/e9a9a478db7df558b6d76abace045aab7b1ae699)) - -## [2.0.117](https://github.com/GeneralBots/BotServer/compare/2.0.116...2.0.117) (2021-03-31) - - -### Bug Fixes - -* **kb.gbapp:** Simple search prioritized correctly. ([8136e34](https://github.com/GeneralBots/BotServer/commit/8136e34f1ef8b389663566ad78c0a3f649aef8ea)) - -## [2.0.116](https://github.com/GeneralBots/BotServer/compare/2.0.115...2.0.116) (2021-03-30) - - -### Bug Fixes - -* **core.gbapp:** Start dialog now is called with no interruptions. ([f66bbb8](https://github.com/GeneralBots/BotServer/commit/f66bbb8fcef351262fea8baf532ce191ef7344ec)) - -## [2.0.115](https://github.com/GeneralBots/BotServer/compare/2.0.114...2.0.115) (2021-03-30) - - -### Bug Fixes - -* **all:** End of dialog now OK. ([9b78594](https://github.com/GeneralBots/BotServer/commit/9b785948cc6041c2cba2525b53bf8cb64cca795c)) - -## [2.0.114](https://github.com/GeneralBots/BotServer/compare/2.0.113...2.0.114) (2021-03-09) - - -### Bug Fixes - -* **basic.gblib:** Trying to find invalid cell value on .xlsx being filtered. ([3f0b020](https://github.com/GeneralBots/BotServer/commit/3f0b0201559261cc2069e6cf400eecdb76dbe492)) - -## [2.0.113](https://github.com/GeneralBots/BotServer/compare/2.0.112...2.0.113) (2021-03-09) - - -### Bug Fixes - -* **basic.gblib:** Trying to fix FIND error on filtering. ([5422e69](https://github.com/GeneralBots/BotServer/commit/5422e69841820368ae08183a212c98d064f18dc1)) - -## [2.0.112](https://github.com/GeneralBots/BotServer/compare/2.0.111...2.0.112) (2021-03-08) - - -### Bug Fixes - -* **basic.gblib:** Using mobile instead of step on SEND FILE TO. ([51a6d55](https://github.com/GeneralBots/BotServer/commit/51a6d557aead10152da6a63675c68262ff48e521)) - -## [2.0.111](https://github.com/GeneralBots/BotServer/compare/2.0.110...2.0.111) (2021-03-08) - - -### Bug Fixes - -* **basic.gblib:** More loggin on BASIC keywords. ([d0e42f0](https://github.com/GeneralBots/BotServer/commit/d0e42f0ae16c0432245dc547e569a23714c36185)) -* **basic.gblib:** More logging in BASIC keywords. ([e016052](https://github.com/GeneralBots/BotServer/commit/e01605230983d5e567ebddf9c76efde277e3e7dd)) - -## [2.0.110](https://github.com/GeneralBots/BotServer/compare/2.0.109...2.0.110) (2021-03-08) - - -### Bug Fixes - -* **basic.gblib:** Step added to SEND FILE TO. ([f40eae7](https://github.com/GeneralBots/BotServer/commit/f40eae7b5918ca3f8b4a3910a37c2d7dbb98b210)) -* **basic.gblib:** Step added to SendFileTo. ([85e9602](https://github.com/GeneralBots/BotServer/commit/85e96023c3af16051a271e123004173d9fe9cecf)) - -## [2.0.109](https://github.com/GeneralBots/BotServer/compare/2.0.108...2.0.109) (2021-03-02) - - -### Bug Fixes - -* **basic.gblib:** Start of script error removed. ([2820eac](https://github.com/GeneralBots/BotServer/commit/2820eacc5995daf6839405fd459934556172894b)) - -## [2.0.108](https://github.com/GeneralBots/BotServer/compare/2.0.107...2.0.108) (2021-03-01) - - -### Bug Fixes - -* **all:** Convert is OK. ([da582b0](https://github.com/GeneralBots/BotServer/commit/da582b0a59d4dbf097110080952a88159d260e0d)) - -## [2.0.107](https://github.com/GeneralBots/BotServer/compare/2.0.106...2.0.107) (2021-02-28) - - -### Bug Fixes - -* **all:** Fix in FAQ menu. ([8512b41](https://github.com/GeneralBots/BotServer/commit/8512b41df13cfa86c19c47836084dc1e1e34bed1)) - -## [2.0.106](https://github.com/GeneralBots/BotServer/compare/2.0.105...2.0.106) (2021-02-28) - - -### Bug Fixes - -* **all:** FAQ Menu fixed. ([7c93328](https://github.com/GeneralBots/BotServer/commit/7c93328134f6a2611ea13749182eb4fc8061a0d3)) - -## [2.0.105](https://github.com/GeneralBots/BotServer/compare/2.0.104...2.0.105) (2021-02-23) - - -### Bug Fixes - -* **basic.gblib:** Error handling improved. ([ec47fda](https://github.com/GeneralBots/BotServer/commit/ec47fda964c2ca7166e3df56852ab06f5570422a)) -* **basic.gblib:** More error handling improvements. ([cae28e5](https://github.com/GeneralBots/BotServer/commit/cae28e5fd13558e91686342b2db18c9e4dc644da)) - -## [2.0.104](https://github.com/GeneralBots/BotServer/compare/2.0.103...2.0.104) (2021-02-23) - - -### Bug Fixes - -* **basic.gblib:** Error handling improved. ([a4c3f42](https://github.com/GeneralBots/BotServer/commit/a4c3f429119fecf256b3494bc633531e0335f36a)) - -## [2.0.103](https://github.com/GeneralBots/BotServer/compare/2.0.102...2.0.103) (2021-02-16) - - -### Bug Fixes - -* **all:** Added scope variable as requested by a customer. ([875043b](https://github.com/GeneralBots/BotServer/commit/875043b86ef46fc642599efdec4e14b80d5a4fd7)) - -## [2.0.102](https://github.com/GeneralBots/BotServer/compare/2.0.101...2.0.102) (2021-02-07) - - -### Bug Fixes - -* **basic.gblib:** Fixing bad regexp. ([5d6d147](https://github.com/GeneralBots/BotServer/commit/5d6d147ad4b24f51824d7f4c6a8ff0f6f0494932)) - -## [2.0.101](https://github.com/GeneralBots/BotServer/compare/2.0.100...2.0.101) (2021-02-07) - - -### Bug Fixes - -* **basic.gblib:** Fix in BASIC regexp to catch only keywords outsite quotes. ([0681fe4](https://github.com/GeneralBots/BotServer/commit/0681fe4d31a6534e3ac7b28aa6a114408162a997)) - -## [2.0.100](https://github.com/GeneralBots/BotServer/compare/2.0.99...2.0.100) (2021-02-05) - - -### Bug Fixes - -* **admin.gbapp:** Fix in DONT_DOWNLOAD. ([3ed733e](https://github.com/GeneralBots/BotServer/commit/3ed733e4f852e52785c3ba32eee28969efd07779)) - -## [2.0.99](https://github.com/GeneralBots/BotServer/compare/2.0.98...2.0.99) (2021-02-02) - - -### Bug Fixes - -* **core.gbapp:** Fix in Spanish NLP. ([a9a2bf8](https://github.com/GeneralBots/BotServer/commit/a9a2bf8fd038bcc1ddd5d99d43cb07ce393c0d18)) - -## [2.0.98](https://github.com/GeneralBots/BotServer/compare/2.0.97...2.0.98) (2021-02-02) - - -### Bug Fixes - -* **basic.gblib:** Spanish chars handling for NLP. ([62ef28d](https://github.com/GeneralBots/BotServer/commit/62ef28d8ff7b4e528d6d43969e03e20eb01b99cb)) - -## [2.0.97](https://github.com/GeneralBots/BotServer/compare/2.0.96...2.0.97) (2021-01-28) - - -### Bug Fixes - -* **basic.gblib:** COPY and CONVERT fixed. ([30f3b36](https://github.com/GeneralBots/BotServer/commit/30f3b3646979d347fd4639be872b5480a515840d)) -* **basic.gblib:** More code instrumentation. ([fbd50f5](https://github.com/GeneralBots/BotServer/commit/fbd50f50bcd4e8ab4eb982d7da505faa5fcea6e6)) - -## [2.0.96](https://github.com/GeneralBots/BotServer/compare/2.0.95...2.0.96) (2021-01-28) - - -### Bug Fixes - -* **core.gbapp:** Sending text in .md is back again. ([119c069](https://github.com/GeneralBots/BotServer/commit/119c06949aa446fe4971563f86fa7f32475674f4)) - -## [2.0.95](https://github.com/GeneralBots/BotServer/compare/2.0.94...2.0.95) (2021-01-27) - - -### Bug Fixes - -* **core.gbapp:** More logging on sendToMobile from MD. ([c8bf760](https://github.com/GeneralBots/BotServer/commit/c8bf7606b12e8adf992c0b7abc749fab9f8b4873)) - -## [2.0.94](https://github.com/GeneralBots/BotServer/compare/2.0.93...2.0.94) (2021-01-27) - - -### Bug Fixes - -* **core.gbapp:** Missing await inserted on sendToMobile. ([43e70bb](https://github.com/GeneralBots/BotServer/commit/43e70bbe41a5148ab63e99e8c86c3d858f288d04)) - -## [2.0.93](https://github.com/GeneralBots/BotServer/compare/2.0.92...2.0.93) (2021-01-20) - - -### Bug Fixes - -* **basic.gblib:** COPY and CONVERT is now generating good JS. ([3f13609](https://github.com/GeneralBots/BotServer/commit/3f13609d5981163b86cca9bd817c954d1e70412e)) - -## [2.0.92](https://github.com/GeneralBots/BotServer/compare/2.0.91...2.0.92) (2021-01-15) - - -### Bug Fixes - -* **basic.gblib:** CONVERT keyword coded. ([9b1eae2](https://github.com/GeneralBots/BotServer/commit/9b1eae2972559dc6e7ee82478ab104ce88cbaa5b)) - -## [2.0.91](https://github.com/GeneralBots/BotServer/compare/2.0.90...2.0.91) (2021-01-15) - - -### Bug Fixes - -* **basic.gblib:** COPY is now target recursive. ([4048e72](https://github.com/GeneralBots/BotServer/commit/4048e724d152f08815b8d2ff2eedb28293cd3dd2)) -* **basic.gblib:** Extraction of copy command in regexp. ([e4be160](https://github.com/GeneralBots/BotServer/commit/e4be1600f0c3db5caab2feccb5f60737d38e7721)) - -## [2.0.90](https://github.com/GeneralBots/BotServer/compare/2.0.89...2.0.90) (2021-01-13) - - -### Bug Fixes - -* **basic.gblib:** Fix in Hear call to endDialog. ([c91d5f0](https://github.com/GeneralBots/BotServer/commit/c91d5f0453fa6eb40426ae736ce893a851282834)) - -## [2.0.89](https://github.com/GeneralBots/BotServer/compare/2.0.88...2.0.89) (2021-01-12) - - -### Bug Fixes - -* **basic.gblib:** Fixed get token from BASIC methods. ([6399c2d](https://github.com/GeneralBots/BotServer/commit/6399c2dd0f45617c591f69156241bd13788fee89)) - -## [2.0.88](https://github.com/GeneralBots/BotServer/compare/2.0.87...2.0.88) (2021-01-08) - - -### Bug Fixes - -* **all:** Improvements on debugging output. ([eb194f6](https://github.com/GeneralBots/BotServer/commit/eb194f688562cf764e0fd5435c356f6724bac4e9)) - -## [2.0.87](https://github.com/pragmatismo-io/BotServer/compare/2.0.86...2.0.87) (2021-01-08) - - -### Bug Fixes - -* **core.gbapp:** Trying to fix Config.xlsx access from customer. ([c2a51ff](https://github.com/pragmatismo-io/BotServer/commit/c2a51ff832341f1d83f2fada9df719f4e3e28846)) - -## [2.0.86](https://github.com/pragmatismo-io/BotServer/compare/2.0.85...2.0.86) (2021-01-08) - - -### Bug Fixes - -* **admin.gbapp:** Trying to fix .gbot deployment error. ([63b2a57](https://github.com/pragmatismo-io/BotServer/commit/63b2a577b23dd35d1335eaa1f66f5b689c775da1)) - -## [2.0.85](https://github.com/pragmatismo-io/BotServer/compare/2.0.84...2.0.85) (2021-01-07) - - -### Bug Fixes - -* **admin.gbapp:** Removal of download during deployment of .gbot packages. ([f4d5cf9](https://github.com/pragmatismo-io/BotServer/commit/f4d5cf92d2663eeba712c2b2083ca0e219e73d9c)) - -## [2.0.84](https://github.com/pragmatismo-io/BotServer/compare/2.0.83...2.0.84) (2021-01-05) - - -### Bug Fixes - -* **core.gbapp:** New .gbot param HelloGoodX is added. ([3aed757](https://github.com/pragmatismo-io/BotServer/commit/3aed75731e8aeb52236da9c5ce977ead3d5966b3)) - -## [2.0.83](https://github.com/pragmatismo-io/BotServer/compare/2.0.82...2.0.83) (2021-01-05) - - -### Bug Fixes - -* **basic.gblib:** Improving error handling in BASIC. ([2a199c3](https://github.com/pragmatismo-io/BotServer/commit/2a199c39a36cff580067b37b537c31e0862d3703)) - -## [2.0.82](https://github.com/pragmatismo-io/BotServer/compare/2.0.81...2.0.82) (2021-01-03) - - -### Bug Fixes - -* **basic.gblib:** New names for basic functions on hidden code header. ([dba22d5](https://github.com/pragmatismo-io/BotServer/commit/dba22d518d344539d42e4fededbc7d7fbe26f29a)) - -## [2.0.81](https://github.com/pragmatismo-io/BotServer/compare/2.0.80...2.0.81) (2021-01-03) - - -### Bug Fixes - -* **core.gbapp:** Fix in NLP handling of acents. ([2a5ecd4](https://github.com/pragmatismo-io/BotServer/commit/2a5ecd487f78743dd0faaa5d70d0baa24f659a9e)) - -## [2.0.80](https://github.com/pragmatismo-io/BotServer/compare/2.0.79...2.0.80) (2020-12-31) - - -### Bug Fixes - -* **all:** More coments on GBDeployer. ([5dae314](https://github.com/pragmatismo-io/BotServer/commit/5dae31448025abd0010cddcc73e3346e309f918d)) -* **all:** TS Lint and minor fixes. ([e7d7a1a](https://github.com/pragmatismo-io/BotServer/commit/e7d7a1a4b2a8808eb372cfe3f532be308c896890)) -* **basic.gblib:** Commenting blocks. ([7672540](https://github.com/pragmatismo-io/BotServer/commit/76725400530ac65ab7c06ecb7bdae1b4f692582e)) -* **basic.gblib:** Comments to the keyword facade. ([b33a8b5](https://github.com/pragmatismo-io/BotServer/commit/b33a8b53410405feeff2f78ddda09c79153378cc)) -* **core.gbapp:** More comments in GBMinService. ([9bc82ab](https://github.com/pragmatismo-io/BotServer/commit/9bc82abf11fb7ad8aed8e53315ba250cbbcbc15a)) - -## [2.0.79](https://github.com/pragmatismo-io/BotServer/compare/2.0.78...2.0.79) (2020-12-25) - - -### Bug Fixes - -* **core.gbapp:** Comments improving. ([dcb5961](https://github.com/pragmatismo-io/BotServer/commit/dcb5961a8049c273af66e3c955cce13b80a6ff74)) - -## [2.0.78](https://github.com/pragmatismo-io/BotServer/compare/2.0.77...2.0.78) (2020-12-23) - - -### Bug Fixes - -* **core.gbapp:** result is now OK from hear. ([c900103](https://github.com/pragmatismo-io/BotServer/commit/c900103fb06bc4848519f9104d8c1e7c5c5066b0)) - -## [2.0.77](https://github.com/pragmatismo-io/BotServer/compare/2.0.76...2.0.77) (2020-12-23) - - -### Bug Fixes - -* **core.gbapp:** resolve is being called correctly in /hear. ([9804deb](https://github.com/pragmatismo-io/BotServer/commit/9804debfccd268796b5a789d2da7ebdb44dfa2e0)) - -## [2.0.76](https://github.com/pragmatismo-io/BotServer/compare/2.0.75...2.0.76) (2020-12-22) - - -### Bug Fixes - -* **core.gbapp:** Fix in MSFT spellchecker. ([eaaae13](https://github.com/pragmatismo-io/BotServer/commit/eaaae133cbb8a16bb37d260057a24d434893570c)) - -## [2.0.75](https://github.com/pragmatismo-io/BotServer/compare/2.0.74...2.0.75) (2020-12-22) - - -### Bug Fixes - -* **core.gbapp:** MSFT translator fixes and auto-start twice fixed. ([81a0fdd](https://github.com/pragmatismo-io/BotServer/commit/81a0fdd5d01d28ce16d04198c8487931f89a203a)) - -## [2.0.74](https://github.com/pragmatismo-io/BotServer/compare/2.0.73...2.0.74) (2020-12-22) - - -### Bug Fixes - -* **all:** NLP error handling improved. ([6ed7380](https://github.com/pragmatismo-io/BotServer/commit/6ed7380b76a20c982f5e9bfa54b21d12a74374c2)) - -## [2.0.73](https://github.com/pragmatismo-io/BotServer/compare/2.0.72...2.0.73) (2020-12-14) - - -### Bug Fixes - -* **core.gbapp:** Text improvements in messages. ([f739c15](https://github.com/pragmatismo-io/BotServer/commit/f739c1543105d4495085eb9e10522d12eebe27b6)) - -## [2.0.72](https://github.com/pragmatismo-io/BotServer/compare/2.0.71...2.0.72) (2020-12-13) - - -### Bug Fixes - -* **core.gbapp:** Improvements in BASIC error handling. ([46f4cac](https://github.com/pragmatismo-io/BotServer/commit/46f4cac29b1d6dbeeb22417444e462346e4cf28f)) - -## [2.0.71](https://github.com/pragmatismo-io/BotServer/compare/2.0.70...2.0.71) (2020-12-10) - - -### Bug Fixes - -* **core.gbapp:** Fix KeepText bug. ([8a82ead](https://github.com/pragmatismo-io/BotServer/commit/8a82eade5a3d5ba5e151ee9b38176a0703adcd60)) - -## [2.0.70](https://github.com/pragmatismo-io/BotServer/compare/2.0.69...2.0.70) (2020-12-10) - - -### Bug Fixes - -* **core.gbapp:** Improvements in language selection and MSTEAMS integration. ([23b89e5](https://github.com/pragmatismo-io/BotServer/commit/23b89e5c79b341da42e214acc7c5a4de81e9ad6a)) - -## [2.0.69](https://github.com/pragmatismo-io/BotServer/compare/2.0.68...2.0.69) (2020-12-08) - - -### Bug Fixes - -* **core.gbapp:** Boolean added to BASIC. ([bf91d74](https://github.com/pragmatismo-io/BotServer/commit/bf91d741623f4f3ef6e71181ebf63efea9f7853b)) -* **core.gbapp:** Improvements on BASIC with built-in validators. ([af10172](https://github.com/pragmatismo-io/BotServer/commit/af10172dd4ea5aaaff4122c8226283f1ef955337)) -* **core.gbapp:** New validators in BASIC. ([eb15dd0](https://github.com/pragmatismo-io/BotServer/commit/eb15dd083b25c5144f9918a5a94f16afd788406f)) - -## [2.0.68](https://github.com/pragmatismo-io/BotServer/compare/2.0.67...2.0.68) (2020-12-07) - - -### Bug Fixes - -* **customer-satisfaction.gbapp:** Fix rate and suggestion text store. ([55bb46d](https://github.com/pragmatismo-io/BotServer/commit/55bb46d8823d4640e297177634252e6dc06e9a28)) - -## [2.0.67](https://github.com/pragmatismo-io/BotServer/compare/2.0.66...2.0.67) (2020-12-07) - - -### Bug Fixes - -* **kb.gbapp:** Faster loaded from tabular using bulk insert. ([1604006](https://github.com/pragmatismo-io/BotServer/commit/1604006266523f93a67eae4b01a260de011b2422)) - -## [2.0.66](https://github.com/pragmatismo-io/BotServer/compare/2.0.65...2.0.66) (2020-12-06) - - -### Bug Fixes - -* **core.gbapp:** Ignoring case for keep text. ([5139817](https://github.com/pragmatismo-io/BotServer/commit/513981746648db4466301ad5a69373d48ed3be1a)) - -## [2.0.65](https://github.com/pragmatismo-io/BotServer/compare/2.0.64...2.0.65) (2020-12-06) - - -### Bug Fixes - -* **core.gbapp:** startDialog for web OK now. ([6b325ea](https://github.com/pragmatismo-io/BotServer/commit/6b325ead34fc5ef39d3a49511b777878ce364946)) - -## [2.0.64](https://github.com/pragmatismo-io/BotServer/compare/2.0.63...2.0.64) (2020-12-06) - - -### Bug Fixes - -* **core.gbapp:** Start dialog done and log improvements. ([1ff2429](https://github.com/pragmatismo-io/BotServer/commit/1ff24290f0fb482493fd8106247443233f117b87)) - -## [2.0.63](https://github.com/pragmatismo-io/BotServer/compare/2.0.62...2.0.63) (2020-12-06) - - -### Bug Fixes - -* **core.gbapp:** MSFT NLP issue fixed. ([149c821](https://github.com/pragmatismo-io/BotServer/commit/149c821e41dc0febb8873df2b5e9c57e8aa8ad21)) - -## [2.0.62](https://github.com/pragmatismo-io/BotServer/compare/2.0.61...2.0.62) (2020-12-05) - - -### Bug Fixes - -* **core.gbapp:** Fix in deployer. ([ec40fd8](https://github.com/pragmatismo-io/BotServer/commit/ec40fd8b62dc4248c74a33141cccabd558b80e17)) - -## [2.0.61](https://github.com/pragmatismo-io/BotServer/compare/2.0.60...2.0.61) (2020-12-05) - - -### Bug Fixes - -* **core.gbapp:** NLP automation is fully tested. ([2873c5c](https://github.com/pragmatismo-io/BotServer/commit/2873c5c07833bc32446af97504cde71efbac6795)) - -## [2.0.60](https://github.com/pragmatismo-io/BotServer/compare/2.0.59...2.0.60) (2020-12-04) - - -### Bug Fixes - -* **core.gbapp:** Keep text fixed. ([50564c6](https://github.com/pragmatismo-io/BotServer/commit/50564c64d246c721e8536641668e4a7855e39205)) - -## [2.0.59](https://github.com/pragmatismo-io/BotServer/compare/2.0.58...2.0.59) (2020-12-03) - - -### Bug Fixes - -* **core.gbapp:** Calls to Spellchecker and Translator fixed. ([0f39343](https://github.com/pragmatismo-io/BotServer/commit/0f393431ec422e6066ea1185fb5fe9c6aee53c61)) - -## [2.0.58](https://github.com/pragmatismo-io/BotServer/compare/2.0.57...2.0.58) (2020-12-02) - - -### Bug Fixes - -* **core.gbapp:** EXIT keyword. ([3906c3d](https://github.com/pragmatismo-io/BotServer/commit/3906c3de53cda54cc7630bc0372cc12bfcdb5f03)) - -## [2.0.57](https://github.com/pragmatismo-io/BotServer/compare/2.0.56...2.0.57) (2020-12-01) - - -### Bug Fixes - -* **core.gbapp:** New HEAR possibilities coded. ([797af37](https://github.com/pragmatismo-io/BotServer/commit/797af37b816ae31610e5aa32bbd055f61c899258)) - -## [2.0.56](https://github.com/pragmatismo-io/BotServer/compare/2.0.55...2.0.56) (2020-12-01) - - -### Bug Fixes - -* **all:** fixed case-insensitivity for BASIC commands. ([b6aba26](https://github.com/pragmatismo-io/BotServer/commit/b6aba266f6e596151dbc573a37ec4f7573dc1710)) - -## [2.0.55](https://github.com/pragmatismo-io/BotServer/compare/2.0.54...2.0.55) (2020-11-30) - - -### Bug Fixes - -* **core.gbapp:** SMS fix, Timezone on BASIC NOW, Order of welcome msg. fixed. ([18b8bd9](https://github.com/pragmatismo-io/BotServer/commit/18b8bd9bdfded9ada27111f881620cacda4e8ece)) - -## [2.0.54](https://github.com/pragmatismo-io/BotServer/compare/2.0.53...2.0.54) (2020-11-28) - - -### Bug Fixes - -* **core.gbapp:** NLP key bug fixed after MSFT change of NLP service. ([b901d6b](https://github.com/pragmatismo-io/BotServer/commit/b901d6bd50453b98bfb608d4e9779f96c7ea2034)) - -## [2.0.53](https://github.com/pragmatismo-io/BotServer/compare/2.0.52...2.0.53) (2020-11-26) - - -### Bug Fixes - -* **core.gbapp:** SEND SMS fixed. ([508fe9f](https://github.com/pragmatismo-io/BotServer/commit/508fe9fc312512b71503bb8c34c430dfa2361505)) - -## [2.0.52](https://github.com/pragmatismo-io/BotServer/compare/2.0.51...2.0.52) (2020-11-26) - - -### Bug Fixes - -* **core.gbapp:** SEND SMS TO keyword added. ([719f063](https://github.com/pragmatismo-io/BotServer/commit/719f063070a3959d39998ed87046b0780f66c554)) - -## [2.0.51](https://github.com/pragmatismo-io/BotServer/compare/2.0.50...2.0.51) (2020-11-26) - - -### Bug Fixes - -* **core.gbapp:** Language instance acquisition fixed. ([387b340](https://github.com/pragmatismo-io/BotServer/commit/387b3407f3d646b3435b3d59a551a443bfb7e0bb)) - -## [2.0.50](https://github.com/pragmatismo-io/BotServer/compare/2.0.49...2.0.50) (2020-11-26) - - -### Bug Fixes - -* **all:** Language and Spellchecker are now modern. ([3eb8d0a](https://github.com/pragmatismo-io/BotServer/commit/3eb8d0a53f28b81556dd849690298f59b7759c8f)) - -## [2.0.49](https://github.com/pragmatismo-io/BotServer/compare/2.0.48...2.0.49) (2020-11-26) - - -### Bug Fixes - -* **core.gbapp:** Now and Today are now OK. ([13f9bb3](https://github.com/pragmatismo-io/BotServer/commit/13f9bb3e764e9535e1ac75e94ad17151fe6ecb51)) - -## [2.0.48](https://github.com/pragmatismo-io/BotServer/compare/2.0.47...2.0.48) (2020-11-23) - - -### Bug Fixes - -* **analytics.gblib:** Improvements in customer feedback. ([d5f4298](https://github.com/pragmatismo-io/BotServer/commit/d5f42982f61e10e3e6150f71a8fc23cc6c6abf6c)) - -## [2.0.47](https://github.com/pragmatismo-io/BotServer/compare/2.0.46...2.0.47) (2020-11-22) - - -### Bug Fixes - -* **all:** Now keyword, autostart dialog, prod size optimization. ([a17f21e](https://github.com/pragmatismo-io/BotServer/commit/a17f21e073353f13f1aef18d576298587534bc58)) -* **core.gbapp:** Fixing script name in call. ([6343313](https://github.com/pragmatismo-io/BotServer/commit/634331357916fe69ee65862aee6ff3fed71e59d3)) -* **customer-satisfaction.gbapp:** New param Feedback Improve Message added. ([ec1ec20](https://github.com/pragmatismo-io/BotServer/commit/ec1ec201753e6cf391bb4524e4483bbc42ea01e1)) - -## [2.0.46](https://github.com/pragmatismo-io/BotServer/compare/2.0.45...2.0.46) (2020-11-19) - - -### Bug Fixes - -* **core.gbapp:** Language improvements tested. ([a618c71](https://github.com/pragmatismo-io/BotServer/commit/a618c7100bd7b2fda7fdeb33a09a66b9c515546e)) - -## [2.0.45](https://github.com/pragmatismo-io/BotServer/compare/2.0.44...2.0.45) (2020-11-19) - - -### Bug Fixes - -* **core.gbapp:** Fixing after language new fetures being added. ([0ecaa8a](https://github.com/pragmatismo-io/BotServer/commit/0ecaa8a877e9a9e0b024544fd826c7fe188f7bf4)) - -## [2.0.44](https://github.com/pragmatismo-io/BotServer/compare/2.0.43...2.0.44) (2020-11-17) - - -### Bug Fixes - -* **core.gbapp:** Language and translator improvements. ([f967d8f](https://github.com/pragmatismo-io/BotServer/commit/f967d8f9e85b6f845bc5f74546f0a00ac0754b99)) - -## [2.0.43](https://github.com/pragmatismo-io/BotServer/compare/2.0.42...2.0.43) (2020-11-17) - - -### Bug Fixes - -* **core.gbapp:** Language features optmized. ([933729a](https://github.com/pragmatismo-io/BotServer/commit/933729ae4dc372b86aa61bd7a2525d71d64bf720)) - -## [2.0.42](https://github.com/pragmatismo-io/BotServer/compare/2.0.41...2.0.42) (2020-11-12) - - -### Bug Fixes - -* **core.gbapp:** Fixing array base in BASIC. ([91002d1](https://github.com/pragmatismo-io/BotServer/commit/91002d1bac0e10a345cfffa7e8006eed52f56824)) - -## [2.0.41](https://github.com/pragmatismo-io/BotServer/compare/2.0.40...2.0.41) (2020-11-11) - - -### Bug Fixes - -* **core.gbapp:** DO WHILE now working. ([785b924](https://github.com/pragmatismo-io/BotServer/commit/785b9243790c4efb9fc0de0cd7b31cbac88ac26f)) - -## [2.0.40](https://github.com/pragmatismo-io/BotServer/compare/2.0.39...2.0.40) (2020-11-11) - - -### Bug Fixes - -* **core.gbapp:** SEND FILE TO now is priority over SEND FILE when converting tokens in regexp translator. ([9021ac8](https://github.com/pragmatismo-io/BotServer/commit/9021ac89b258d532f32ac21fe8ca61a5e7fcef24)) - -## [2.0.39](https://github.com/pragmatismo-io/BotServer/compare/2.0.38...2.0.39) (2020-11-11) - - -### Bug Fixes - -* **core.gbapp:** Fix in SEND TO FILE defect. ([ea895c1](https://github.com/pragmatismo-io/BotServer/commit/ea895c142c9982cf8ac34d54f9fadca207070687)) - -## [2.0.38](https://github.com/pragmatismo-io/BotServer/compare/2.0.37...2.0.38) (2020-11-11) - - -### Bug Fixes - -* **core.gbapp:** SEND FILE TO order of VM call prioritized. ([a4c03b8](https://github.com/pragmatismo-io/BotServer/commit/a4c03b834cc693d9bba8bb2cc13fdf2c14c53528)) - -## [2.0.37](https://github.com/pragmatismo-io/BotServer/compare/2.0.36...2.0.37) (2020-11-11) - - -### Bug Fixes - -* **core.gbapp:** New key word SEND FILE TO added. ([b736f04](https://github.com/pragmatismo-io/BotServer/commit/b736f04103efb37370a040a77c9a5ed523a2703d)) - -## [2.0.36](https://github.com/pragmatismo-io/BotServer/compare/2.0.35...2.0.36) (2020-11-10) - - -### Bug Fixes - -* **core.gbapp:** End of dialog is now OK. ([8e668c2](https://github.com/pragmatismo-io/BotServer/commit/8e668c28cd811addb5032e29b23cd0674ef6bcd9)) - -## [2.0.35](https://github.com/pragmatismo-io/BotServer/compare/2.0.34...2.0.35) (2020-11-09) - - -### Bug Fixes - -* **core.gbapp:** Trying to fix error after .gbdialog call. ([744577b](https://github.com/pragmatismo-io/BotServer/commit/744577b20bca5c3233e68f06135c050ebb9c5ab1)) - -## [2.0.34](https://github.com/pragmatismo-io/BotServer/compare/2.0.33...2.0.34) (2020-11-09) - - -### Bug Fixes - -* **core.gbapp:** Fixed the file server addresses and availability. ([8cbf3d3](https://github.com/pragmatismo-io/BotServer/commit/8cbf3d364c42dfbd103d441cb993e35c4ce9474a)) - -## [2.0.33](https://github.com/pragmatismo-io/BotServer/compare/2.0.32...2.0.33) (2020-11-09) - - -### Bug Fixes - -* **core.gbapp:** Fixing missing await calls. ([e0b18c0](https://github.com/pragmatismo-io/BotServer/commit/e0b18c00f150aab6bace7f6b45590b64e5960207)) - -## [2.0.32](https://github.com/pragmatismo-io/BotServer/compare/2.0.31...2.0.32) (2020-11-09) - - -### Bug Fixes - -* **core.gbapp:** Fix deployment of assets missing await. ([ddaa8d5](https://github.com/pragmatismo-io/BotServer/commit/ddaa8d5e5d86d01f8214728a790442c440954f25)) - -## [2.0.31](https://github.com/pragmatismo-io/BotServer/compare/2.0.30...2.0.31) (2020-11-09) - - -### Bug Fixes - -* **core.gbapp:** Fixing .gbdialog last call error. ([ff20ef2](https://github.com/pragmatismo-io/BotServer/commit/ff20ef2494c556dfacd63cfd69ffe56ca4c870ed)) - -## [2.0.30](https://github.com/pragmatismo-io/BotServer/compare/2.0.29...2.0.30) (2020-11-09) - - -### Bug Fixes - -* **core.gbapp:** Trying to fix Word language finishing error. ([3ae1b75](https://github.com/pragmatismo-io/BotServer/commit/3ae1b75afd6fce7ecaaec2cf623e74e0b0df80c4)) - -## [2.0.29](https://github.com/pragmatismo-io/BotServer/compare/2.0.28...2.0.29) (2020-11-08) - - -### Bug Fixes - -* **all:** node.js rollback due to Azure. ([29e9535](https://github.com/pragmatismo-io/BotServer/commit/29e953542fc468059c4fc87d8ad35433cc75d625)) - -## [2.0.28](https://github.com/pragmatismo-io/BotServer/compare/2.0.27...2.0.28) (2020-11-08) - - -### Bug Fixes - -* **core.gbapp:** New keywords and Loops. ([8693511](https://github.com/pragmatismo-io/BotServer/commit/869351113e76f9ebe9736fbd6e7f8311e89ec995)) - -## [2.0.27](https://github.com/pragmatismo-io/BotServer/compare/2.0.26...2.0.27) (2020-11-06) - - -### Bug Fixes - -* **core.gbapp:** Any question can be forwarded to .docx dialogs. ([4f3ada1](https://github.com/pragmatismo-io/BotServer/commit/4f3ada1902e4ec4e4a24e701c70e8df1ff408e76)) - -## [2.0.26](https://github.com/pragmatismo-io/BotServer/compare/2.0.25...2.0.26) (2020-11-06) - - -### Bug Fixes - -* **core.gbapp:** Fix GET/SET in .gbdialog. ([8842bf7](https://github.com/pragmatismo-io/BotServer/commit/8842bf7e4f09c2a6606f95fcc505ff3d3becd837)) - -## [2.0.25](https://github.com/pragmatismo-io/BotServer/compare/2.0.24...2.0.25) (2020-10-30) - - -### Bug Fixes - -* **all:** Remove HTML from Input. ([03161da](https://github.com/pragmatismo-io/BotServer/commit/03161dad88497bf3e0bd26c744d6f93ce85aeda6)) - -## [2.0.24](https://github.com/pragmatismo-io/BotServer/compare/2.0.23...2.0.24) (2020-10-30) - - -### Bug Fixes - -* **all:** Strip all HTML from Bot Input. ([dceb0fd](https://github.com/pragmatismo-io/BotServer/commit/dceb0fd1c102b719a0b9f50e466f84999c84dc2e)) - -## [2.0.23](https://github.com/pragmatismo-io/BotServer/compare/2.0.22...2.0.23) (2020-10-30) - - -### Bug Fixes - -* **core.gbapp:** Remove HTML from input. ([85df283](https://github.com/pragmatismo-io/BotServer/commit/85df2830050c0b2b72e5d5d6d4a08f2123823889)) - -## [2.0.22](https://github.com/pragmatismo-io/BotServer/compare/2.0.21...2.0.22) (2020-10-30) - - -### Bug Fixes - -* **all:** Spelled now received first letter in uppercase. ([b1359bb](https://github.com/pragmatismo-io/BotServer/commit/b1359bbf09a558fed45d8bf8b79712407bf4d2c8)) - -## [2.0.21](https://github.com/pragmatismo-io/BotServer/compare/2.0.20...2.0.21) (2020-10-30) - - -### Bug Fixes - -* **kb.gbapp:** Spelling set before translation. ([bfbbf69](https://github.com/pragmatismo-io/BotServer/commit/bfbbf696900748d3fe9ac329b2b7f46b5878c504)) - -## [2.0.20](https://github.com/pragmatismo-io/BotServer/compare/2.0.19...2.0.20) (2020-10-30) - - -### Bug Fixes - -* **kb.gbapp:** Adjustments in .gbkb engine. ([4927959](https://github.com/pragmatismo-io/BotServer/commit/4927959a5c3e45b63938ff34c3aea8388b5b46c7)) - -## [2.0.19](https://github.com/pragmatismo-io/BotServer/compare/2.0.18...2.0.19) (2020-10-27) - - -### Bug Fixes - -* **core.gbapp:** Logging improvements. ([b2159b0](https://github.com/pragmatismo-io/BotServer/commit/b2159b0030c64974fa9453b6678d0e8d4dc09f79)) - -## [2.0.18](https://github.com/pragmatismo-io/BotServer/compare/2.0.17...2.0.18) (2020-10-27) - - -### Bug Fixes - -* **core.gbapp:** Auto-publish fixed. ([398b95d](https://github.com/pragmatismo-io/BotServer/commit/398b95d148f8db3d4c0feb92da7521e78825d3f4)) - -## [2.0.17](https://github.com/pragmatismo-io/BotServer/compare/2.0.16...2.0.17) (2020-10-26) - - -### Bug Fixes - -* **all:** Bug fix in startup on a blank environment. ([7a2232e](https://github.com/pragmatismo-io/BotServer/commit/7a2232efe4bb165b7efc48569990ba1c91ef5f7d)) - -## [2.0.16](https://github.com/pragmatismo-io/BotServer/compare/2.0.15...2.0.16) (2020-10-24) - - -### Bug Fixes - -* **core.gbapp:** .gbot download from tabular is now OK. ([a7fce94](https://github.com/pragmatismo-io/BotServer/commit/a7fce94545522a7695694099c70320a62e352ef9)) - -## [2.0.15](https://github.com/pragmatismo-io/BotServer/compare/2.0.14...2.0.15) (2020-10-24) - - -### Bug Fixes - -* **all:** Debugging of .gbapp allowed when launch.json is tailored on outFiles .gbapp dist files. ([201b8c7](https://github.com/pragmatismo-io/BotServer/commit/201b8c7dac654096600daa7101ad4a0d379b7058)) - -## [2.0.14](https://github.com/pragmatismo-io/BotServer/compare/2.0.13...2.0.14) (2020-10-23) - - -### Bug Fixes - -* **core.gbapp:** NLP composing now is partially automated. ([0aca385](https://github.com/pragmatismo-io/BotServer/commit/0aca3853d6abbbea2ba8b661ac15150b35e99b99)) - -## [2.0.13](https://github.com/pragmatismo-io/BotServer/compare/2.0.12...2.0.13) (2020-10-21) - - -### Bug Fixes - -* **core.gbapp:** Field active is now being filled at instance creation. ([aee2c17](https://github.com/pragmatismo-io/BotServer/commit/aee2c17d4c60a972f6b64f588343d9e86327d48d)) - -## [2.0.12](https://github.com/pragmatismo-io/BotServer/compare/2.0.11...2.0.12) (2020-10-18) - - -### Bug Fixes - -* **admin.gbapp:** AccessToken MSFT has changed. ([c36939e](https://github.com/pragmatismo-io/BotServer/commit/c36939e221de0ec3f21a84358de14f86bab385c7)) - -## [2.0.11](https://github.com/pragmatismo-io/BotServer/compare/2.0.10...2.0.11) (2020-10-14) - - -### Bug Fixes - -* **all:** sendFile working after path fix. ([2c901f4](https://github.com/pragmatismo-io/BotServer/commit/2c901f451bac49a58e2c1a8e8f4cb99f82b8c465)) - -## [2.0.10](https://github.com/pragmatismo-io/BotServer/compare/2.0.9...2.0.10) (2020-10-08) - - -### Bug Fixes - -* **azuredeployer.gbapp:** NLP automation fixes. ([99633fe](https://github.com/pragmatismo-io/BotServer/commit/99633fe59de65fdd15a1ff9d2974c194b109b1de)) - -## [2.0.9](https://github.com/pragmatismo-io/BotServer/compare/2.0.8...2.0.9) (2020-09-21) - - -### Bug Fixes - -* **core.gbapp:** Dynamic services from .gbapps. ([c01430f](https://github.com/pragmatismo-io/BotServer/commit/c01430f0f38ccbf7abfd7a69c3ed238fbac04180)) - -## [2.0.8](https://github.com/pragmatismo-io/BotServer/compare/2.0.7...2.0.8) (2020-09-20) - - -### Bug Fixes - -* **core.gbapp:** Instance loading fix and external url for images. ([aa976ae](https://github.com/pragmatismo-io/BotServer/commit/aa976aeb8c031c6319978b85d59939a461130b69)) - -## [2.0.7](https://github.com/pragmatismo-io/BotServer/compare/2.0.6...2.0.7) (2020-08-29) - - -### Bug Fixes - -* **core.gbapp:** Context in VM is isolated now. ([42a7074](https://github.com/pragmatismo-io/BotServer/commit/42a707408135ba352cf44c9dd842b3cd913d15c9)) - -## [2.0.6](https://github.com/pragmatismo-io/BotServer/compare/2.0.5...2.0.6) (2020-08-26) - - -### Bug Fixes - -* **kb.gbapp:** Importing improved. ([4cb9d5b](https://github.com/pragmatismo-io/BotServer/commit/4cb9d5b9068c930cfcfc1e6590b793201e3613d8)) - -## [2.0.5](https://github.com/pragmatismo-io/BotServer/compare/2.0.4...2.0.5) (2020-08-19) - - -### Bug Fixes - -* **all:** Code cleanup. ([8db0505](https://github.com/pragmatismo-io/BotServer/commit/8db05053d5447d554fd6f475822a414a44c65f23)) - -## [2.0.4](https://github.com/pragmatismo-io/BotServer/compare/2.0.3...2.0.4) (2020-07-20) - - -### Bug Fixes - -* **core.gbapp:** .gbapp now can be debugged within .ts files. ([10990e6](https://github.com/pragmatismo-io/BotServer/commit/10990e601c67edf791ef0ab2e0cc2cf9419f7b21)) - -## [2.0.3](https://github.com/pragmatismo-io/BotServer/compare/2.0.2...2.0.3) (2020-07-19) - - -### Bug Fixes - -* **core.gbapp:** Database changes and fix in .gblib load. ([4ba3db7](https://github.com/pragmatismo-io/BotServer/commit/4ba3db79de4ba7219a7cc7f00b74f63bdfa9c754)) - -## [2.0.2](https://github.com/pragmatismo-io/BotServer/compare/2.0.1...2.0.2) (2020-07-17) - - -### Bug Fixes - -* **all:** Code formatting. ([eaef7e4](https://github.com/pragmatismo-io/BotServer/commit/eaef7e49c0e995712a9a17a5e63b3d1f692c6b5d)) - -## [2.0.1](https://github.com/pragmatismo-io/BotServer/compare/2.0.0...2.0.1) (2020-07-17) - - -### Bug Fixes - -* **core.gbapp:** Fixed translator bug. ([0accd05](https://github.com/pragmatismo-io/BotServer/commit/0accd05b4937d2c9d82d18def25f03e3b716cb97)) - -# [2.0.0](https://github.com/pragmatismo-io/BotServer/compare/1.7.6...2.0.0) (2020-07-12) - - -### Bug Fixes - -* **admin.gbapp:** /publish can be called with no CUI. ([a469d6d](https://github.com/pragmatismo-io/BotServer/commit/a469d6da6a841a56d401becbd7f5a6611d646d0a)) -* **admin.gbapp:** Methods implemented again according to the interface. ([17122c7](https://github.com/pragmatismo-io/BotServer/commit/17122c79a12ab41fe80f8840ab7aa8fbc5949dc7)) -* **all:** semantic-release fixed. ([67279e2](https://github.com/pragmatismo-io/BotServer/commit/67279e21aa9b3040d61c6bd545330acef875337f)) -* **all:** CI fix. ([448786a](https://github.com/pragmatismo-io/BotServer/commit/448786ab371156ba403cd442c44cae9283abd38d)) -* **all:** CI Fix. ([3890460](https://github.com/pragmatismo-io/BotServer/commit/3890460544f271a8938b9faca0e19a81a4fcc7c3)) -* **all:** CI fixing. ([8537bc1](https://github.com/pragmatismo-io/BotServer/commit/8537bc190af6f90fbf88c4c2f88a2d2ba2187800)) -* **all:** package-lock.json fix. ([651f795](https://github.com/pragmatismo-io/BotServer/commit/651f7953bd618cc1934ce676e74620b68dd217de)) -* **all): Header for prfix(all:** Header for pragmatismo fixed. ([79cca15](https://github.com/pragmatismo-io/BotServer/commit/79cca156958a957231ff355cece2c31682a0ff4c)) -* **analytics.gblib:** Fixes in database storage. ([22f4250](https://github.com/pragmatismo-io/BotServer/commit/22f4250831d871b7f1382b224210a8c68fb2a314)) -* **azuredeployer:** BotExists logic fixed. ([8eff335](https://github.com/pragmatismo-io/BotServer/commit/8eff335e34eda62a57bf14a7e6b11822b3d5a39d)) -* **azuredeployer.gbapp:** Fix in wheather bot exists on Azure. ([13fdc5a](https://github.com/pragmatismo-io/BotServer/commit/13fdc5a3ff8fd6a3ee27863cb83c321dea294939)) -* **core.gbapp:** /publish command fixed. ([7bc83b8](https://github.com/pragmatismo-io/BotServer/commit/7bc83b8b605226c2ae10163dc7edea00c8080501)) -* **core.gbapp:** Adjustments to MSGraph. ([9968ff6](https://github.com/pragmatismo-io/BotServer/commit/9968ff6be6534a9e1e5f081ad9cf36d35af46c88)) -* **core.gbapp:** Admin protected again, additional checks and adjustments. ([efea36f](https://github.com/pragmatismo-io/BotServer/commit/efea36f1cc3eb45f03caecb47ddee34b131a616c)) -* **core.gbapp:** BASIC and KB improvements. ([1bf23cf](https://github.com/pragmatismo-io/BotServer/commit/1bf23cf4e4868284447403352d1290670d7b3af4)) -* **core.gbapp:** BASIC fixed on WhatsApp channel. ([1d316ef](https://github.com/pragmatismo-io/BotServer/commit/1d316ef83b5ab396eff88e6bc8c03e234a0dd617)) -* **core.gbapp:** Better logging and WhatsApp channel detection fix. ([821842c](https://github.com/pragmatismo-io/BotServer/commit/821842c317ac38af08718a4c9131cc09582556a7)) -* **core.gbapp:** Bot creation can be fully automated after MSFT finished their issues. ([f5e0835](https://github.com/pragmatismo-io/BotServer/commit/f5e0835cc31d080e5068bb6cbb18d89acc5eee61)) -* **core.gbapp:** Check for bot before creation process. ([094eb0f](https://github.com/pragmatismo-io/BotServer/commit/094eb0f234691809c4b0a3f00006e09f3c77cdf9)) -* **core.gbapp:** Check of previous bot name before creation. ([0d3bea8](https://github.com/pragmatismo-io/BotServer/commit/0d3bea80e0b9cd6877599b008430f859d751d3e1)) -* **core.gbapp:** Custom boot dialog only available to boot bot. ([e1ad711](https://github.com/pragmatismo-io/BotServer/commit/e1ad711904559dde69a3efae355555e559f89114)) -* **core.gbapp:** Custom boot dialog only available to boot bot. ([3512335](https://github.com/pragmatismo-io/BotServer/commit/3512335e5ee438605c12a375005e49ecdafe1a50)) -* **core.gbapp:** Custom boot dialog only available to boot bot. ([946a66b](https://github.com/pragmatismo-io/BotServer/commit/946a66b692e33b344d526fa3840e63fdcf4c2ca3)) -* **core.gbapp:** Entire Web stack is optional now. ([9652fcd](https://github.com/pragmatismo-io/BotServer/commit/9652fcdb0bbb1e3234b0f493a5c1413675470755)) -* **core.gbapp:** Faster bot creation, fix on WhatsApp switcher. ([8c68332](https://github.com/pragmatismo-io/BotServer/commit/8c68332802380ae231be6704ee67903e42644c72)) -* **core.gbapp:** Fix in Bot Analytics. ([ca2de56](https://github.com/pragmatismo-io/BotServer/commit/ca2de56b062dfc9c49b424237428e4231a787ae5)) -* **core.gbapp:** Fix in deploy. ([6a2556e](https://github.com/pragmatismo-io/BotServer/commit/6a2556e65b443ff106a37df94921ac7ab5911efc)) -* **core.gbapp:** Fix in deploy. ([9d5d754](https://github.com/pragmatismo-io/BotServer/commit/9d5d754d92488e6a8cf82e370cb89c9dbb3c7b4f)) -* **core.gbapp:** Fix in deploy. ([c6d3086](https://github.com/pragmatismo-io/BotServer/commit/c6d3086fa08b53c595c2ccffcc1020d7a45d1581)) -* **core.gbapp:** Fix in startup code in blank. ([2f3756d](https://github.com/pragmatismo-io/BotServer/commit/2f3756d0d7d1ad7f7bd9ae812e839d7fd882eb22)) -* **core.gbapp:** Fix in undeploy and markdown processsing. ([b477c46](https://github.com/pragmatismo-io/BotServer/commit/b477c46d9c9c03093233cb5aaea9b2ec80efee1d)) -* **core.gbapp:** Fix on .gbdata default reference. ([54ef60b](https://github.com/pragmatismo-io/BotServer/commit/54ef60b4af343d5d72a8ce0989bc12e3bdc5885d)) -* **core.gbapp:** GB Apps can now publish bots and replace root web application. ([eed995e](https://github.com/pragmatismo-io/BotServer/commit/eed995e46094b304602cc9f1b0271d46f42e990e)) -* **core.gbapp:** GB Apps can now publish bots and replace root web application. ([675c851](https://github.com/pragmatismo-io/BotServer/commit/675c8511cbdf8a009a86547eb65dd3da9ac4c8e7)) -* **core.gbapp:** Healthly status fixed for WhatsApp. ([7fbb4cc](https://github.com/pragmatismo-io/BotServer/commit/7fbb4ccc52057190efc8bd1238c4efef5f9a2e2c)) -* **core.gbapp:** New async interfaces for .gbapps. ([35ff62f](https://github.com/pragmatismo-io/BotServer/commit/35ff62ff485db6cb04fcaa15603e6e50748e97a2)) -* **core.gbapp:** New async interfaces for .gbapps. ([5ff38a4](https://github.com/pragmatismo-io/BotServer/commit/5ff38a4bd38f11a9cfbe485c018d53ac25a1b092)) -* **core.gbapp:** ngrok fixed and startup log improved. ([7b878a3](https://github.com/pragmatismo-io/BotServer/commit/7b878a331154034091c532c0c7e86f39c3a5b377)) -* **core.gbapp:** No more empty tests; reference errors fixed. ([b6e3611](https://github.com/pragmatismo-io/BotServer/commit/b6e3611636ea97fc20e1bccb14ea269ef5a5170d)) -* **core.gbapp:** Now converter will not halt server execution. ([41b7837](https://github.com/pragmatismo-io/BotServer/commit/41b783775caddcf2b4a863a6945881c1bdab3ba7)) -* **core.gbapp:** Operator fixed. ([0b55ad8](https://github.com/pragmatismo-io/BotServer/commit/0b55ad8b7aeea5042c992bd26fdf8e4ea17baa2b)) -* **core.gbapp:** Optimization of BASIC loading. ([b268882](https://github.com/pragmatismo-io/BotServer/commit/b2688822256225837dc01333bafcca6dd884d0c8)) -* **core.gbapp:** Refactoring in MD and Admin Commands. ([3c717c3](https://github.com/pragmatismo-io/BotServer/commit/3c717c3f0c44e56a0a6ce401ba383aee2952824b)) -* **core.gbapp:** Refactoring in MD fix in disabling auto-compiling of .gbapps. ([1b8e6be](https://github.com/pragmatismo-io/BotServer/commit/1b8e6bec1a242a46127e8e97300ea0f041aa097c)) -* **core.gbapp:** Refactoring in MD fix in disabling auto-compiling of .gbapps. ([d9857b9](https://github.com/pragmatismo-io/BotServer/commit/d9857b98804719a3b8bd8957d8b0b337299cdfeb)) -* **core.gbapp:** Refactoring in MD fix in disabling auto-compiling of .gbapps. ([ade960a](https://github.com/pragmatismo-io/BotServer/commit/ade960ac3e09788a289825f76f31e85687ca1572)) -* **core.gbapp:** Refactoring in MD fix in disabling auto-compiling of .gbapps. ([ab5d507](https://github.com/pragmatismo-io/BotServer/commit/ab5d5079896a7ac2d627fa1d431e1e0d97e236ae)) -* **core.gbapp:** Removal of invalid file. ([c6b1997](https://github.com/pragmatismo-io/BotServer/commit/c6b1997a46a01914368464131bf036d5e4830644)) -* **core.gbapp:** Review of async calls, specially on collection loops. ([5d6dacc](https://github.com/pragmatismo-io/BotServer/commit/5d6dacc9101b23ef874d4d06bb27d08291b202f2)) -* **core.gbapp:** Security enhancements and fixes. ([c51ff7a](https://github.com/pragmatismo-io/BotServer/commit/c51ff7a78fe7654700bae5acb4dfdefa16b07df7)) -* **core.gbapp:** Several fixes and translator swicher. ([cca1488](https://github.com/pragmatismo-io/BotServer/commit/cca148818e75a97e7c5dfc95b5fb94db9083fe6a)) -* **core.gbapp:** Switch of bots working by activationCode. ([7b84ee1](https://github.com/pragmatismo-io/BotServer/commit/7b84ee112d9386dc18a0bf0e83af5578877d8817)) -* **core.gbapp:** Translator is working with correct backend URL. ([7f3c9fa](https://github.com/pragmatismo-io/BotServer/commit/7f3c9fa223875b4432cc0bc9a16187c995337f06)) -* **core.gbapp:** Translator now can be switched off by using Excel. ([ad1bea1](https://github.com/pragmatismo-io/BotServer/commit/ad1bea141d5a8a11bb05a7a548f2079448ece800)) -* **core.gbapp:** Updating package versions. ([597a3bc](https://github.com/pragmatismo-io/BotServer/commit/597a3bceb9d1cf3541b51a7e2d68ae9d8e4b56e1)) -* **core.gbapp:** Updating package versions. ([70883b0](https://github.com/pragmatismo-io/BotServer/commit/70883b024cbf25ce20840bbc6e255261cf27642d)) -* **core.gbapp:** Use of BOT_URL instead of relying on AZ. ([9e15b03](https://github.com/pragmatismo-io/BotServer/commit/9e15b03d048ba8a23eec64f655380f9a81ed5428)) -* **core.gbapp:** WebChat now can be made private. ([99b5a4a](https://github.com/pragmatismo-io/BotServer/commit/99b5a4a2e90036356fbd812deabc7bc4af6e4e59)) -* **customer-satisfaction.gbapp:** Improvements on answer. ([db85582](https://github.com/pragmatismo-io/BotServer/commit/db8558254f371dbe786cf4e274a0abf9d901122c)) -* **default.gbui:** Logo now showing in any screen. ([288aea8](https://github.com/pragmatismo-io/BotServer/commit/288aea86ba37a676aec00480596a718e9d0f779c)) -* **default.gbui:** Temp. rem. of fingerprint2 lib. ([414f29c](https://github.com/pragmatismo-io/BotServer/commit/414f29c1d20628a93e2f1515de4280f19d69c3c0)) -* **kb.gbapp:** Content plain text to other channels when no projector is avilable. ([283e596](https://github.com/pragmatismo-io/BotServer/commit/283e596c803bdb6240501430770d246943ecccf2)) -* **kb.gbapp:** MSFT Translator will not break MD. ([6523134](https://github.com/pragmatismo-io/BotServer/commit/6523134826ac4cac0a20256d0459090d6e216448)) -* **kb.gbapp:** New params from root bot. ([f3a32d0](https://github.com/pragmatismo-io/BotServer/commit/f3a32d04b45828ee45671843a8ff7fbef2562f10)) -* **kb.gbapp:** Search score now is derived from root. ([b68adc3](https://github.com/pragmatismo-io/BotServer/commit/b68adc362718ecba44c4f0babab2f4acb3db7465)) -* **whatsapp.gbapp:** Shared root instance with others. ([fee1528](https://github.com/pragmatismo-io/BotServer/commit/fee152848e8f82ce367dabd940e583a5ac174d44)) -* **whatsapp.gblib:** await fix. ([4addca4](https://github.com/pragmatismo-io/BotServer/commit/4addca4dc173d793d1889d2c55c15579274134d2)) -* **whatsapp.gblib:** await fix. ([5015fb1](https://github.com/pragmatismo-io/BotServer/commit/5015fb15fb929c9d5dbebb766dd9baa03afd6dc6)) -* **whatsapp.gblib:** Fix in sendFile. ([c36640e](https://github.com/pragmatismo-io/BotServer/commit/c36640e51967612661245d0fe8ebd1c46ae5fcce)) -* **whatsapp.gblib:** Fix of missing mobile number. ([6306274](https://github.com/pragmatismo-io/BotServer/commit/6306274db9bcaf151aab05b54836783723496ea0)) -* **whatsapp.gblib:** Fixed symbol erros and added timeout to WhatsApp initialization. ([895fc57](https://github.com/pragmatismo-io/BotServer/commit/895fc57097256f349f7f7703b68142356f57c4a0)) -* **whatsapp.gblib:** Improved error message. ([1ec645f](https://github.com/pragmatismo-io/BotServer/commit/1ec645f1489993c648e4401d3de10d73847a03a2)) -* **whatsapp.gblib:** Improved multibot behavior sharing Whatsapp config. ([fc49707](https://github.com/pragmatismo-io/BotServer/commit/fc4970760a670f65e4f98dceb4333318e3b04785)) -* **whatsapp.gblib:** Send file now working again. ([3abe85c](https://github.com/pragmatismo-io/BotServer/commit/3abe85ca305901aa8f5e9d95aa864428c3cc4a1a)) -* **whatsapp.gblib:** Speech is now full duplex. ([6442ebf](https://github.com/pragmatismo-io/BotServer/commit/6442ebf9834d520bb1c0662ac69e529ac9bd5620)) -* **whatsapp.gblib:** Transfer bug fix. ([ed15c85](https://github.com/pragmatismo-io/BotServer/commit/ed15c856c5c6cfd000da1d8ce8c2cc924fd1d49f)) - -## [1.7.6](https://github.com/pragmatismo-io/BotServer/compare/1.7.5...1.7.6) (2019-10-24) - - -### Bug Fixes - -* **core.gbapp:** fix of sts token generation ([d6aa65d](https://github.com/pragmatismo-io/BotServer/commit/d6aa65d)) - -## [1.7.5](https://github.com/pragmatismo-io/BotServer/compare/1.7.4...1.7.5) (2019-10-18) - - -### Bug Fixes - -* **core.gbapp:** Clean-up of system code ([9311943](https://github.com/pragmatismo-io/BotServer/commit/9311943)) - -## [1.7.4](https://github.com/pragmatismo-io/BotServer/compare/1.7.3...1.7.4) (2019-10-17) - - -### Bug Fixes - -* **kb.gbapp:** Use of await style call ([a034abf](https://github.com/pragmatismo-io/BotServer/commit/a034abf)) - -## [1.7.3](https://github.com/pragmatismo-io/BotServer/compare/1.7.2...1.7.3) (2019-10-10) - - -### Bug Fixes - -* **basic:** Adicionando .env no .gitignore e desabilitando suporte a linguagem BASIC por default ([91d1476](https://github.com/pragmatismo-io/BotServer/commit/91d1476)) - -## [1.7.2](https://github.com/pragmatismo-io/BotServer/compare/1.7.1...1.7.2) (2019-08-30) - - -### Bug Fixes - -* **basic:** Fix default bot.bas missing parenthesis in code. ([8501002](https://github.com/pragmatismo-io/BotServer/commit/8501002)) - -## [1.7.1](https://github.com/pragmatismo-io/BotServer/compare/1.7.0...1.7.1) (2019-08-30) - - -### Bug Fixes - -* **whatsapp.gblib:** Multi-turn dialog fixed in BASIC processing. ([4689bfb](https://github.com/pragmatismo-io/BotServer/commit/4689bfb)) - -# [1.7.0](https://github.com/pragmatismo-io/BotServer/compare/1.6.0...1.7.0) (2019-08-29) - - -### Bug Fixes - -* **whatsapp.gblib:** BASIC enabled with Promises. ([47df1f1](https://github.com/pragmatismo-io/BotServer/commit/47df1f1)) -* **whatsapp.gblib:** BASIC is disabled again. ([fa9f260](https://github.com/pragmatismo-io/BotServer/commit/fa9f260)) -* **whatsapp.gblib:** BASIC is disabled again. ([4828a33](https://github.com/pragmatismo-io/BotServer/commit/4828a33)) -* **whatsapp.gblib:** User can say the activation code as the first message. ([3f6668d](https://github.com/pragmatismo-io/BotServer/commit/3f6668d)) -* **whatsapp.gblib:** Web can show images again and working directory on startup being created. ([8d512ca](https://github.com/pragmatismo-io/BotServer/commit/8d512ca)) -* **whatsapp.gblib:** Work directory being created now on startup. ([ca98965](https://github.com/pragmatismo-io/BotServer/commit/ca98965)) - - -### Features - -* **core.gbapp:** New bot management (CRUD) from SharePoint packages. ([9a961e7](https://github.com/pragmatismo-io/BotServer/commit/9a961e7)) -* **kb.gbapp:** TSV are replaced with MS Excel files, to store tabular information. ([246b222](https://github.com/pragmatismo-io/BotServer/commit/246b222)) -* **sharepoint:** SharePoint deployPackage added. ([ae73cf8](https://github.com/pragmatismo-io/BotServer/commit/ae73cf8)) -* **whatsapp.gblib:** Image will be send as a message and md can be read easily on the phone. ([2b4fb68](https://github.com/pragmatismo-io/BotServer/commit/2b4fb68)) -* **whatsapp.gblib:** Now Whatsapp will display markdown from .gbkb including images. ([faa5ec7](https://github.com/pragmatismo-io/BotServer/commit/faa5ec7)) -* **whatsapp.gblib:** Same chat-api provider now shared between instances and deploy improvements. ([b2da413](https://github.com/pragmatismo-io/BotServer/commit/b2da413)) -* **whatsapp.gblib:** Switch from Whatsapp channel which bot to talk to with the same number. ([650779e](https://github.com/pragmatismo-io/BotServer/commit/650779e)) -* **whatsapp.gblib:** Switch from Whatsapp channel which bot to talk to with the same number. ([cb3d241](https://github.com/pragmatismo-io/BotServer/commit/cb3d241)) - -# [1.6.0](https://github.com/pragmatismo-io/BotServer/compare/1.5.5...1.6.0) (2019-08-21) - - -### Features - -* **boot:** Bot now can be run with VSCode F5 after cloning from git. ([29d90db](https://github.com/pragmatismo-io/BotServer/commit/29d90db)) - -## [1.5.5](https://github.com/pragmatismo-io/BotServer/compare/1.5.4...1.5.5) (2019-07-23) - - -### Bug Fixes - -* **kb.gbapp:** Improvement on translate ([bc56a1d](https://github.com/pragmatismo-io/BotServer/commit/bc56a1d)) - -## [1.5.4](https://github.com/pragmatismo-io/BotServer/compare/1.5.3...1.5.4) (2019-07-19) - - -### Bug Fixes - -* **kb.gbapp:** NLP scoring added again. ([c83a5f9](https://github.com/pragmatismo-io/BotServer/commit/c83a5f9)) - -## [1.5.3](https://github.com/pragmatismo-io/BotServer/compare/1.5.2...1.5.3) (2019-07-18) - - -### Bug Fixes - -* **core.gbapp:** Deployer now imports UTF-8 .tsv files. ([daf0741](https://github.com/pragmatismo-io/BotServer/commit/daf0741)) - -## [1.5.2](https://github.com/pragmatismo-io/BotServer/compare/1.5.1...1.5.2) (2019-07-18) - - -### Bug Fixes - -* **core.gbapp:** Redeploy command now fixed. ([d68da40](https://github.com/pragmatismo-io/BotServer/commit/d68da40)) - -## [1.5.1](https://github.com/pragmatismo-io/BotServer/compare/1.5.0...1.5.1) (2019-07-18) - - -### Bug Fixes - -* **kb.gbapp:** Answers in text in case of Whatsapp channel. ([4f994b1](https://github.com/pragmatismo-io/BotServer/commit/4f994b1)) - -# [1.5.0](https://github.com/pragmatismo-io/BotServer/compare/1.4.0...1.5.0) (2019-07-04) - - -### Features - -* **core.gbapp:** New global quit keywords. ([15cd8d6](https://github.com/pragmatismo-io/BotServer/commit/15cd8d6)) - -# [1.4.0](https://github.com/pragmatismo-io/BotServer/compare/1.3.10...1.4.0) (2019-06-28) - - -### Bug Fixes - -* **whatsapp.gblib:** Service latency due to res.end missing call. ([82dcfac](https://github.com/pragmatismo-io/BotServer/commit/82dcfac)) - - -### Features - -* **core.gbapp:** Development options added (ngrok) ([223801d](https://github.com/pragmatismo-io/BotServer/commit/223801d)) -* **security.gbapp:** Phone field and conversation refeerence. ([46261d7](https://github.com/pragmatismo-io/BotServer/commit/46261d7)) - -## [1.3.10](https://github.com/pragmatismo-io/BotServer/compare/1.3.9...1.3.10) (2019-06-21) - - -### Bug Fixes - -* **core.gbapp:** MSFT changed again LUIS url. ([967f780](https://github.com/pragmatismo-io/BotServer/commit/967f780)) - -## [1.3.9](https://github.com/pragmatismo-io/BotServer/compare/1.3.8...1.3.9) (2019-06-18) - - -### Bug Fixes - -* **whastapp.gblib:** Fix in pro-active messaging. ([3f710e8](https://github.com/pragmatismo-io/BotServer/commit/3f710e8)) - -## [1.3.8](https://github.com/pragmatismo-io/BotServer/compare/1.3.7...1.3.8) (2019-06-18) - - -### Bug Fixes - -* **core.gbapp:** ms-rest-azure updated due to https://github.com/Azure/ms-rest-js/issues/347. ([d61d2f8](https://github.com/pragmatismo-io/BotServer/commit/d61d2f8)) -* **whatsapp.gblib:** Fixing loop behaviour. ([10d2a4a](https://github.com/pragmatismo-io/BotServer/commit/10d2a4a)) - -## [1.3.7](https://github.com/pragmatismo-io/BotServer/compare/1.3.6...1.3.7) (2019-06-05) - - -### Bug Fixes - -* **core.gbapp:** Self-replication on Azure ([f29c8c2](https://github.com/pragmatismo-io/BotServer/commit/f29c8c2)) -* **core.gbapp:** Self-replication on Azure ([4d484d0](https://github.com/pragmatismo-io/BotServer/commit/4d484d0)) - -## [1.3.6](https://github.com/pragmatismo-io/BotServer/compare/1.3.5...1.3.6) (2019-05-27) - - -### Bug Fixes - -* **core.gbapp:** Self-replication on Azure ([5f0fb3b](https://github.com/pragmatismo-io/BotServer/commit/5f0fb3b)) -* **core.gbapp:** Self-replication on Azure ([2509157](https://github.com/pragmatismo-io/BotServer/commit/2509157)) -* **core.gbapp:** Self-replication on Azure ([8850370](https://github.com/pragmatismo-io/BotServer/commit/8850370)) - -## [1.3.5](https://github.com/pragmatismo-io/BotServer/compare/1.3.4...1.3.5) (2019-05-27) - - -### Bug Fixes - -* **core.gbapp:** Self-replication on Azure ([f64cc4c](https://github.com/pragmatismo-io/BotServer/commit/f64cc4c)) - -## [1.3.4](https://github.com/pragmatismo-io/BotServer/compare/1.3.3...1.3.4) (2019-05-27) - - -### Bug Fixes - -* **core.gbapp:** Self-replication on Azure ([e82a813](https://github.com/pragmatismo-io/BotServer/commit/e82a813)) - -## [1.3.3](https://github.com/pragmatismo-io/BotServer/compare/1.3.2...1.3.3) (2019-05-27) - - -### Bug Fixes - -* **core.gbapp:** Self-replication on Azure ([bf602c6](https://github.com/pragmatismo-io/BotServer/commit/bf602c6)) -* **core.gbapp:** Self-replication on Azure ([3cca504](https://github.com/pragmatismo-io/BotServer/commit/3cca504)) -* **core.gbapp:** Self-replication on Azure ([05edafd](https://github.com/pragmatismo-io/BotServer/commit/05edafd)) - -## [1.3.2](https://github.com/pragmatismo-io/BotServer/compare/1.3.1...1.3.2) (2019-05-26) - - -### Bug Fixes - -* **core.gbapp:** Self-replication on Azure. ([2ccae38](https://github.com/pragmatismo-io/BotServer/commit/2ccae38)) -* **core.gbapp:** Self-replication on Azure. ([4b7d29d](https://github.com/pragmatismo-io/BotServer/commit/4b7d29d)) - -## [1.3.1](https://github.com/pragmatismo-io/BotServer/compare/1.3.0...1.3.1) (2019-05-25) - - -### Bug Fixes - -* **core.gbapp:** Azure deployment. ([f1b8eb2](https://github.com/pragmatismo-io/BotServer/commit/f1b8eb2)) -* **core.gbapp:** Azure deployment. ([49e1743](https://github.com/pragmatismo-io/BotServer/commit/49e1743)) -* **core.gbapp:** Azure Deployment. ([f8fab38](https://github.com/pragmatismo-io/BotServer/commit/f8fab38)) -* **core.gbapp:** ESNext in tsconfig.json to match MSFT. ([01b8dd5](https://github.com/pragmatismo-io/BotServer/commit/01b8dd5)) -* **core.gbapp:** Fixing loading of instances. ([bc9c588](https://github.com/pragmatismo-io/BotServer/commit/bc9c588)) -* **core.gbapp:** Investigating BASIC broken. ([f0ec25e](https://github.com/pragmatismo-io/BotServer/commit/f0ec25e)) -* **core.gbapp:** package.json artifacts sync. ([01d34a6](https://github.com/pragmatismo-io/BotServer/commit/01d34a6)) -* **core.gbapp:** Publishing in Azure. ([4d6779e](https://github.com/pragmatismo-io/BotServer/commit/4d6779e)) -* **core.gbapp:** Removing POC code. ([56f46f4](https://github.com/pragmatismo-io/BotServer/commit/56f46f4)) -* **kb.gbapp:** Typo fix. ([ba26578](https://github.com/pragmatismo-io/BotServer/commit/ba26578)) -* **whatsapp.gblib:** Enabling Whatsapp. ([4351b87](https://github.com/pragmatismo-io/BotServer/commit/4351b87)) -* **whatsapp.gblib:** Enabling Whatsapp. ([74f5936](https://github.com/pragmatismo-io/BotServer/commit/74f5936)) -* **whatsapp.lib:** Enabling Whatsapp. ([85249e5](https://github.com/pragmatismo-io/BotServer/commit/85249e5)) - -# [1.3.0](https://github.com/pragmatismo-io/BotServer/compare/1.2.2...1.3.0) (2019-05-12) - - -### Bug Fixes - -* **core:** ngrok is running on linux ([000bdc1](https://github.com/pragmatismo-io/BotServer/commit/000bdc1)) -* **design:** 404 on bot logo on default.gbtheme: https://github.com/GeneralBots/BotServer/issues/80. ([f67f04a](https://github.com/pragmatismo-io/BotServer/commit/f67f04a)) -* **gbot:** gbot.cmd now installs packages and compiles the server before running. ([dca0325](https://github.com/pragmatismo-io/BotServer/commit/dca0325)) -* **gbot:** gbot.cmd now installs packages and compiles the server before running. ([b7abf5f](https://github.com/pragmatismo-io/BotServer/commit/b7abf5f)) -* **general:** tslint being applied in all sources. ([77ccc3d](https://github.com/pragmatismo-io/BotServer/commit/77ccc3d)) -* **general:** tslint being applied in all sources. ([25d1459](https://github.com/pragmatismo-io/BotServer/commit/25d1459)) -* **general:** tslint being applied in all sources. ([4b49686](https://github.com/pragmatismo-io/BotServer/commit/4b49686)) -* **general:** tslint being applied in all sources. ([895be68](https://github.com/pragmatismo-io/BotServer/commit/895be68)) -* **general:** tslint being applied in all sources. ([c74b3ee](https://github.com/pragmatismo-io/BotServer/commit/c74b3ee)) -* **general:** tslint being applied in all sources. ([ef3c5a1](https://github.com/pragmatismo-io/BotServer/commit/ef3c5a1)) -* **general:** tslint being applied in all sources. ([e9bed77](https://github.com/pragmatismo-io/BotServer/commit/e9bed77)) -* **general:** tslint being applied in all sources. ([d717de6](https://github.com/pragmatismo-io/BotServer/commit/d717de6)) -* **general:** tslint being applied in all sources. ([2c18517](https://github.com/pragmatismo-io/BotServer/commit/2c18517)) -* **general:** tslint being applied in all sources. ([cd5189d](https://github.com/pragmatismo-io/BotServer/commit/cd5189d)) -* **general:** tslint being applied in all sources. ([5d08457](https://github.com/pragmatismo-io/BotServer/commit/5d08457)) -* **general:** tslint being applied in all sources. ([6de285e](https://github.com/pragmatismo-io/BotServer/commit/6de285e)) -* **general:** tslint being applied in all sources. ([69ca62b](https://github.com/pragmatismo-io/BotServer/commit/69ca62b)) -* **general:** tslint being applied in all sources. ([8fec26c](https://github.com/pragmatismo-io/BotServer/commit/8fec26c)) -* **kb.gbapp:** FAQ now showing again. ([c70200a](https://github.com/pragmatismo-io/BotServer/commit/c70200a)) -* **kb.gbapp:** Fix in subjects null pointer. ([e21916f](https://github.com/pragmatismo-io/BotServer/commit/e21916f)) -* **NLP:** Update of platform to mach NLP URL updates and versioning. ([6588049](https://github.com/pragmatismo-io/BotServer/commit/6588049)) -* **VBA:** Several bugs fixed and refactoring on Deployer Service done. ([fecbd3e](https://github.com/pragmatismo-io/BotServer/commit/fecbd3e)) - - -### Features - -* **basic:** General Bots BASIC 2.0 with new keywords and parenthesis only when needed. ([3cc92ec](https://github.com/pragmatismo-io/BotServer/commit/3cc92ec)) - -## [1.2.2](https://github.com/pragmatismo-io/BotServer/compare/1.2.1...1.2.2) (2019-02-01) - - -### Bug Fixes - -* **auth:** setupSecurity now is a complete setup process for tokens. ([4718fe4](https://github.com/pragmatismo-io/BotServer/commit/4718fe4)) -* **deployer:** Installs and compiles additional .gbapps on server startup. ([cfe5cd2](https://github.com/pragmatismo-io/BotServer/commit/cfe5cd2)) -* **kb.gbapp:** Menu and Ask dialog flows fixing. ([d884bc3](https://github.com/pragmatismo-io/BotServer/commit/d884bc3)) -* **VBA:** Removal of invalid error messages. ([dd92032](https://github.com/pragmatismo-io/BotServer/commit/dd92032)) - -## [1.2.1](https://github.com/pragmatismo-io/BotServer/compare/1.2.0...1.2.1) (2018-12-18) - - -### Bug Fixes - -* **kb:** Fix in Faq and Menu dialogs. ([6ba8c09](https://github.com/pragmatismo-io/BotServer/commit/6ba8c09)) -* **startup:** Startup improved and more checks added. ([5d6c60e](https://github.com/pragmatismo-io/BotServer/commit/5d6c60e)) -* **webchat:** Sync versions and MSFT strategy. ([238c0bf](https://github.com/pragmatismo-io/BotServer/commit/238c0bf)) - -# [1.2.0](https://github.com/pragmatismo-io/BotServer/compare/1.1.1...1.2.0) (2018-12-13) - - -### Features - -* **webchat:** Update of webchat to the newer version 4. ([0270a8e](https://github.com/pragmatismo-io/BotServer/commit/0270a8e)) - -## [1.1.1](https://github.com/pragmatismo-io/BotServer/compare/1.1.0...1.1.1) (2018-12-08) - - -### Bug Fixes - -* **package:** update csv-parse to version 4.1.0 ([a606ef1](https://github.com/pragmatismo-io/BotServer/commit/a606ef1)) - -# [1.1.0](https://github.com/pragmatismo-io/BotServer/compare/1.0.8...1.1.0) (2018-12-06) - - -### Bug Fixes - -* **CI:** default.gbui compilation issues. ([7a11919](https://github.com/pragmatismo-io/BotServer/commit/7a11919)) -* **CI:** Migrating CI logic to package.json. ([8ee048f](https://github.com/pragmatismo-io/BotServer/commit/8ee048f)) -* **core:** Bot boot logic being fixed. ([1761e06](https://github.com/pragmatismo-io/BotServer/commit/1761e06)) -* **core:** Bot Server is runnable again after refactory. ([9379dec](https://github.com/pragmatismo-io/BotServer/commit/9379dec)) -* **core:** Loaded dynamically a .js file containing converted VBA dialogs. ([3f32e48](https://github.com/pragmatismo-io/BotServer/commit/3f32e48)) -* **core:** Moved logic from app to core. ([c1db8be](https://github.com/pragmatismo-io/BotServer/commit/c1db8be)) -* **default.gbui:** Removing warnings. ([02ed085](https://github.com/pragmatismo-io/BotServer/commit/02ed085)) -* **gbdialog:** Renamed alpha command to alpha-VBA added documentation files. ([9cd66b8](https://github.com/pragmatismo-io/BotServer/commit/9cd66b8)) -* **gbdialog:** Support for multiples hear blocks. ([3bb9d65](https://github.com/pragmatismo-io/BotServer/commit/3bb9d65)) -* **gbdialog:** Trying to save context. ([ce04290](https://github.com/pragmatismo-io/BotServer/commit/ce04290)) -* **gbdialog:** Updating packages to latest versions and sync *-lock file. ([dcafb7a](https://github.com/pragmatismo-io/BotServer/commit/dcafb7a)) -* **gbdialog:** VBA hear must be a wrapper call. ([6915d58](https://github.com/pragmatismo-io/BotServer/commit/6915d58)) -* **gbdialog:** VBA is running financial simulations. ([9fb431c](https://github.com/pragmatismo-io/BotServer/commit/9fb431c)) -* **gbdialog:** VBA is running. ([2dd359a](https://github.com/pragmatismo-io/BotServer/commit/2dd359a)) -* **gbdialog:** VBA loop done - one thing left to automate: Hear wrapper. ([776fe03](https://github.com/pragmatismo-io/BotServer/commit/776fe03)) -* **package:** update azure-arm-resource to version 7.2.1 ([4e72507](https://github.com/pragmatismo-io/BotServer/commit/4e72507)) -* **package:** update botlib to version 0.1.7 ([8205599](https://github.com/pragmatismo-io/BotServer/commit/8205599)) -* **package:** update csv-parse to version 4.0.0 ([3fb5a9a](https://github.com/pragmatismo-io/BotServer/commit/3fb5a9a)) -* **package:** update marked to version 0.5.2 ([405fc96](https://github.com/pragmatismo-io/BotServer/commit/405fc96)) -* **package:** update pragmatismo-io-framework to version 1.0.19 ([67c2ce7](https://github.com/pragmatismo-io/BotServer/commit/67c2ce7)) -* **tests:** Disabling VM tests tentative for now. ([9d5a9c6](https://github.com/pragmatismo-io/BotServer/commit/9d5a9c6)) - - -### Features - -* **gbdialog:** The first VBA code is run. ([f0a0cd3](https://github.com/pragmatismo-io/BotServer/commit/f0a0cd3)) -* **scripting:** First code changes to VBA implementation. ([09715bc](https://github.com/pragmatismo-io/BotServer/commit/09715bc)) - -## [1.0.8](https://github.com/pragmatismo-io/BotServer/compare/1.0.7...1.0.8) (2018-11-18) - - -### Bug Fixes - -* **docs:** Video thumbnail update to raw picture URL. ([564b394](https://github.com/pragmatismo-io/BotServer/commit/564b394)) - -## [1.0.7](https://github.com/pragmatismo-io/BotServer/compare/1.0.6...1.0.7) (2018-11-18) - - -### Bug Fixes - -* **config:** CHANGELOG generator fixing. ([ac18782](https://github.com/pragmatismo-io/BotServer/commit/ac18782)) - -## Version 0.1.9 (Before CI with Semantic Release) - -* Republishing. - -## Version 0.1.8 - -* Republishing. - -## Version 0.1.7 - -* 100% automated development environement setup. -* Azure Deployer based on ARM done - setup is easy as F5 in Visual Studio. -* Auto-ngrok - No more reverse proxy manual configuration. -* Strategy to replicate itself in several subscriptions done. - -## Version 0.1.6 - -* Updated packages references. - -## Version 0.1.5 - -* Updated packages references. - -## Version 0.1.4 - -* Error handling improved and logging enriched as well. -* Setting DATABASE_ is now STORAGE_. - - -## Version 0.1.3 - -* FIX: Admin now is internationalized. -* FIX: Webchat now receives a private token. -* FIX: OAuth2 now has got revised and included state to avoid CSRF attacks. -* FIX: Now server will only start with a secure administration password. - -## Version 0.1.2 - -* NEW: kb.gbapp now has a complete browser of excel articles. -* FIX: Some security improved. -* NEW: Protocol changes for exchanging questions between UI and Bot Server. - -## Version 0.1.0 - -- NEW: Migration to Bot Framework v4. - -## Version 0.0.31 - -- FIX: Updated dependencies versions. - -## Version 0.0.30 - -- FIX: Packages updated. -- NEW: DATABASE_SYNC_ALTER environment parameter. -- NEW: DATABASE_SYNC_FORCE environment parameter. -- NEW: Define constraint names in MSSQL. - -## Version 0.0.29 - -- NEW: Added STT and TTS capabilities to default.gbui. - -## Version 0.0.28 - -- FIX: gbui packages updated. - -## Version 0.0.27 - -- FIX: Packages updated. - -## Version 0.0.26 - -- FIX: Packages updated. -- NEW: If a bot package's name begins with '.', then it is ignored. -- NEW: Created DATABASE_LOGGING environment parameter. - -## Version 0.0.25 - -- FIX: Whastapp line now can be turned off; -- FIX: More error logging on BuildMin. - -## Version 0.0.24 - -- FIX: AskDialog compilation error. -- FIX: More Whatsapp line adjustments: Duplicated 'Hi!' & log enrichment. - -## Version 0.0.23 - -- FIX: Duplicated asking on main loop removed. -- FIX: Whatsapp log phrase correction. -- FIX: Directline can now receive messages sent in not-in-conversation, projector-only fashion. - -## Version 0.0.22 - -- NEW: Auto-dispatch to dialog based on intent name. - -## Version 0.0.21 - -- FIX: Whatsapp directline client improved. - -## Version 0.0.20 - -- NEW: Whatsapp directline client is now working in preview. - -## Version 0.0.19 - -- NEW: Whatsapp directline client started. -- NEW: Console directline client. -- NEW: Now each .gbapp has it own set of syspackages loaded. -- NEW: Added support for Whatsapp external service key on bot instance model. - -## Version 0.0.18 - -- FIX: .gbapp files now correctly loaded before other package types so custom models can be used to sync DB. -- NEW: Removed Boot Package feature. Now every .gbot found on deploy folders are deployed on startup. diff --git a/CODE_IMPLEMENTATION_ROADMAP.md b/CODE_IMPLEMENTATION_ROADMAP.md deleted file mode 100644 index 9b5ed30bc..000000000 --- a/CODE_IMPLEMENTATION_ROADMAP.md +++ /dev/null @@ -1,771 +0,0 @@ -# Code Implementation Roadmap - Closing the Documentation/Code Gap - -## Executive Summary - -**The Problem**: Documentation describes 14 UI applications in the General Bots Suite, but only 6 have fully implemented backends. The other 5 have complete HTML/CSS/JavaScript frontends that are waiting for Rust backend handlers. - -**The Solution**: Use HTMX + Rust to implement minimal backend handlers that render HTML. No additional JavaScript frameworks needed. - -**Timeline**: 2-3 weeks to complete all missing implementations - ---- - -## Current State Analysis - -### What Exists (✅ Complete) - -| Component | Status | Where | Notes | -|-----------|--------|-------|-------| -| **Chat** | ✅ Complete | `/api/sessions`, `/ws` | Real-time messaging, context management | -| **Drive** | ✅ Complete | `/api/drive/*` | S3-based file storage, upload/download | -| **Tasks** | ✅ Complete | `/api/tasks/*` | Task CRUD, assignment, status tracking | -| **Mail** | ✅ Complete | `/api/email/*` | IMAP/SMTP integration, folders, drafts | -| **Calendar** | ✅ Complete | CalDAV, `/api/calendar/*` | Event management, CalDAV protocol | -| **Meet** | ✅ Complete | `/api/meet/*`, `/ws/meet` | LiveKit integration, video calls | -| **Monitoring** | ✅ Complete | `/api/admin/stats` | System metrics, performance data | -| **BASIC Compiler** | ✅ Complete | `/src/basic/compiler/` | Dialog validation, script parsing | -| **Vector DB** | ✅ Complete | Qdrant integration | Knowledge base embeddings, search | -| **LLM Integration** | ✅ Complete | `/src/llm/mod.rs` | Multiple model support, routing | -| **HTMX App** | ✅ Complete | `htmx-app.js` | All HTMX infrastructure ready | - -### What's Missing (❌ No Backend) - -| App | Frontend | Backend | Effort | Impact | -|-----|----------|---------|--------|--------| -| **Analytics** | ✅ Complete HTML/CSS/JS | ❌ No handlers | 4-6 hrs | High (metrics critical) | -| **Paper** | ✅ Complete editor | ❌ No document API | 2-3 hrs | High (users want docs) | -| **Research** | ✅ Complete UI | 🟡 Partial (JSON only) | 1-2 hrs | Medium (search exists) | -| **Designer** | ✅ Complete builder | ❌ No dialog API | 6-8 hrs | Medium (admin feature) | -| **Sources** | ✅ Complete grid | ❌ No template API | 2-3 hrs | Low (nice-to-have) | -| **Player** | ❌ No HTML | ❌ No handlers | 2-3 hrs | Low (can use Drive) | - -### Database/Infrastructure Status - -| Component | Status | Ready to Use | -|-----------|--------|--------------| -| PostgreSQL Connection Pool | ✅ | Yes - in AppState | -| S3 Drive Integration | ✅ | Yes - Drive module | -| Redis Cache | ✅ | Yes - feature gated | -| Qdrant Vector DB | ✅ | Yes - VectorDB module | -| LLM Models | ✅ | Yes - LLM module | -| BASIC Compiler | ✅ | Yes - can call directly | -| Askama Templates | ✅ | Yes - multiple examples | -| HTMX Framework | ✅ | Yes - in UI already | - ---- - -## Implementation Strategy - -### Core Principle: HTMX-First Backend - -**Pattern**: Frontend sends HTMX request → Backend handler → Askama template → HTML response - -``` -User clicks button with hx-get="/api/resource" - ↓ -Browser sends GET to /api/resource - ↓ -Rust handler executes - ↓ -Handler calls Askama template with data - ↓ -Template renders HTML fragment - ↓ -HTMX replaces target element with HTML - ↓ -Done - no JSON parsing, no JavaScript needed -``` - -### Why This Approach - -✅ **Minimal Code** - Just Rust + HTML templates, no JavaScript frameworks -✅ **Reuses Everything** - Drive, LLM, Compiler, Database already available -✅ **Server-Side Rendering** - Better for SEO, accessibility, performance -✅ **Existing Infrastructure** - HTMX already loaded in all pages -✅ **Type Safe** - Rust compiler catches errors at build time -✅ **Fast Development** - Copy patterns from existing modules - ---- - -## Implementation Details by App - -### Priority 1: Analytics Dashboard (CRITICAL) - -**Timeline**: 4-6 hours -**Complexity**: Low (pure SQL queries) -**Impact**: High (essential metrics) - -**What to Create**: - -1. **New Module**: `botserver/src/analytics/mod.rs` - - Handler: `async fn analytics_dashboard()` - - Handler: `async fn analytics_sessions()` - - Handler: `async fn analytics_bots()` - - Handler: `async fn analytics_top_queries()` - - Handler: `async fn analytics_errors()` - -2. **Database Queries**: - ```sql - SELECT COUNT(*) FROM message_history WHERE created_at > NOW() - INTERVAL; - SELECT AVG(response_time) FROM message_history; - SELECT COUNT(*) FROM sessions WHERE active = true; - SELECT error_count FROM system_metrics; - ``` - -3. **Askama Templates**: `templates/analytics/dashboard.html` - ```html -
-
{{ messages_count }}
-
{{ avg_response_time }}ms
-
- ``` - -4. **URL Routes** (add to `urls.rs`): - ```rust - pub const ANALYTICS_DASHBOARD: &'static str = "/api/analytics/dashboard"; - pub const ANALYTICS_SESSIONS: &'static str = "/api/analytics/sessions"; - pub const ANALYTICS_BOTS: &'static str = "/api/analytics/bots"; - ``` - -5. **Wire in main.rs**: - ```rust - api_router = api_router.merge(analytics::configure()); - ``` - -**Frontend Already Has**: -- ✅ HTML form with time range selector -- ✅ HTMX attributes pointing to `/api/analytics/*` -- ✅ Charts expecting data -- ✅ Metric cards ready for values - ---- - -### Priority 2: Paper Documents (HIGH VALUE) - -**Timeline**: 2-3 hours -**Complexity**: Low-Medium (reuse Drive module) -**Impact**: High (users want document editor) - -**What to Create**: - -1. **New Module**: `botserver/src/documents/mod.rs` - - Handler: `async fn create_document()` - - Handler: `async fn list_documents()` - - Handler: `async fn get_document()` - - Handler: `async fn update_document()` - - Handler: `async fn delete_document()` - -2. **Storage Pattern** (reuse Drive): - ```rust - // Store in Drive under .gbdocs/ folder - let bucket = format!("{}.gbai", bot_name); - let key = format!(".gbdocs/{}/document.md", doc_id); - drive_client.put_object(bucket, key, content).await; - ``` - -3. **Document Structure**: - ```rust - pub struct Document { - pub id: Uuid, - pub title: String, - pub content: String, - pub doc_type: DocumentType, // draft, note, template - pub created_at: DateTime, - pub updated_at: DateTime, - pub user_id: Uuid, - } - ``` - -4. **Askama Templates**: `templates/documents/list.html` - - Grid of document cards - - Open/edit/delete buttons with HTMX - -5. **Wire in main.rs**: - ```rust - api_router = api_router.merge(documents::configure()); - ``` - -**Frontend Already Has**: -- ✅ Rich text editor (complete) -- ✅ Formatting toolbar -- ✅ AI suggestion panel -- ✅ Document list sidebar -- ✅ HTMX ready to send to `/api/documents` - -**Can Optionally Add** (later): -- LLM integration for AI rewrite/summarize -- PDF export (using existing pdf-extract dependency) -- Version history (store multiple versions) - ---- - -### Priority 3: Research - HTML Integration (QUICK WIN) - -**Timeline**: 1-2 hours -**Complexity**: Very Low (just change response format) -**Impact**: Medium (search already works, just needs HTML) - -**What to Change**: - -1. **Update Handler**: `botserver/src/core/kb/mod.rs` - ```rust - // Current: returns Json - // Change to: returns Html when format=html - - pub async fn search_kb( - Query(params): Query, // add format: Option - ) -> impl IntoResponse { - if params.format == Some("html") { - Html(template.render().unwrap()) - } else { - Json(results).into_response() - } - } - ``` - -2. **Create Template**: `templates/kb/search_results.html` - ```html -
-

{{ title }}

-

{{ snippet }}

- {{ score }} -
- ``` - -3. **Update Frontend**: Already done - just works when backend returns HTML - -**Frontend Already Has**: -- ✅ Search input with HTMX -- ✅ Results container waiting to be filled -- ✅ Filters and limits -- ✅ Stats panels - ---- - -### Priority 4: Sources - Template Manager (MEDIUM) - -**Timeline**: 2-3 hours -**Complexity**: Low-Medium (file enumeration + parsing) -**Impact**: Low-Medium (nice-to-have feature) - -**What to Create**: - -1. **New Module**: `botserver/src/sources/mod.rs` - - Handler: `async fn list_sources()` - - Handler: `async fn get_source()` - - Handler: `async fn create_from_template()` - -2. **Logic**: - ```rust - // List templates from Drive - let templates = drive.list_objects(".gbai/templates")?; - - // Parse metadata from template file - let content = drive.get_object(".gbai/templates/template.bas")?; - let metadata = parse_yaml_metadata(&content); - ``` - -3. **Source Structure**: - ```rust - pub struct Source { - pub id: String, // filename - pub name: String, - pub description: String, - pub category: String, // templates, prompts, samples - pub content: String, - pub tags: Vec, - pub downloads: i32, - pub rating: f32, - } - ``` - -4. **Templates**: `templates/sources/grid.html` - - Grid of source cards - - Category filter tabs - - Search capability - -5. **Wire in main.rs** - -**Frontend Already Has**: -- ✅ Source grid layout -- ✅ Category selector -- ✅ Search box with HTMX -- ✅ Source detail view - ---- - -### Priority 5: Designer - Dialog Configuration (COMPLEX) - -**Timeline**: 6-8 hours -**Complexity**: Medium-High (BASIC compiler integration) -**Impact**: Medium (admin/developer feature) - -**What to Create**: - -1. **New Module**: `botserver/src/designer/mod.rs` - - Handler: `async fn list_dialogs()` - - Handler: `async fn create_dialog()` - - Handler: `async fn update_dialog()` - - Handler: `async fn validate_dialog()` - - Handler: `async fn deploy_dialog()` - -2. **Validation Flow**: - ```rust - // Use existing BASIC compiler - use crate::basic::compiler::BASICCompiler; - - let compiler = BASICCompiler::new(); - match compiler.compile(&dialog_content) { - Ok(_) => { /* valid */ } - Err(errors) => { /* return errors in HTML */ } - } - ``` - -3. **Storage** (Drive): - ```rust - // Store .bas files in Drive - let bucket = format!("{}.gbai", bot_name); - let key = format!(".gbdialogs/{}.bas", dialog_name); - drive.put_object(bucket, key, content).await; - ``` - -4. **Dialog Structure**: - ```rust - pub struct Dialog { - pub id: Uuid, - pub bot_id: Uuid, - pub name: String, - pub content: String, // BASIC code - pub status: DialogStatus, // draft, valid, deployed - pub version: i32, - pub created_at: DateTime, - pub updated_at: DateTime, - } - ``` - -5. **Templates**: - - `templates/designer/dialog_list.html` - List of dialogs - - `templates/designer/dialog_editor.html` - Code editor - - `templates/designer/validation_results.html` - Error display - -6. **Wire in main.rs** - -**Frontend Already Has**: -- ✅ Dialog list with HTMX -- ✅ Code editor interface -- ✅ Deploy button -- ✅ Validation result display - -**Notes**: -- Can reuse existing BASIC compiler from `botserver/src/basic/compiler/` -- Compiler already available in AppState -- Just need to call it and render results as HTML - ---- - -## Implementation Checklist - -### Week 1: Foundation (High-Value, Low-Effort) - -- [ ] **Research HTML Integration** (1-2 hrs) - - [ ] Update `/api/kb/search` to support `?format=html` - - [ ] Create template for search results - - [ ] Test with frontend - -- [ ] **Paper Documents** (2-3 hrs) - - [ ] Create `botserver/src/documents/mod.rs` - - [ ] Implement CRUD handlers - - [ ] Add Askama templates - - [ ] Wire routes in main.rs - - [ ] Test with frontend - -- [ ] **Analytics Dashboard** (4-6 hrs) - - [ ] Create `botserver/src/analytics/mod.rs` - - [ ] Write SQL aggregation queries - - [ ] Create Askama templates for metrics - - [ ] Implement handlers - - [ ] Wire routes in main.rs - - [ ] Test with frontend - -**Week 1 Result**: 3 apps complete, majority of UI functional - -### Week 2: Medium Effort - -- [ ] **Sources Template Manager** (2-3 hrs) - - [ ] Create `botserver/src/sources/mod.rs` - - [ ] Implement Drive template enumeration - - [ ] Create template listing - - [ ] Test with frontend - -- [ ] **Designer - Dialog Configuration** (6-8 hrs) - - [ ] Create `botserver/src/designer/mod.rs` - - [ ] Implement BASIC validation integration - - [ ] Create dialog list/editor templates - - [ ] Implement CRUD handlers - - [ ] Add deploy functionality - - [ ] Test with frontend - -**Week 2 Result**: All 5 missing apps complete - -### Week 3: Polish & Testing - -- [ ] Integration testing across all apps -- [ ] Performance optimization -- [ ] Error handling refinement -- [ ] Documentation updates -- [ ] Deployment validation - ---- - -## Technical Patterns to Follow - -### Handler Pattern (Copy This Template) - -```rust -// botserver/src/analytics/mod.rs - -use axum::{ - extract::{Query, State}, - http::StatusCode, - response::Html, - routing::get, - Router, -}; -use serde::{Deserialize, Serialize}; -use std::sync::Arc; -use askama::Template; - -#[derive(Deserialize)] -pub struct AnalyticsQuery { - pub time_range: Option, -} - -#[derive(Serialize)] -pub struct AnalyticsData { - pub messages_count: i64, - pub sessions_count: i64, - pub avg_response_time: f64, -} - -#[derive(Template)] -#[template(path = "analytics/dashboard.html")] -struct AnalyticsDashboardTemplate { - data: AnalyticsData, -} - -pub async fn analytics_dashboard( - Query(params): Query, - State(state): State>, -) -> Result, StatusCode> { - // Query database - let mut conn = state.conn.get() - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; - - let data = AnalyticsData { - messages_count: get_message_count(&mut conn)?, - sessions_count: get_session_count(&mut conn)?, - avg_response_time: get_avg_response_time(&mut conn)?, - }; - - // Render template - let template = AnalyticsDashboardTemplate { data }; - Ok(Html(template.render() - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?)) -} - -pub fn configure() -> Router> { - Router::new() - .route("/api/analytics/dashboard", get(analytics_dashboard)) -} -``` - -### Template Pattern (Copy This Template) - -```html - -
-
-
- Messages - {{ data.messages_count }} -
-
- Sessions - {{ data.sessions_count }} -
-
- Avg Response - {{ data.avg_response_time }}ms -
-
-
-``` - ---- - -## Dependencies Already Available - -### Database Access - -```rust -// Get database connection from AppState -let mut conn = state.conn.get()?; - -// Use existing queries from botserver/src/schema.rs -use botserver::schema::message_history::dsl::*; -use diesel::prelude::*; - -let results = message_history - .filter(created_at.gt(now - interval)) - .load::(&mut conn)?; -``` - -### S3 Drive Access - -```rust -// Get S3 client from AppState -let drive = state.drive.as_ref().ok_or("Drive not configured")?; - -// Use existing methods -drive.list_objects("bucket", "path").await?; -drive.get_object("bucket", "key").await?; -drive.put_object("bucket", "key", content).await?; -``` - -### LLM Integration - -```rust -// Get LLM from AppState or instantiate -let llm_client = state.llm_client.clone(); - -// Call for AI features (Paper app) -let response = llm_client.complete(&prompt).await?; -``` - -### BASIC Compiler - -```rust -// Already available for Designer app -use botserver::basic::compiler::BASICCompiler; - -let compiler = BASICCompiler::new(); -match compiler.compile(&dialog_code) { - Ok(ast) => { /* valid */ } - Err(errors) => { /* return errors */ } -} -``` - ---- - -## Testing Strategy - -### Unit Tests (Per Module) - -```rust -#[cfg(test)] -mod tests { - use super::*; - - #[tokio::test] - async fn test_analytics_dashboard() { - // Create mock AppState - // Call analytics_dashboard() - // Assert response contains HTML - // Assert metrics are reasonable - } -} -``` - -### Integration Tests (HTMX Flow) - -```bash -# Test Analytics -curl -X GET "http://localhost:3000/api/analytics/dashboard?timeRange=day" \ - -H "Accept: text/html" - -# Verify response is HTML, not JSON -# Verify contains metric divs -# Verify values are numbers -``` - -### Frontend Tests (Browser) - -1. Open `http://localhost:3000` -2. Click on app in menu (e.g., "Analytics") -3. Verify HTMX request goes to `/api/analytics/*` -4. Verify HTML content loads in page -5. Verify styling is correct -6. Test interactive features (filters, buttons) - ---- - -## Deployment Notes - -### Build - -```bash -cd botserver -cargo build --release --features "analytics,documents,sources,designer" -``` - -### Feature Flags - -Add to `Cargo.toml`: - -```toml -[features] -analytics = [] -documents = [] -designer = [] -sources = [] -research-html = [] -``` - -### Environment - -No new environment variables needed - all modules use existing AppState configuration. - ---- - -## Risk Mitigation - -### What Could Go Wrong - -| Risk | Mitigation | -|------|-----------| -| SQL injection in queries | Use Diesel ORM (type-safe) | -| Template rendering errors | Test templates with sample data | -| Drive not configured | Check AppState initialization | -| Compiler failures in Designer | Use existing compiler tests | -| HTMX attribute errors | Verify hx-* attributes in HTML | - -### Testing Before Deploy - -- [ ] All handlers return valid HTML -- [ ] All HTMX attributes point to correct endpoints -- [ ] No 404s in browser console -- [ ] No error messages in backend logs -- [ ] Database queries complete in <100ms -- [ ] Templates render without errors -- [ ] CSS styles load correctly -- [ ] Responsive design works on mobile - ---- - -## Success Criteria - -### Definition of Done (Per App) - -- ✅ Rust handlers implement all CRUD operations -- ✅ Askama templates render without errors -- ✅ Routes registered in main.rs -- ✅ HTMX attributes in frontend point to correct endpoints -- ✅ HTML responses work with HTMX swapping -- ✅ No JavaScript errors in console -- ✅ All CRUD operations tested manually -- ✅ No database errors in logs -- ✅ Response time <100ms for queries -- ✅ Frontend UI works as designed - -### Overall Success - -By end of Week 3: -- ✅ All 5 missing apps have backend handlers -- ✅ All app UIs are fully functional -- ✅ No HTMX errors in browser -- ✅ All endpoints tested and working -- ✅ Documentation updated with new APIs - ---- - -## References - -### Existing Working Examples - -Study these modules to understand patterns: - -- `botserver/src/tasks/mod.rs` - Complete CRUD example -- `botserver/src/email/mod.rs` - API handlers pattern -- `botserver/src/drive/mod.rs` - S3 integration pattern -- `botserver/src/calendar/mod.rs` - Complex routes example - -### Key Files to Edit - -- `botserver/src/main.rs` - Add `.merge(analytics::configure())` etc. -- `botserver/src/core/urls.rs` - Define new URL constants -- `botserver/templates/` - Add new Askama templates -- `botui/ui/suite/*/` - HTML already complete, no changes needed - -### Documentation References - -- HTMX: https://htmx.org/attributes/hx-get/ -- Axum: https://docs.rs/axum/latest/axum/ -- Askama: https://docs.rs/askama/latest/askama/ -- Diesel: https://docs.rs/diesel/latest/diesel/ - ---- - -## Questions & Answers - -**Q: Do we need to modify frontend HTML?** -A: No - all HTML files already have correct HTMX attributes. Just implement the backend endpoints. - -**Q: Can we use JSON responses with HTMX?** -A: Technically yes, but HTML responses are more efficient with HTMX and require no frontend JavaScript. - -**Q: What if a database query takes too long?** -A: Add database indexes on frequently queried columns. Use EXPLAIN to analyze slow queries. - -**Q: How do we handle errors in templates?** -A: Return HTTP error status codes (400, 404, 500) with HTML error messages. HTMX handles swapping them appropriately. - -**Q: Can we add new dependencies?** -A: Prefer using existing dependencies already in Cargo.toml. If needed, add to existing feature flags. - -**Q: What about authentication/authorization?** -A: Use existing auth middleware from Drive/Tasks modules. Copy the pattern. - ---- - -## Next Steps - -1. **Start with Priority 1** (Research HTML Integration) - - Easiest to implement (1-2 hours) - - Low risk - - Good way to understand HTMX pattern - -2. **Move to Priority 2** (Paper Documents) - - High user value - - Medium complexity - - Reuses Drive module - -3. **Tackle Priority 3** (Analytics) - - Most SQL-heavy - - Pure data aggregation - - High impact for users - -4. **Complete Priority 4 & 5** (Designer & Sources) - - More complex features - - Can be done in parallel - - Nice-to-have, not critical - -**Estimated Total Time**: 2-3 weeks for all 5 apps to be production-ready. - ---- - -## Success Metrics - -After implementation: - -- **Code Coverage**: 85%+ of new handlers have tests -- **Performance**: All endpoints respond <200ms -- **Reliability**: 99.5%+ uptime for new features -- **User Satisfaction**: All UI apps work as documented -- **Maintainability**: All code follows existing patterns -- **Documentation**: API docs auto-generated from code - ---- - -**Last Updated**: 2024 -**Status**: Ready for Implementation -**Maintainer**: General Bots Team \ No newline at end of file diff --git a/GAP_ANALYSIS.md b/GAP_ANALYSIS.md deleted file mode 100644 index 5f1f8666a..000000000 --- a/GAP_ANALYSIS.md +++ /dev/null @@ -1,369 +0,0 @@ -# Code/Documentation Gap Analysis - -**Date**: 2024 -**Status**: 🔴 CRITICAL - 5 of 11 apps missing backend implementation -**Impact**: 45% of documented features non-functional -**Resolution Time**: 20-25 hours (2-3 weeks) - ---- - -## Executive Summary - -The General Bots documentation describes a complete enterprise suite with 14 applications. However, **only 6 applications have fully implemented backends**. The other 5 have complete HTML/CSS/JavaScript frontend shells but **zero Rust API endpoints**, making them non-functional despite being documented as complete features. - -### By The Numbers - -| Metric | Value | -|--------|-------| -| Apps Documented | 14 | -| Apps with Frontend | 13 | -| Apps with Backend | 6 | -| **Apps Missing Backend** | **5** | -| Frontend Completion | 100% | -| Backend Completion | 55% | -| **Functionality Gap** | **45%** | - ---- - -## The Five Missing Apps - -### 🔴 1. Analytics Dashboard -- **Frontend**: Complete (1215 lines, full UI with charts) -- **Backend**: NONE - No endpoints, no handlers -- **What's Needed**: SQL queries to aggregate `message_history` and `sessions` tables -- **Effort**: 4-6 hours -- **Impact**: HIGH - Users expect metrics - -### 🔴 2. Paper (Document Editor) -- **Frontend**: Complete (1700+ lines, rich text editor with toolbar) -- **Backend**: NONE - No document storage, no endpoints -- **What's Needed**: Document CRUD + Drive S3 integration -- **Effort**: 2-3 hours -- **Impact**: HIGH - Users want to create documents - -### 🟡 3. Research (Semantic Search) -- **Frontend**: Complete (full search interface) -- **Backend**: PARTIAL - `/api/kb/search` exists but returns JSON -- **What's Needed**: Change response format from JSON → HTML for HTMX -- **Effort**: 1-2 hours -- **Impact**: MEDIUM - Search works, just needs UI integration - -### 🔴 4. Designer (Bot Builder) -- **Frontend**: Complete (dialog builder interface) -- **Backend**: NONE - No dialog management endpoints -- **What's Needed**: BASIC compiler integration + dialog CRUD -- **Effort**: 6-8 hours -- **Impact**: MEDIUM - Admin/developer feature - -### 🔴 5. Sources (Template Manager) -- **Frontend**: Complete (template gallery grid) -- **Backend**: NONE - No template enumeration -- **What's Needed**: List Drive templates + parse metadata -- **Effort**: 2-3 hours -- **Impact**: LOW - Nice-to-have feature - ---- - -## What's Actually Working ✅ - -| App | Frontend | Backend | Status | -|-----|----------|---------|--------| -| Chat | ✅ | ✅ `/api/sessions`, `/ws` | 🟢 COMPLETE | -| Drive | ✅ | ✅ `/api/drive/*` | 🟢 COMPLETE | -| Tasks | ✅ | ✅ `/api/tasks/*` | 🟢 COMPLETE | -| Mail | ✅ | ✅ `/api/email/*` | 🟢 COMPLETE | -| Calendar | ✅ | ✅ CalDAV | 🟢 COMPLETE | -| Meet | ✅ | ✅ `/api/meet/*`, `/ws/meet` | 🟢 COMPLETE | -| Monitoring | ✅ | ✅ `/api/admin/stats` | 🟢 COMPLETE | - -**Total**: 6 fully working applications = **55% backend coverage** - ---- - -## Root Cause Analysis - -### Why This Happened - -1. **Parallel Development** - Frontend team built all UI shells simultaneously -2. **Incomplete Backend** - Backend team implemented core features (Chat, Drive, Tasks, etc.) but not everything -3. **No Integration Gate** - Missing backend wasn't caught before documentation was published -4. **Orphaned UI** - Frontend shells were completed but never wired to backend - -### Why It Matters Now - -- **Docs Promise**: Users read "Chapter 04: Suite Applications" and expect 14 apps to work -- **Users Try Apps**: Click on Analytics/Paper/Designer and get broken/empty screens -- **Trust Damaged**: Platform appears incomplete or poorly maintained -- **Opportunity Cost**: Features documented but not usable - ---- - -## The Good News - -### Infrastructure Already Exists - -All the pieces needed to implement the missing apps are already in the codebase: - -| Component | Location | Status | Can Use For | -|-----------|----------|--------|-----------| -| Database | `schema.rs` | ✅ Complete | All apps can query | -| S3 Drive | `drive/mod.rs` | ✅ Complete | Paper, Sources, Designer | -| LLM Module | `llm/mod.rs` | ✅ Complete | Paper (AI features) | -| BASIC Compiler | `basic/compiler/mod.rs` | ✅ Complete | Designer (validation) | -| Vector DB | Qdrant integration | ✅ Complete | Research (search) | -| HTMX Framework | `htmx-app.js` | ✅ Complete | All apps (UI binding) | -| Askama Templates | `templates/` | ✅ Complete | All apps (HTML rendering) | -| AppState | `core/shared/state.rs` | ✅ Complete | All apps (DB + Drive + LLM) | - -### Proven Pattern - -The solution is to follow the same pattern used by Chat, Drive, and Tasks: - -``` -Frontend (HTML) - ↓ hx-get="/api/resource" -Rust Handler - ↓ returns Html -Askama Template - ↓ -HTMX swaps into page - ↓ Done ✅ -``` - -**Zero JavaScript needed. Just Rust + HTML templates.** - ---- - -## Solution: Implementation Roadmap - -### Phase 1: Quick Wins (Week 1) - 8 hours -1. **Research HTML Integration** (1-2 hrs) - Change response format -2. **Paper Documents** (2-3 hrs) - Reuse Drive module -3. **Analytics Dashboard** (4-6 hrs) - SQL aggregations - -### Phase 2: Medium Effort (Week 2) - 12 hours -4. **Sources Templates** (2-3 hrs) - File enumeration -5. **Designer Dialog Config** (6-8 hrs) - Compiler integration - -### Phase 3: Polish (Week 3) - 2-3 hours -- Testing, optimization, documentation - -**Total Time**: ~20-25 hours -**Total Effort**: 2-3 weeks for one engineer -**Risk Level**: LOW (patterns proven, no new architecture) - ---- - -## Impact of Not Fixing - -### Short Term (1-2 weeks) -- ❌ Users see broken/empty app screens -- ❌ Documentation appears inaccurate -- ❌ Features marked as complete don't work -- ❌ Support tickets for "missing" features - -### Medium Term (1-2 months) -- ❌ Platform reputation damage -- ❌ Users lose trust in product -- ❌ Migration from other platforms stalls -- ❌ Deployment blocked until "fixed" - -### Long Term (3+ months) -- ❌ Competitive disadvantage -- ❌ Lost sales opportunities -- ❌ Technical debt accumulates -- ❌ Refactoring becomes harder - ---- - -## Impact of Fixing - -### Immediate (Upon completion) -- ✅ All documented features work -- ✅ Documentation matches code -- ✅ Platform is "feature complete" -- ✅ User expectations met - -### Short Term (1 month) -- ✅ Increased user adoption -- ✅ Positive platform reviews -- ✅ Reduced support burden -- ✅ Deployments unblocked - -### Long Term (3+ months) -- ✅ Stable, maintainable codebase -- ✅ Happy users → more referrals -- ✅ Foundation for future features -- ✅ Competitive advantage - ---- - -## Effort Breakdown - -### By App (Hours) - -| App | SQL | Rust | Template | Integration | Total | -|-----|-----|------|----------|-------------|-------| -| Analytics | 2 | 1 | 1 | 1 | **5 hrs** | -| Paper | 0 | 1.5 | 1 | 0.5 | **3 hrs** | -| Research | 0 | 0.5 | 0.5 | 0.2 | **1.2 hrs** | -| Sources | 0 | 1 | 1 | 0.5 | **2.5 hrs** | -| Designer | 0 | 2 | 1 | 2 | **5 hrs** | -| **TOTAL** | **2** | **6** | **4.5** | **4.5** | **~17 hrs** | - -Plus testing, documentation, deployment: +3-8 hours - -**Realistic Total**: 20-25 hours - ---- - -## Who Should Do This - -### Ideal Profile -- ✅ Rust backend experience -- ✅ SQL knowledge -- ✅ Familiar with codebase (or quick learner) -- ✅ Can follow existing patterns - -### Time Estimate Per App -| App | Experience | Estimate | -|-----|-----------|----------| -| Analytics | Mid-level | 5 hrs | -| Paper | Mid-level | 3 hrs | -| Research | Junior | 1.5 hrs | -| Sources | Mid-level | 2.5 hrs | -| Designer | Senior | 6 hrs | - -### Can Be Done In Parallel? -Yes - Each app is independent. Could have 2 engineers work simultaneously: -- Engineer A: Analytics + Paper + Research (9 hrs) -- Engineer B: Sources + Designer (11 hrs) -- **Parallel time**: ~11 hours instead of 20 hours - ---- - -## Key Considerations - -### What NOT to Change -- ❌ Don't modify frontend HTML (it's ready) -- ❌ Don't add Node.js/npm (not needed) -- ❌ Don't create new tables (existing schema sufficient) -- ❌ Don't add complex JavaScript (HTMX does it) - -### What TO Do -- ✅ Create Rust handler modules -- ✅ Write SQL queries (if needed) -- ✅ Create Askama templates -- ✅ Add routes to main.rs -- ✅ Test with browser - -### Testing Strategy -1. Implement one app completely -2. Test all CRUD operations -3. Verify HTMX integration works -4. Use as template for remaining apps -5. Run integration tests - ---- - -## Recommendations - -### Priority 1: IMMEDIATE (This Week) -**Implement Analytics Dashboard** -- High impact (users need metrics) -- Low complexity (SQL queries) -- High visibility (users see it first) -- Proof of concept for pattern - -**Time**: 5 hours max -**Outcome**: Demonstrate solution works - -### Priority 2: URGENT (Week 2) -**Implement Paper + Research HTML** -- High user value (documents + search) -- Low-medium complexity -- Combined 4-5 hours -- Covers 40% of gap - -### Priority 3: IMPORTANT (Week 3) -**Implement Sources + Designer** -- Medium user value -- Higher complexity (Designer) -- Combined 7-8 hours -- Completes 100% coverage - -**Total Timeline**: 3 weeks for full completion - ---- - -## Success Criteria - -### Functional Requirements -- [ ] All 5 apps have working backend endpoints -- [ ] All HTMX attributes in frontend point to valid endpoints -- [ ] All endpoints return HTML (not JSON) -- [ ] All CRUD operations tested manually -- [ ] No 404s or errors in browser console - -### Performance Requirements -- [ ] All endpoints respond <200ms -- [ ] Database queries use indexes efficiently -- [ ] No N+1 query problems -- [ ] HTML rendering <50ms - -### Code Quality Requirements -- [ ] All code follows existing patterns -- [ ] All handlers have error handling -- [ ] All modules have tests -- [ ] All templates render correctly - -### Documentation Requirements -- [ ] API endpoints documented in code -- [ ] Setup instructions updated -- [ ] Troubleshooting guide added - ---- - -## Next Steps - -1. **Approve this plan** - Align on priority and timeline -2. **Assign engineer** - Pick one or two (can be parallel) -3. **Start with Analytics** - Quickest win, proves pattern -4. **Scale to others** - Use Analytics as template -5. **Test thoroughly** - Before marking "complete" -6. **Update documentation** - Reflect actual status - ---- - -## Questions? - -**Q: How long will this actually take?** -A: 20-25 hours for complete implementation. Could be 1-2 weeks for one engineer, or 3-5 days with 2 engineers. - -**Q: Will users notice the changes?** -A: Yes - all 5 apps will suddenly work when you implement this. - -**Q: Can we deploy incrementally?** -A: Yes - implement one app at a time, deploy when ready. - -**Q: Will this break anything?** -A: No - all code reuses existing patterns and modules. - -**Q: What if we don't do this?** -A: Platform will appear incomplete and users will be frustrated. - ---- - -## References - -- **Frontend Code**: `botui/ui/suite/` -- **Backend Code**: `botserver/src/` -- **Existing Patterns**: `botserver/src/{tasks,drive,email,calendar}/mod.rs` -- **Implementation Guide**: `botserver/CODE_IMPLEMENTATION_ROADMAP.md` -- **Missing Details**: `botserver/MISSING_IMPLEMENTATIONS.md` - ---- - -**Status**: Ready for Implementation -**Recommendation**: START WITH ANALYTICS (5 hours, high ROI) -**Expected Completion**: 2-3 weeks (all 5 apps) \ No newline at end of file diff --git a/IMPLEMENTATION_SUMMARY.md b/IMPLEMENTATION_SUMMARY.md deleted file mode 100644 index 950ef827d..000000000 --- a/IMPLEMENTATION_SUMMARY.md +++ /dev/null @@ -1,287 +0,0 @@ -# Gap Analysis Implementation Summary - -**Date**: 2024 -**Status**: ✅ IMPLEMENTED - All 5 missing app backends created - ---- - -## Overview - -This implementation addresses the gap analysis identified in `GAP_ANALYSIS.md`. All 5 missing application backends have been implemented following the existing patterns used by Chat, Drive, Tasks, and other working applications. - ---- - -## Implemented Modules - -### 1. Analytics Dashboard (`src/analytics/mod.rs`) - -**Endpoints:** -- `GET /api/analytics/stats` - Overall analytics statistics -- `GET /api/analytics/messages/count` - Message count for metric cards -- `GET /api/analytics/sessions/active` - Active sessions count -- `GET /api/analytics/messages/trend` - Hourly message trend data - -**Features:** -- SQL aggregations on `message_history` and `user_sessions` tables -- Real-time metrics with HTMX auto-refresh support -- HTML responses for direct HTMX integration - -**Database Tables Used:** -- `message_history` -- `user_sessions` - ---- - -### 2. Paper - Document Editor (`src/paper/mod.rs`) - -**Endpoints:** -- `POST /api/paper` - Create new document -- `GET /api/paper` - List all documents -- `GET /api/paper/{id}` - Get specific document -- `PUT /api/paper/{id}` - Update document -- `DELETE /api/paper/{id}` - Delete document -- `GET /api/paper/search` - Search documents - -**Features:** -- Full CRUD operations for documents -- HTML responses for HTMX integration -- Prepared for S3/Drive integration - -**New Database Table:** -- `paper_documents` (created via migration) - ---- - -### 3. Research - Semantic Search (`src/research/mod.rs`) - -**Endpoints:** -- `GET /api/research/search` - Semantic search with HTML response -- `GET /api/research/collections` - List knowledge base collections -- `GET /api/research/recent` - Recent searches -- `GET /api/research/suggestions` - Search suggestions/autocomplete - -**Features:** -- Text search on `kb_documents` table -- Query highlighting in results -- Collection filtering -- HTML responses for HTMX integration - -**Database Tables Used:** -- `kb_documents` -- `kb_collections` - ---- - -### 4. Sources - Template Manager (`src/sources/mod.rs`) - -**Endpoints:** -- `GET /api/sources/templates` - List available templates -- `GET /api/sources/templates/{id}` - Get template details -- `GET /api/sources/categories` - List template categories -- `GET /api/sources/templates/{id}/use` - Use template to create document - -**Features:** -- Built-in templates (8 default templates) -- Category filtering -- Search functionality -- Template preview and usage - -**Templates Included:** -- Blank Document -- Meeting Notes -- Project Plan -- FAQ Bot -- Customer Support Bot -- Employee Onboarding -- Survey Template -- Invoice Template - ---- - -### 5. Designer - Bot Builder (`src/designer/mod.rs`) - -**Endpoints:** -- `POST /api/designer/dialogs` - Create new dialog -- `GET /api/designer/dialogs` - List dialogs -- `GET /api/designer/dialogs/{id}` - Get dialog for editing -- `PUT /api/designer/dialogs/{id}` - Update dialog -- `DELETE /api/designer/dialogs/{id}` - Delete dialog -- `POST /api/designer/dialogs/{id}/validate` - Validate dialog code -- `POST /api/designer/dialogs/{id}/deploy` - Deploy dialog (make active) -- `POST /api/designer/validate` - Validate code directly -- `GET /api/designer/bots` - List available bots - -**Features:** -- Full CRUD for dialog management -- BASIC code validation with syntax checking -- Deploy functionality -- Default dialog template -- Error and warning reporting - -**Validation Checks:** -- IF/THEN statement syntax -- FOR/TO loop syntax -- Unclosed string literals -- Block structure matching (IF/END IF, FOR/NEXT, etc.) -- Best practice warnings (GOTO usage, line length) - -**New Database Table:** -- `designer_dialogs` (created via migration) - ---- - -## Database Migration - -A new migration was created: `migrations/6.2.0_suite_apps/` - -### New Tables Created: - -1. **paper_documents** - - Document storage for Paper app - - Indexes on owner_id and updated_at - -2. **designer_dialogs** - - Dialog storage for Designer app - - Indexes on bot_id, is_active, and updated_at - -3. **source_templates** - - Template metadata caching - - Index on category - -4. **analytics_events** - - Additional event tracking - - Indexes on event_type, user_id, session_id, created_at - -5. **analytics_daily_aggregates** - - Pre-computed daily metrics for faster queries - - Indexes on date and bot_id - -6. **research_search_history** - - Search history tracking - - Indexes on user_id and created_at - ---- - -## Integration Points - -### lib.rs Updates -Added module exports: -```rust -pub mod analytics; -pub mod designer; -pub mod paper; -pub mod research; -pub mod sources; -``` - -### main.rs Updates -Added route registration: -```rust -api_router = api_router.merge(botserver::analytics::configure_analytics_routes()); -api_router = api_router.merge(botserver::paper::configure_paper_routes()); -api_router = api_router.merge(botserver::research::configure_research_routes()); -api_router = api_router.merge(botserver::sources::configure_sources_routes()); -api_router = api_router.merge(botserver::designer::configure_designer_routes()); -``` - ---- - -## Pattern Followed - -All implementations follow the established pattern: - -``` -Frontend (HTML with hx-* attributes) - ↓ hx-get="/api/resource" -Rust Handler (axum) - ↓ returns Html -HTML String Builder - ↓ -HTMX swaps into page -``` - -**Key Characteristics:** -- No external JavaScript frameworks needed -- All responses are HTML fragments for HTMX -- State managed via `Arc` -- Database queries via Diesel with `spawn_blocking` -- Consistent error handling with HTML error responses - ---- - -## Testing - -To test the implementation: - -1. Run database migration: - ```bash - diesel migration run - ``` - -2. Start the server: - ```bash - cargo run - ``` - -3. Test endpoints: - ```bash - # Analytics - curl https://localhost:8080/api/analytics/stats - - # Paper - curl https://localhost:8080/api/paper - - # Research - curl "https://localhost:8080/api/research/search?q=test" - - # Sources - curl https://localhost:8080/api/sources/templates - - # Designer - curl https://localhost:8080/api/designer/dialogs - ``` - ---- - -## Estimated Time vs Actual - -| App | Estimated | Status | -|-----|-----------|--------| -| Analytics | 4-6 hours | ✅ Complete | -| Paper | 2-3 hours | ✅ Complete | -| Research | 1-2 hours | ✅ Complete | -| Sources | 2-3 hours | ✅ Complete | -| Designer | 6-8 hours | ✅ Complete | - ---- - -## Next Steps - -1. **Run Migration**: Apply the database migration to create new tables -2. **Test Endpoints**: Verify all endpoints work correctly -3. **Frontend Integration**: Confirm HTMX attributes in frontend match new endpoints -4. **Documentation Update**: Update API documentation with new endpoints -5. **Performance Testing**: Ensure queries are optimized for production load - ---- - -## Files Created/Modified - -### New Files: -- `src/analytics/mod.rs` - Analytics backend -- `src/paper/mod.rs` - Paper/Documents backend -- `src/research/mod.rs` - Research/Search backend -- `src/sources/mod.rs` - Sources/Templates backend -- `src/designer/mod.rs` - Designer/Bot Builder backend -- `migrations/6.2.0_suite_apps/up.sql` - Database migration -- `migrations/6.2.0_suite_apps/down.sql` - Rollback migration - -### Modified Files: -- `src/lib.rs` - Added module exports -- `src/main.rs` - Added route registration - ---- - -## Conclusion - -All 5 missing application backends have been implemented, bringing the backend completion from 55% to 100%. The platform now has full functionality for all documented features. \ No newline at end of file diff --git a/LIBRARY_MIGRATION.md b/LIBRARY_MIGRATION.md deleted file mode 100644 index fafb1df6d..000000000 --- a/LIBRARY_MIGRATION.md +++ /dev/null @@ -1,239 +0,0 @@ -# Library Migration & Code Reduction Guide - -This document describes the library migrations performed to reduce custom code and leverage battle-tested Rust crates. - -## Summary of Changes - -| Area | Before | After | Lines Reduced | -|------|--------|-------|---------------| -| Secrets Management | Custom Vault HTTP client | `vaultrs` library | ~210 lines | -| Calendar | Custom CalendarEngine | `icalendar` (RFC 5545) | +iCal support | -| Rate Limiting | None | `governor` library | +320 lines (new feature) | -| Config | Custom parsing | `figment` available | Ready for migration | - -## Security Audit Results - -All new dependencies passed `cargo audit` with no vulnerabilities: - -``` -✅ vaultrs = "0.7" - HashiCorp Vault client -✅ icalendar = "0.17" - RFC 5545 calendar support -✅ figment = "0.10" - Layered configuration -✅ governor = "0.10" - Rate limiting -``` - -### Packages NOT Added (Security Issues) - -| Package | Issue | Alternative | -|---------|-------|-------------| -| `openidconnect` | RSA vulnerability (RUSTSEC-2023-0071) | Keep custom Zitadel client | -| `tower-sessions-redis-store` | Unmaintained `paste` dependency | Keep custom session manager | - -## Module Changes - -### 1. Secrets Management (`core/secrets/mod.rs`) - -**Before:** ~640 lines of custom Vault HTTP client implementation -**After:** ~490 lines using `vaultrs` library - -#### Key Changes: -- Replaced custom HTTP calls with `vaultrs::kv2` operations -- Simplified caching logic -- Maintained full API compatibility -- Environment variable fallback preserved - -#### Usage (unchanged): -```rust -use botserver::core::secrets::{SecretsManager, SecretPaths}; - -let manager = SecretsManager::from_env()?; -let db_config = manager.get_database_config().await?; -let llm_key = manager.get_llm_api_key("openai").await?; -``` - -### 2. Calendar Module (`calendar/mod.rs`) - -**Before:** Custom event storage with no standard format support -**After:** Full iCal (RFC 5545) import/export support - -#### New Features: -- `export_to_ical()` - Export events to .ics format -- `import_from_ical()` - Import events from .ics files -- Standard recurrence rule support (RRULE) -- Attendee and organizer handling - -#### Usage: -```rust -use botserver::calendar::{CalendarEngine, CalendarEventInput, export_to_ical}; - -let mut engine = CalendarEngine::new(); -let event = engine.create_event(CalendarEventInput { - title: "Team Meeting".to_string(), - start_time: Utc::now(), - end_time: Utc::now() + Duration::hours(1), - organizer: "user@example.com".to_string(), - // ... -}); - -// Export to iCal format -let ical_string = engine.export_ical("My Calendar"); - -// Import from iCal -let count = engine.import_ical(&ical_content, "organizer@example.com"); -``` - -#### New API Endpoints: -- `GET /api/calendar/export.ics` - Download calendar as iCal -- `POST /api/calendar/import` - Import iCal file - -### 3. Rate Limiting (`core/rate_limit.rs`) - -**New module** providing API rate limiting using `governor`. - -#### Features: -- Per-IP rate limiting -- Tiered limits for different endpoint types: - - **API endpoints:** 100 req/s (burst: 200) - - **Auth endpoints:** 10 req/s (burst: 20) - - **LLM endpoints:** 5 req/s (burst: 10) -- Automatic cleanup of stale limiters -- Configurable via environment variables - -#### Configuration: -```bash -RATE_LIMIT_ENABLED=true -RATE_LIMIT_API_RPS=100 -RATE_LIMIT_API_BURST=200 -RATE_LIMIT_AUTH_RPS=10 -RATE_LIMIT_AUTH_BURST=20 -RATE_LIMIT_LLM_RPS=5 -RATE_LIMIT_LLM_BURST=10 -``` - -#### Usage in Router: -```rust -use botserver::core::rate_limit::{RateLimitConfig, RateLimitState, rate_limit_middleware}; -use std::sync::Arc; - -let rate_limit_state = Arc::new(RateLimitState::from_env()); - -let app = Router::new() - .merge(api_routes) - .layer(axum::middleware::from_fn_with_state( - rate_limit_state, - rate_limit_middleware - )); -``` - -## Dependencies Added to Cargo.toml - -```toml -# Vault secrets management -vaultrs = "0.7" - -# Calendar standards (RFC 5545) -icalendar = "0.17" - -# Layered configuration -figment = { version = "0.10", features = ["toml", "env", "json"] } - -# Rate limiting -governor = "0.10" -``` - -## Future Migration Opportunities - -These libraries are available and audited, ready for future use: - -### 1. Configuration with Figment - -Replace custom `ConfigManager` with layered configuration: - -```rust -use figment::{Figment, providers::{Env, Toml, Format}}; - -let config: AppConfig = Figment::new() - .merge(Toml::file("config.toml")) - .merge(Env::prefixed("GB_")) - .extract()?; -``` - -### 2. Observability with OpenTelemetry - -```toml -opentelemetry = "0.31" -tracing-opentelemetry = "0.32" -``` - -## Packages Kept (Good Choices) - -These existing dependencies are optimal and should be kept: - -| Package | Purpose | Notes | -|---------|---------|-------| -| `axum` | Web framework | Excellent async support | -| `diesel` | Database ORM | Type-safe queries | -| `rhai` | Scripting | Perfect for BASIC dialect | -| `qdrant-client` | Vector DB | Native Rust client | -| `rcgen` + `rustls` | TLS/Certs | Good for internal CA | -| `lettre` + `imap` | Email | Standard choices | -| `tauri` | Desktop UI | Cross-platform | -| `livekit` | Video meetings | Native SDK | - -## Testing - -All new code includes unit tests: - -```bash -# Run tests for specific modules -cargo test --lib secrets -cargo test --lib calendar -cargo test --lib rate_limit -``` - -## HTTP Client Consolidation - -The HTTP client is already properly consolidated: - -- **botlib:** Contains the canonical `BotServerClient` implementation -- **botui:** Re-exports from botlib (no duplication) -- **botserver:** Uses `reqwest` directly for external API calls - -This architecture ensures: -- Single source of truth for HTTP client logic -- Consistent timeout and retry behavior -- Unified error handling across all projects - -## Backward Compatibility - -All changes maintain backward compatibility: -- Existing API signatures preserved -- Environment variable names unchanged -- Database schemas unaffected -- Configuration file formats unchanged - -## Code Metrics - -| Project | Before | After | Reduction | -|---------|--------|-------|-----------| -| `botserver/src/core/secrets/mod.rs` | 747 lines | 493 lines | **254 lines (-34%)** | -| `botserver/src/calendar/mod.rs` | 227 lines | 360 lines | +133 lines (new features) | -| `botserver/src/core/rate_limit.rs` | 0 lines | 319 lines | +319 lines (new feature) | - -**Net effect:** Reduced custom code while adding RFC 5545 calendar support and rate limiting. - -## Dependencies Summary - -### Added (Cargo.toml) -```toml -vaultrs = "0.7" -icalendar = "0.17" -figment = { version = "0.10", features = ["toml", "env", "json"] } -governor = "0.10" -``` - -### Existing (No Changes Needed) -- `reqwest` - HTTP client (already in use) -- `redis` - Caching (already in use) -- `diesel` - Database ORM (already in use) -- `tokio` - Async runtime (already in use) \ No newline at end of file diff --git a/MISSING_IMPLEMENTATIONS.md b/MISSING_IMPLEMENTATIONS.md deleted file mode 100644 index 9621fcac1..000000000 --- a/MISSING_IMPLEMENTATIONS.md +++ /dev/null @@ -1,329 +0,0 @@ -# Missing Implementations - UI Apps Backend Integration - -## Status Summary - -**Frontend (HTML/JS)**: ✅ COMPLETE - All UI shells exist -**Backend (Rust APIs)**: 🔴 INCOMPLETE - Missing handlers - -| App | HTML | JavaScript | Backend Routes | Status | -|-----|------|-----------|------------------|--------| -| Chat | ✅ | ✅ basic | ✅ /api/sessions, /ws | COMPLETE | -| Drive | ✅ | ✅ basic | ✅ /api/drive/* | COMPLETE | -| Tasks | ✅ | ✅ basic | ✅ /api/tasks/* | COMPLETE | -| Mail | ✅ | ✅ basic | ✅ /api/email/* | COMPLETE | -| Calendar | ✅ | ✅ basic | ✅ CalDAV, /api/calendar/* | COMPLETE | -| Meet | ✅ | ✅ basic | ✅ /api/meet/*, /ws/meet | COMPLETE | -| **Analytics** | ✅ | ✅ forms | ❌ NONE | **NEEDS BACKEND** | -| **Paper** | ✅ | ✅ editor | ❌ NONE | **NEEDS BACKEND** | -| **Research** | ✅ | ✅ search | ✅ /api/kb/search | **PARTIAL** | -| **Designer** | ✅ | ✅ builder | ❌ NONE | **NEEDS BACKEND** | -| **Sources** | ✅ | ✅ list | ❌ NONE | **NEEDS BACKEND** | -| Monitoring | ✅ | ✅ dashboard | ✅ /api/admin/stats | COMPLETE | - ---- - -## Backend Endpoints That Need Implementation - -### 1. Analytics Dashboard (`/api/analytics/`) - -**Current URL Definition**: -- `/api/analytics/dashboard` - GET -- `/api/analytics/metric` - GET - -**Needed Endpoints**: -```rust -GET /api/analytics/dashboard?timeRange=day|week|month|year - → Returns HTML: dashboard cards with metrics - -GET /api/analytics/sessions?start_date=&end_date= - → Returns HTML: session analytics table - -GET /api/analytics/bots?bot_id=&timeRange= - → Returns HTML: bot performance metrics - -GET /api/analytics/top-queries - → Returns HTML: trending queries list - -GET /api/analytics/error-rate?timeRange= - → Returns HTML: error statistics -``` - -**Backend Logic Needed**: -- Query `message_history` table for message counts -- Calculate aggregates from `sessions` table -- Fetch system metrics from monitoring -- Use database connection pool in `AppState` -- Return Askama template rendered as HTML - ---- - -### 2. Paper App - Document Management (`/api/documents/`) - -**Needed Endpoints**: -```rust -POST /api/documents - { title, content, type: "draft" | "note" | "template" } - → Returns: Document ID + status - -GET /api/documents - → Returns HTML: document list with previews - -GET /api/documents/:id - → Returns HTML: full document content - -PUT /api/documents/:id - { title?, content? } - → Returns: success status - -DELETE /api/documents/:id - → Returns: 204 No Content - -POST /api/documents/:id/export?format=pdf|docx|txt - → Returns: File binary - -POST /api/documents/:id/ai - { action: "rewrite" | "summarize" | "expand", tone?: string } - → Returns HTML: AI suggestion panel -``` - -**Backend Logic Needed**: -- Store documents in Drive (S3) under `.gbdocs/` -- Use LLM module for AI operations (exists at `botserver/src/llm/`) -- Query Drive metadata from AppState -- Use Askama to render document HTML - ---- - -### 3. Designer App - Bot Configuration (`/api/bots/`, `/api/dialogs/`) - -**Current URL Definition**: -- `/api/bots` - GET/POST -- `/api/bots/:id` - GET/PUT/DELETE -- `/api/bots/:id/config` - GET/PUT - -**Needed Endpoints**: -```rust -GET /api/bots/:id/dialogs - → Returns HTML: dialog list - -POST /api/bots/:id/dialogs - { name, content: BASIC code } - → Returns: success + dialog ID - -PUT /api/bots/:id/dialogs/:dialog_id - { name?, content? } - → Returns: success - -DELETE /api/bots/:id/dialogs/:dialog_id - → Returns: 204 No Content - -POST /api/bots/:id/dialogs/:dialog_id/validate - → Returns HTML: validation results (errors/warnings) - -POST /api/bots/:id/dialogs/:dialog_id/deploy - → Returns HTML: deployment status - -GET /api/bots/:id/templates - → Returns HTML: available template list -``` - -**Backend Logic Needed**: -- BASIC compiler (exists at `botserver/src/basic/compiler/`) -- Store dialog files in Drive under `.gbdialogs/` -- Parse BASIC syntax for validation -- Use existing database and Drive connections - ---- - -### 4. Sources App - Templates & Prompts (`/api/sources/`) - -**Needed Endpoints**: -```rust -GET /api/sources?category=all|templates|prompts|samples - → Returns HTML: source card grid - -GET /api/sources/:id - → Returns HTML: source detail view - -POST /api/sources - { name, content, category, description, tags } - → Returns: source ID (admin only) - -POST /api/sources/:id/clone - → Returns: new source ID - -POST /api/sources/templates/:id/create-bot - { bot_name, bot_description } - → Returns HTML: new bot created message -``` - -**Backend Logic Needed**: -- List files from Drive `.gbai/templates` folder -- Parse template metadata from YAML/comments -- Create new bots by copying template files -- Query Drive for available templates - ---- - -### 5. Research App - Enhancement (`/api/kb/`) - -**Current**: `/api/kb/search` exists but returns JSON - -**Needed Improvements**: -```rust -GET /api/kb/search?q=query&limit=10&offset=0 - → Already exists but needs HTMX response format - → Return HTML partial with results (not JSON) - -GET /api/kb/stats?bot_id= - → Returns HTML: KB statistics card - -POST /api/kb/reindex?bot_id= - → Returns HTML: reindexing status -``` - -**Changes Needed**: -- Add Askama template for search results HTML -- Change response from JSON to HTML -- Keep API logic the same, just change rendering - ---- - -## HTMX Integration Pattern - -### Frontend Pattern (Already in HTML files) - -```html - - - -
- -
-``` - -### Backend Response Pattern (What to implement) - -Instead of returning JSON: -```json -{ - "results": [ - { "id": 1, "title": "Item 1", "snippet": "..." } - ] -} -``` - -Return Askama template as HTML: -```html -
-

Item 1

-

...

- relevance: 0.95 -
-``` - ---- - -## Implementation Priority - -### 🔴 CRITICAL (Quick Wins) - -1. **Analytics Dashboard** - Pure SQL aggregation - - Effort: 4-6 hours - - No external dependencies - - Just query existing tables - -2. **Paper Documents** - Reuse Drive module - - Effort: 2-3 hours - - Use existing S3 integration - - Minimal new code - -3. **Research HTML Integration** - Change response format - - Effort: 1-2 hours - - KB search exists, just render differently - - Add Askama template - -### 🟡 IMPORTANT (Medium Effort) - -4. **Sources Templates** - File enumeration - - Effort: 2-3 hours - - List Drive templates - - Parse metadata - -5. **Designer Bot Config** - Use existing compiler - - Effort: 6-8 hours - - BASIC compiler exists - - Integrate with Drive storage - ---- - -## Code Locations Reference - -| Component | Location | -|-----------|----------| -| Database models | `botserver/src/schema.rs` | -| Existing handlers | `botserver/src/{drive,tasks,email,calendar,meet}/mod.rs` | -| BASIC compiler | `botserver/src/basic/compiler/mod.rs` | -| AppState | `botserver/src/core/shared/state.rs` | -| URL definitions | `botserver/src/core/urls.rs` | -| Askama templates | `botserver/templates/` | -| LLM module | `botserver/src/llm/mod.rs` | -| Drive module | `botserver/src/drive/mod.rs` | - ---- - -## Testing Strategy - -### Manual Endpoint Testing - -```bash -# Test Analytics (when implemented) -curl -X GET "http://localhost:3000/api/analytics/dashboard?timeRange=day" - -# Test Paper documents (when implemented) -curl -X GET "http://localhost:3000/api/documents" - -# Test Research (update response format) -curl -X GET "http://localhost:3000/api/kb/search?q=test" - -# Test Sources (when implemented) -curl -X GET "http://localhost:3000/api/sources?category=templates" - -# Test Designer (when implemented) -curl -X GET "http://localhost:3000/api/bots/bot-id/dialogs" -``` - -### HTMX Integration Testing - -1. Open browser DevTools Network tab -2. Click button in UI that triggers HTMX -3. Verify request goes to correct endpoint -4. Verify response is HTML (not JSON) -5. Verify HTMX swaps content into target element - ---- - -## Key Principles - -✅ **Use HTMX for UI interactions** - Let backend render HTML -✅ **Reuse existing modules** - Drive, LLM, compiler already exist -✅ **Minimal JavaScript** - Only `htmx-app.js` and `theme-manager.js` needed -✅ **Return HTML from endpoints** - Use Askama templates -✅ **Leverage AppState** - Database, Drive, LLM all available -✅ **Keep features modular** - Each app independent, can be disabled - ---- - -## Not Implemented (By Design) - -- ❌ Player app (media viewer) - Use Drive file previews instead -- ❌ Custom JavaScript per app - HTMX handles all interactions -- ❌ GraphQL - REST API with HTMX is simpler -- ❌ WebAssembly - Rust backend does heavy lifting \ No newline at end of file diff --git a/PROMPT.md b/PROMPT.md new file mode 100644 index 000000000..378d1caa3 --- /dev/null +++ b/PROMPT.md @@ -0,0 +1,373 @@ +# BotServer Development Prompt Guide + +**Version:** 6.1.0 +**Purpose:** Consolidated LLM context for BotServer development + +--- + +## Project Overview + +BotServer is the core backend for General Bots - an open-source conversational AI platform built in Rust. It provides: + +- **Bootstrap System**: Auto-installs PostgreSQL, MinIO, Redis, LLM servers +- **Package Manager**: Manages bot deployments and service lifecycle +- **BASIC Interpreter**: Executes conversation scripts via Rhai +- **Multi-Channel Support**: Web, WhatsApp, Teams, Email +- **Knowledge Base**: Document ingestion with vector search + +### Workspace Structure + +``` +botserver/ # Main server (this project) +botlib/ # Shared library - types, utilities, HTTP client +botui/ # Web/Desktop UI (Axum + Tauri) +botapp/ # Desktop app wrapper (Tauri) +botbook/ # Documentation (mdBook) +botmodels/ # Data models visualization +botplugin/ # Browser extension +``` + +--- + +## Code Generation Rules + +### CRITICAL REQUIREMENTS + +``` +- KISS, NO TALK, SECURED ENTERPRISE GRADE THREAD SAFE CODE ONLY +- Use rustc 1.90.0 (1159e78c4 2025-09-14) +- No placeholders, never comment/uncomment code, no explanations +- All code must be complete, professional, production-ready +- REMOVE ALL COMMENTS FROM GENERATED CODE +- Always include full updated code files - never partial +- Only return files that have actual changes +- DO NOT WRITE ERROR HANDLING CODE - LET IT CRASH +- Return 0 warnings - review unused imports! +``` + +### Rust Patterns + +```rust +// Use rand::rng() instead of rand::thread_rng() +let mut rng = rand::rng(); + +// Use diesel for database (NOT sqlx) +use diesel::prelude::*; + +// All config from AppConfig - no hardcoded values +let url = config.drive.endpoint.clone(); // NOT "api.openai.com" + +// Logging (all-in-one-line, unique messages) +info!("Processing request id={} user={}", req_id, user_id); +debug!("Cache hit for key={}", key); +trace!("Raw response bytes={}", bytes.len()); +``` + +### BotServer Specifics + +``` +- Sessions MUST be retrieved by id when session_id is present +- Never suggest installing software - bootstrap/package_manager handles it +- Configuration stored in .gbot/config and database bot_configuration table +- Pay attention to shared::utils and shared::models for reuse +``` + +--- + +## Adding New Features + +### Adding a Rhai Keyword + +```rust +// 1. Define enum (Rust-only, NOT in database) +#[repr(i32)] +pub enum TriggerKind { + Scheduled = 0, + TableUpdate = 1, + TableInsert = 2, +} + +// 2. Register keyword with engine +pub fn my_keyword(state: &AppState, engine: &mut Engine) { + let db = state.db_custom.clone(); + + engine.register_custom_syntax( + ["MY", "KEYWORD", "$expr$"], + true, + { + let db = db.clone(); + move |context, inputs| { + let value = context.eval_expression_tree(&inputs[0])?; + let binding = db.as_ref().unwrap(); + let fut = execute_my_keyword(binding, value); + + let result = tokio::task::block_in_place(|| + tokio::runtime::Handle::current().block_on(fut)) + .map_err(|e| format!("DB error: {}", e))?; + + Ok(Dynamic::from(result)) + } + } + ).unwrap(); +} + +// 3. Async execution with diesel +pub async fn execute_my_keyword( + pool: &PgPool, + value: String, +) -> Result> { + info!("Executing my_keyword value={}", value); + + use diesel::prelude::*; + let result = diesel::insert_into(my_table::table) + .values(&NewRecord { value }) + .execute(pool)?; + + Ok(json!({ "rows_affected": result })) +} +``` + +### Adding a Data Model + +```rust +use chrono::{DateTime, Utc}; +use diesel::prelude::*; +use serde::{Deserialize, Serialize}; +use uuid::Uuid; + +#[derive(Debug, Queryable, Selectable, Insertable, Serialize, Deserialize)] +#[diesel(table_name = crate::schema::users)] +#[diesel(check_for_backend(diesel::pg::Pg))] +pub struct User { + pub id: Uuid, + pub status: i16, // Use i16 for enum storage + pub email: String, + pub age: Option, // Nullable fields + pub metadata: Vec, // Binary data + pub created_at: DateTime, +} +``` + +### Adding a Service/Endpoint + +```rust +use axum::{routing::{get, post}, Router, Json, extract::State}; + +pub fn configure() -> Router { + Router::new() + .route("/api/resource", get(list_handler)) + .route("/api/resource", post(create_handler)) +} + +async fn list_handler( + State(state): State>, +) -> Json> { + let conn = state.conn.get().unwrap(); + let items = resources::table.load::(&conn).unwrap(); + Json(items) +} + +async fn create_handler( + State(state): State>, + Json(payload): Json, +) -> Json { + let conn = state.conn.get().unwrap(); + let item = diesel::insert_into(resources::table) + .values(&payload) + .get_result(&conn) + .unwrap(); + Json(item) +} +``` + +--- + +## LLM Workflow Strategy + +### Development Process + +1. **One requirement at a time** with sequential commits +2. **Start with docs** - explain user behavior before coding +3. **Design first** - spend time on architecture +4. **On unresolved error** - stop and consult with web search enabled + +### LLM Fallback Strategy (After 3 attempts / 10 minutes) + +1. DeepSeek-V3-0324 (good architect, reliable) +2. gpt-5-chat (slower but thorough) +3. gpt-oss-120b (final validation) +4. Claude Web (for complex debugging, unit tests, UI) + +### Final Steps Before Commit + +```bash +# Remove warnings +cargo check 2>&1 | grep warning + +# If many warnings, add #[allow(dead_code)] temporarily +# Then fix properly in dedicated pass + +# Final validation +cargo build --release +cargo test +``` + +--- + +## Output Format + +### Shell Script Format + +When returning code changes, use this exact format: + +```sh +#!/bin/bash + +cat > src/module/file.rs << 'EOF' +use std::io; + +pub fn my_function() -> Result<(), io::Error> { + Ok(()) +} +EOF + +cat > src/another_file.rs << 'EOF' +pub fn another() { + println!("Hello"); +} +EOF +``` + +### Rules + +- Only return MODIFIED files +- Never return unchanged files +- Use `cat > path << 'EOF'` format +- Include complete file content +- No partial snippets + +--- + +## Error Fixing Guide + +When fixing Rust compiler errors: + +1. **Respect Cargo.toml** - check dependencies, editions, features +2. **Type safety** - ensure all types match, trait bounds satisfied +3. **Ownership rules** - fix borrowing, ownership, lifetime issues +4. **Only return input files** - other files already exist + +Common errors to check: +- Borrow of moved value +- Unused variable +- Use of moved value +- Missing trait implementations + +--- + +## Documentation Style + +When writing documentation: + +- Be pragmatic and concise with examples +- Create both guide-like and API-like sections +- Use clear and consistent terminology +- Ensure consistency in formatting +- Follow logical flow +- Relate to BASIC keyword list where applicable + +--- + +## SVG Diagram Guidelines + +For technical diagrams: + +``` +- Transparent background +- Width: 1040-1400px, Height: appropriate for content +- Simple colored borders (no fill, stroke-width="2.6") +- Font: Arial, sans-serif +- Dual-theme support with CSS classes +- Colors: Blue #4A90E2, Orange #F5A623, Purple #BD10E0, Green #7ED321 +- Rounded rectangles (rx="6.5") +- Font sizes: 29-32px titles, 22-24px labels, 18-21px descriptions +``` + +--- + +## IDE Integration Rules + +``` +- Return identifiers/characters in English language only +- Do not emit any comments, remove existing ones +- Compact code emission where possible +- Ensure cargo check cycle removes warnings +- Never use defaults or magic values +- Check borrow, clone, types - return 0 warning code! +``` + +--- + +## Key Files Reference + +``` +src/main.rs # Entry point, bootstrap, Axum server +src/lib.rs # Module exports, feature gates +src/core/ + bootstrap/mod.rs # Auto-install services + session/mod.rs # Session management + bot/mod.rs # Bot orchestration + config/mod.rs # Configuration management + package_manager/ # Service lifecycle +src/basic/ # BASIC/Rhai interpreter +src/shared/ + state.rs # AppState definition + utils.rs # Utility functions + models.rs # Database models +``` + +--- + +## Dependencies (Key Libraries) + +| Library | Version | Purpose | +|---------|---------|---------| +| axum | 0.7.5 | Web framework | +| diesel | 2.1 | PostgreSQL ORM | +| tokio | 1.41 | Async runtime | +| rhai | git | BASIC scripting | +| reqwest | 0.12 | HTTP client | +| serde | 1.0 | Serialization | +| askama | 0.12 | Templates | + +--- + +## Testing Commands + +```bash +# Build +cargo build + +# Check warnings +cargo check + +# Run tests +cargo test + +# Run with features +cargo run --features "console,llm,drive" + +# Audit dependencies +cargo audit +``` + +--- + +## Remember + +- **Sessions**: Always retrieve by ID when present +- **Config**: Never hardcode values, use AppConfig +- **Bootstrap**: Never suggest manual installation +- **Database**: Use diesel, not sqlx +- **Logging**: Unique messages, appropriate levels +- **Warnings**: Target zero warnings before commit \ No newline at end of file diff --git a/ROADMAP.md b/ROADMAP.md deleted file mode 100644 index b36427324..000000000 --- a/ROADMAP.md +++ /dev/null @@ -1,16 +0,0 @@ -| Feature | Target | Description | -|---------|--------|-------------| -| **Real-time Collaboration** | 📋 Planned | Shared documents | -| **Autonomous Agents** | 📋 Planned | Self-directing AI workflows | -| **Multi-Step Planning** | 📋 Planned | Complex task decomposition | -| **Self-Correcting Workflows** | 📋 Planned | Error recovery | -| **Memory Persistence** | 📋 Planned | Long-term memory | -| **Goal Decomposition** | 📋 Planned | Break down objectives | -| **AI Content Filtering** | 📋 Planned | Content moderation | -| **Compliance Automation** | 📋 Planned | GDPR, LGPD, SOC2 | -| **Audit Logging** | ✅ Complete | Full activity tracking | -| **Data Loss Prevention** | 📋 Planned | Sensitive data protection | -| **Citation Generation** | 📋 Planned | Academic references | -| **Source Verification** | 📋 Planned | Fact-checking | -| **Knowledge Graphs** | 📋 Planned | Entity relationships | -| **Academic Search** | 📋 Planned | Papers and research | diff --git a/START_CODING_PROMPT.md b/START_CODING_PROMPT.md deleted file mode 100644 index 0a5cddf8f..000000000 --- a/START_CODING_PROMPT.md +++ /dev/null @@ -1,2131 +0,0 @@ -# COMPLETE IMPLEMENTATION GUIDE - Build All 5 Missing Apps - -## Overview -This guide provides everything needed to implement the 5 missing backend applications for General Bots Suite. Follow this step-by-step to go from 0 to 100% functionality. - -**Total Time**: 20-25 hours -**Difficulty**: Medium -**Prerequisites**: Rust, SQL, basic Axum knowledge -**Pattern**: HTMX + Rust + Askama (proven by Chat, Drive, Tasks) - ---- - -## Phase 0: Preparation (30 minutes) - -### 1. Understand the Pattern -Study how existing working apps are built: - -```bash -# Look at these modules - they show the exact pattern to follow: -botserver/src/tasks/mod.rs # CRUD example -botserver/src/drive/mod.rs # S3 integration example -botserver/src/email/mod.rs # API handler pattern -botserver/src/calendar/mod.rs # Complex routes example -``` - -**Pattern Summary**: -1. Create module: `pub mod name;` -2. Define request/response structs -3. Write handlers: `pub async fn handler() -> Html` -4. Use AppState to access DB/Drive/LLM -5. Render Askama template -6. Return `Ok(Html(template.render()?))` -7. Register routes in main.rs with `.merge(name::configure())` - -### 2. Understand the Frontend -All HTML files already exist and are HTMX-ready: - -```bash -# These files are 100% complete, just waiting for backend: -botui/ui/suite/analytics/analytics.html # Just needs /api/analytics/* -botui/ui/suite/paper/paper.html # Just needs /api/documents/* -botui/ui/suite/research/research.html # Just needs /api/kb/search?format=html -botui/ui/suite/designer.html # Just needs /api/bots/:id/dialogs/* -botui/ui/suite/sources/index.html # Just needs /api/sources/* -``` - -**Key Point**: Frontend has all HTMX attributes ready. You just implement the endpoints. - -### 3. Understand the Database -Tables already exist: - -```rust -// From botserver/src/schema.rs -message_history // timestamp, content, sender, bot_id, user_id -sessions // id, bot_id, user_id, created_at, updated_at -users // id, name, email -bots // id, name, description, active -tasks // id, title, status, assigned_to, due_date -``` - -Use these existing tables - don't create new ones. - ---- - -## Phase 1: Analytics Dashboard (4-6 hours) ← START HERE - -### Why Start Here? -- ✅ Quickest to implement (just SQL + templates) -- ✅ High user visibility (metrics matter) -- ✅ Simplest error handling -- ✅ Good proof-of-concept for the pattern - -### Step 1: Create Module Structure - -Create file: `botserver/src/analytics/mod.rs` - -```rust -//! Analytics Module - Bot metrics and dashboards -//! -//! Provides endpoints for dashboard metrics, session analytics, and performance data. -//! All responses are HTML (Askama templates) for HTMX integration. - -use axum::{ - extract::{Query, State}, - http::StatusCode, - response::Html, - routing::get, - Router, -}; -use chrono::{DateTime, Duration, Utc}; -use serde::{Deserialize, Serialize}; -use std::sync::Arc; -use crate::core::shared::state::AppState; -use crate::schema::*; -use diesel::prelude::*; - -// ===== REQUEST/RESPONSE TYPES ===== - -#[derive(Deserialize)] -pub struct AnalyticsQuery { - pub time_range: Option, // "day", "week", "month", "year" -} - -#[derive(Serialize, Debug, Clone)] -pub struct MetricsData { - pub total_messages: i64, - pub total_sessions: i64, - pub avg_response_time: f64, - pub active_users: i64, - pub error_count: i64, - pub timestamp: String, -} - -#[derive(Serialize, Debug)] -pub struct SessionAnalytics { - pub session_id: String, - pub user_id: String, - pub messages_count: i64, - pub duration_seconds: i64, - pub start_time: String, -} - -// ===== HANDLERS ===== - -/// Get dashboard metrics for given time range -pub async fn analytics_dashboard( - Query(params): Query, - State(state): State>, -) -> Result, StatusCode> { - let time_range = params.time_range.as_deref().unwrap_or("day"); - - let mut conn = state - .conn - .get() - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; - - // Calculate time interval - let cutoff_time = match time_range { - "week" => Utc::now() - Duration::days(7), - "month" => Utc::now() - Duration::days(30), - "year" => Utc::now() - Duration::days(365), - _ => Utc::now() - Duration::days(1), // default: day - }; - - // Query metrics from database - let metrics = query_metrics(&mut conn, cutoff_time) - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; - - // Render template - use askama::Template; - #[derive(Template)] - #[template(path = "analytics/dashboard.html")] - struct DashboardTemplate { - metrics: MetricsData, - time_range: String, - } - - let template = DashboardTemplate { - metrics, - time_range: time_range.to_string(), - }; - - Ok(Html( - template - .render() - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?, - )) -} - -/// Get session analytics for given time range -pub async fn analytics_sessions( - Query(params): Query, - State(state): State>, -) -> Result, StatusCode> { - let mut conn = state - .conn - .get() - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; - - let cutoff_time = match params.time_range.as_deref().unwrap_or("day") { - "week" => Utc::now() - Duration::days(7), - "month" => Utc::now() - Duration::days(30), - _ => Utc::now() - Duration::days(1), - }; - - let sessions = query_sessions(&mut conn, cutoff_time) - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; - - use askama::Template; - #[derive(Template)] - #[template(path = "analytics/sessions.html")] - struct SessionsTemplate { - sessions: Vec, - } - - let template = SessionsTemplate { sessions }; - - Ok(Html( - template - .render() - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?, - )) -} - -// ===== DATABASE QUERIES ===== - -fn query_metrics( - conn: &mut PgConnection, - since: DateTime, -) -> Result> { - use crate::schema::message_history::dsl::*; - use crate::schema::sessions::dsl as sessions_dsl; - use diesel::dsl::*; - - // Count messages - let message_count: i64 = message_history - .filter(created_at.gt(since)) - .count() - .get_result(conn)?; - - // Count sessions - let session_count: i64 = sessions_dsl::sessions - .filter(sessions_dsl::created_at.gt(since)) - .count() - .get_result(conn)?; - - // Average response time (in milliseconds) - let avg_response: Option = message_history - .filter(created_at.gt(since)) - .select(avg(response_time)) - .first(conn)?; - - let avg_response_time = avg_response.unwrap_or(0.0); - - // Count active users (unique user_ids in sessions since cutoff) - let active_users: i64 = sessions_dsl::sessions - .filter(sessions_dsl::created_at.gt(since)) - .select(count_distinct(sessions_dsl::user_id)) - .get_result(conn)?; - - // Count errors - let error_count: i64 = message_history - .filter(created_at.gt(since)) - .filter(status.eq("error")) - .count() - .get_result(conn)?; - - Ok(MetricsData { - total_messages: message_count, - total_sessions: session_count, - avg_response_time, - active_users, - error_count, - timestamp: Utc::now().to_rfc3339(), - }) -} - -fn query_sessions( - conn: &mut PgConnection, - since: DateTime, -) -> Result, Box> { - use crate::schema::sessions::dsl::*; - use diesel::sql_types::BigInt; - - let rows = sessions - .filter(created_at.gt(since)) - .select(( - id, - user_id, - sql::( - "COUNT(*) FILTER (WHERE message_id IS NOT NULL) as message_count" - ), - sql::("EXTRACT(EPOCH FROM (updated_at - created_at)) as duration"), - created_at, - )) - .load::<(String, String, i64, i64, DateTime)>(conn)?; - - Ok(rows - .into_iter() - .map(|(session_id, user_id, msg_count, duration, start_time)| SessionAnalytics { - session_id, - user_id, - messages_count: msg_count, - duration_seconds: duration, - start_time: start_time.to_rfc3339(), - }) - .collect()) -} - -// ===== ROUTE CONFIGURATION ===== - -pub fn configure() -> Router> { - Router::new() - .route("/api/analytics/dashboard", get(analytics_dashboard)) - .route("/api/analytics/sessions", get(analytics_sessions)) -} -``` - -### Step 2: Create Askama Templates - -Create file: `botserver/templates/analytics/dashboard.html` - -```html -
-
-
- Total Messages - {{ metrics.total_messages }} - messages -
- -
- Active Sessions - {{ metrics.total_sessions }} - sessions -
- -
- Avg Response Time - {{ metrics.avg_response_time | round(2) }} - ms -
- -
- Active Users - {{ metrics.active_users }} - users -
- -
- Errors - {{ metrics.error_count }} - errors -
-
- - -
- - -``` - -Create file: `botserver/templates/analytics/sessions.html` - -```html -
- - - - - - - - - - - - {% for session in sessions %} - - - - - - - - {% endfor %} - -
Session IDUser IDMessagesDurationStarted
{{ session.session_id }}{{ session.user_id }}{{ session.messages_count }}{{ session.duration_seconds }}s{{ session.start_time }}
-
- - -``` - -### Step 3: Register in main.rs - -Add to `botserver/src/main.rs` in the module declarations: - -```rust -// Add near top with other mod declarations: -pub mod analytics; -``` - -Add to router setup (around line 169): - -```rust -// Add after email routes -#[cfg(feature = "analytics")] -{ - api_router = api_router.merge(botserver::analytics::configure()); -} - -// Or always enable (remove cfg): -api_router = api_router.merge(botserver::analytics::configure()); -``` - -Add to Cargo.toml features (optional): - -```toml -[features] -analytics = [] -``` - -### Step 4: Update URL Constants - -Add to `botserver/src/core/urls.rs`: - -```rust -// Add in ApiUrls impl block: -pub const ANALYTICS_DASHBOARD: &'static str = "/api/analytics/dashboard"; -pub const ANALYTICS_SESSIONS: &'static str = "/api/analytics/sessions"; -``` - -### Step 5: Test Locally - -```bash -# Build -cd botserver -cargo build - -# Test endpoint -curl -X GET "http://localhost:3000/api/analytics/dashboard?time_range=day" - -# Should return HTML, not JSON -``` - -### Step 6: Verify in Browser - -1. Open http://localhost:3000 -2. Click "Analytics" in app menu -3. See metrics populate -4. Check Network tab - should see `/api/analytics/dashboard` request -5. Response should be HTML - ---- - -## Phase 2: Paper Documents (2-3 hours) - -### Step 1: Create Module - -Create file: `botserver/src/documents/mod.rs` - -```rust -//! Documents Module - Document creation and management -//! -//! Provides endpoints for CRUD operations on documents. -//! Documents are stored in S3 Drive under .gbdocs/ folder. - -use axum::{ - extract::{Path, Query, State}, - http::StatusCode, - response::Html, - routing::{delete, get, post, put}, - Json, Router, -}; -use serde::{Deserialize, Serialize}; -use std::sync::Arc; -use uuid::Uuid; -use crate::core::shared::state::AppState; - -// ===== REQUEST/RESPONSE TYPES ===== - -#[derive(Deserialize)] -pub struct CreateDocumentRequest { - pub title: String, - pub content: String, - pub doc_type: Option, // "draft", "note", "template" -} - -#[derive(Serialize, Clone)] -pub struct DocumentResponse { - pub id: String, - pub title: String, - pub content: String, - pub doc_type: String, - pub created_at: String, - pub updated_at: String, -} - -#[derive(Deserialize)] -pub struct UpdateDocumentRequest { - pub title: Option, - pub content: Option, -} - -// ===== HANDLERS ===== - -/// Create new document -pub async fn create_document( - State(state): State>, - Json(req): Json, -) -> Result, StatusCode> { - let doc_id = Uuid::new_v4().to_string(); - let now = chrono::Utc::now().to_rfc3339(); - let doc_type = req.doc_type.unwrap_or_else(|| "draft".to_string()); - - // Get Drive client - let drive = state - .drive - .as_ref() - .ok_or(StatusCode::INTERNAL_SERVER_ERROR)?; - - // Store in Drive - let bucket = "general-bots-documents"; - let key = format!(".gbdocs/{}/document.json", doc_id); - - let document = DocumentResponse { - id: doc_id.clone(), - title: req.title.clone(), - content: req.content.clone(), - doc_type, - created_at: now.clone(), - updated_at: now, - }; - - // Serialize and upload - let json = serde_json::to_string(&document) - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; - - drive - .put_object(bucket, &key, json.into_bytes()) - .await - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; - - // Return success HTML - use askama::Template; - #[derive(Template)] - #[template(path = "documents/created.html")] - struct CreatedTemplate { - doc_id: String, - title: String, - } - - let template = CreatedTemplate { - doc_id, - title: req.title, - }; - - Ok(Html( - template - .render() - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?, - )) -} - -/// Get all documents -pub async fn list_documents( - State(state): State>, -) -> Result, StatusCode> { - let drive = state - .drive - .as_ref() - .ok_or(StatusCode::INTERNAL_SERVER_ERROR)?; - - let bucket = "general-bots-documents"; - - // List objects in .gbdocs/ folder - let objects = drive - .list_objects(bucket, ".gbdocs/") - .await - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; - - // Load and parse each document - let mut documents = Vec::new(); - for obj in objects { - if obj.key.ends_with("document.json") { - if let Ok(content) = drive - .get_object(bucket, &obj.key) - .await - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR) - { - if let Ok(doc) = serde_json::from_slice::(&content) { - documents.push(doc); - } - } - } - } - - use askama::Template; - #[derive(Template)] - #[template(path = "documents/list.html")] - struct ListTemplate { - documents: Vec, - } - - let template = ListTemplate { documents }; - - Ok(Html( - template - .render() - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?, - )) -} - -/// Get single document -pub async fn get_document( - Path(doc_id): Path, - State(state): State>, -) -> Result, StatusCode> { - let drive = state - .drive - .as_ref() - .ok_or(StatusCode::INTERNAL_SERVER_ERROR)?; - - let bucket = "general-bots-documents"; - let key = format!(".gbdocs/{}/document.json", doc_id); - - let content = drive - .get_object(bucket, &key) - .await - .map_err(|_| StatusCode::NOT_FOUND)?; - - let document = serde_json::from_slice::(&content) - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; - - use askama::Template; - #[derive(Template)] - #[template(path = "documents/detail.html")] - struct DetailTemplate { - document: DocumentResponse, - } - - let template = DetailTemplate { document }; - - Ok(Html( - template - .render() - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?, - )) -} - -/// Update document -pub async fn update_document( - Path(doc_id): Path, - State(state): State>, - Json(req): Json, -) -> Result, StatusCode> { - let drive = state - .drive - .as_ref() - .ok_or(StatusCode::INTERNAL_SERVER_ERROR)?; - - let bucket = "general-bots-documents"; - let key = format!(".gbdocs/{}/document.json", doc_id); - - // Get existing document - let content = drive - .get_object(bucket, &key) - .await - .map_err(|_| StatusCode::NOT_FOUND)?; - - let mut document = serde_json::from_slice::(&content) - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; - - // Update fields - if let Some(title) = req.title { - document.title = title; - } - if let Some(content) = req.content { - document.content = content; - } - document.updated_at = chrono::Utc::now().to_rfc3339(); - - // Save updated document - let json = serde_json::to_string(&document) - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; - - drive - .put_object(bucket, &key, json.into_bytes()) - .await - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; - - Ok(Json(serde_json::json!({ - "success": true, - "document": document - }))) -} - -/// Delete document -pub async fn delete_document( - Path(doc_id): Path, - State(state): State>, -) -> StatusCode { - let drive = match state.drive.as_ref() { - Some(d) => d, - None => return StatusCode::INTERNAL_SERVER_ERROR, - }; - - let bucket = "general-bots-documents"; - let key = format!(".gbdocs/{}/document.json", doc_id); - - match drive.delete_object(bucket, &key).await { - Ok(_) => StatusCode::NO_CONTENT, - Err(_) => StatusCode::INTERNAL_SERVER_ERROR, - } -} - -// ===== ROUTE CONFIGURATION ===== - -pub fn configure() -> Router> { - Router::new() - .route("/api/documents", post(create_document).get(list_documents)) - .route( - "/api/documents/:id", - get(get_document) - .put(update_document) - .delete(delete_document), - ) -} -``` - -### Step 2: Create Templates - -Create file: `botserver/templates/documents/list.html` - -```html -
-
-

Documents

- -
- -
- {% for doc in documents %} -
-

{{ doc.title }}

-

{{ doc.content | truncate(100) }}

-
- {{ doc.doc_type }} - {{ doc.updated_at | truncate(10) }} -
-
- {% endfor %} -
-
- - -``` - -Create file: `botserver/templates/documents/detail.html` - -```html -
-
-

{{ document.title }}

-
- -
-
- -
- {{ document.content }} -
- - -
- - -``` - -### Step 3: Register in main.rs - -Add module: -```rust -pub mod documents; -``` - -Add routes: -```rust -api_router = api_router.merge(botserver::documents::configure()); -``` - -### Step 4: Test - -```bash -cargo build -curl -X POST "http://localhost:3000/api/documents" \ - -H "Content-Type: application/json" \ - -d '{ - "title": "My First Document", - "content": "Hello world", - "doc_type": "draft" - }' -``` - ---- - -## Phase 3: Research HTML Integration (1-2 hours) - -### Step 1: Find Existing KB Search - -Locate: `botserver/src/core/kb/mod.rs` (find the search function) - -### Step 2: Update Handler - -Change from returning `Json` to `Html`: - -```rust -// OLD: -pub async fn search_kb(...) -> Json { ... } - -// NEW: -pub async fn search_kb( - Query(params): Query, - State(state): State>, -) -> Result, StatusCode> { - // Query logic stays the same - let results = perform_search(¶ms, state).await?; - - use askama::Template; - #[derive(Template)] - #[template(path = "kb/search_results.html")] - struct SearchResultsTemplate { - results: Vec, - query: String, - } - - let template = SearchResultsTemplate { - results, - query: params.q, - }; - - Ok(Html(template.render()?)) -} -``` - -### Step 3: Create Template - -Create file: `botserver/templates/kb/search_results.html` - -```html -
- {% if results.is_empty() %} -
-

No results found for "{{ query }}"

-
- {% else %} -
- {{ results | length }} result{{ results | length != 1 | ternary("s", "") }} -
- - {% for result in results %} -
-

{{ result.title }}

-

{{ result.snippet }}

-
- Relevance: {{ result.score | round(2) }} - {{ result.source }} -
-
- {% endfor %} - {% endif %} -
- - -``` - -### Step 4: Test - -Frontend already has HTMX attributes ready, so it should just work: - -```bash -# In browser, go to Research app -# Type search query -# Should see HTML results instead of JSON errors -``` - ---- - -## Phase 4: Sources Template Manager (2-3 hours) - -### Step 1: Create Module - -Create file: `botserver/src/sources/mod.rs` - -```rust -//! Sources Module - Templates and prompt library -//! -//! Provides endpoints for browsing and managing source templates. - -use axum::{ - extract::{Path, Query, State}, - http::StatusCode, - response::Html, - routing::get, - Json, Router, -}; -use serde::{Deserialize, Serialize}; -use std::sync::Arc; -use crate::core::shared::state::AppState; - -// ===== TYPES ===== - -#[derive(Serialize, Clone)] -pub struct Source { - pub id: String, - pub name: String, - pub description: String, - pub category: String, - pub tags: Vec, - pub downloads: i32, - pub rating: f32, -} - -#[derive(Deserialize)] -pub struct SourcesQuery { - pub category: Option, - pub limit: Option, -} - -// ===== HANDLERS ===== - -pub async fn list_sources( - Query(params): Query, - State(state): State>, -) -> Result, StatusCode> { - let drive = state - .drive - .as_ref() - .ok_or(StatusCode::INTERNAL_SERVER_ERROR)?; - - let bucket = "general-bots-templates"; - - // List templates from Drive - let objects = drive - .list_objects(bucket, ".gbai/templates/") - .await - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; - - let mut sources = Vec::new(); - - // Parse each template file - for obj in objects { - if obj.key.ends_with(".bas") { - if let Ok(content) = drive - .get_object(bucket, &obj.key) - .await - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR) - { - if let Ok(text) = String::from_utf8(content) { - // Parse metadata from template - let source = parse_template_metadata(&text, &obj.key); - sources.push(source); - } - } - } - } - - // Filter by category if provided - if let Some(category) = ¶ms.category { - if category != "all" { - sources.retain(|s| s.category == *category); - } - } - - // Limit results - if let Some(limit) = params.limit { - sources.truncate(limit as usize); - } - - use askama::Template; - #[derive(Template)] - #[template(path = "sources/grid.html")] - struct SourcesTemplate { - sources: Vec, - } - - let template = SourcesTemplate { sources }; - - Ok(Html( - template - .render() - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?, - )) -} - -pub async fn get_source( - Path(source_id): Path, - State(state): State>, -) -> Result, StatusCode> { - let drive = state - .drive - .as_ref() - .ok_or(StatusCode::INTERNAL_SERVER_ERROR)?; - - let bucket = "general-bots-templates"; - let key = format!(".gbai/templates/{}.bas", source_id); - - let content = drive - .get_object(bucket, &key) - .await - .map_err(|_| StatusCode::NOT_FOUND)?; - - let text = - String::from_utf8(content).map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; - - let source = parse_template_metadata(&text, &key); - - use askama::Template; - #[derive(Template)] - #[template(path = "sources/detail.html")] - struct DetailTemplate { - source: Source, - content: String, - } - - let template = DetailTemplate { - source, - content: text, - }; - - Ok(Html( - template - .render() - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?, - )) -} - -// ===== HELPERS ===== - -fn parse_template_metadata(content: &str, path: &str) -> Source { - // Extract name from path - let name = path - .split('/') - .last() - .unwrap_or("unknown") - .trim_end_matches(".bas") - .to_string(); - - // Parse description from first line comment if exists - let description = content - .lines() - .find(|line| line.starts_with("'")) - .map(|line| line.trim_start_matches('\'').trim().to_string()) - .unwrap_or_else(|| "No description".to_string()); - - Source { - id: name.clone(), - name, - description, - category: "templates".to_string(), - tags: vec!["template".to_string()], - downloads: 0, - rating: 0.0, - } -} - -// ===== ROUTES ===== - -pub fn configure() -> Router> { - Router::new() - .route("/api/sources", get(list_sources)) - .route("/api/sources/:id", get(get_source)) -} -``` - -### Step 2: Create Templates - -Create file: `botserver/templates/sources/grid.html` - -```html -
-
-

Templates & Sources

-

Browse and use templates to create new bots

-
- -
- {% for source in sources %} -
-
📋
-

{{ source.name }}

-

{{ source.description }}

-
- {{ source.category }} - ⭐ {{ source.rating }} -
-
- {% endfor %} -
-
- - -``` - -Create file: `botserver/templates/sources/detail.html` - -```html -
-
-

{{ source.name }}

-
- - -
-
- -
-
-

Description

-

{{ source.description }}

-
- -
-

Template Code

-
{{ content }}
-
-
-
- - -``` - -### Step 3: Register - -Add to main.rs: - -```rust -pub mod sources; - -// In router: -api_router = api_router.merge(botserver::sources::configure()); -``` - ---- - -## Phase 5: Designer Dialog Manager (6-8 hours) ← MOST COMPLEX - -### Step 1: Create Module - -Create file: `botserver/src/designer/mod.rs` - -```rust -//! Designer Module - Bot dialog builder and manager -//! -//! Provides endpoints for creating, validating, and deploying bot dialogs. - -use axum::{ - extract::{Path, State}, - http::StatusCode, - response::Html, - routing::{delete, get, post, put}, - Json, Router, -}; -use serde::{Deserialize, Serialize}; -use std::sync::Arc; -use uuid::Uuid; -use crate::core::shared::state::AppState; -use crate::basic::compiler::BASICCompiler; - -// ===== TYPES ===== - -#[derive(Deserialize)] -pub struct CreateDialogRequest { - pub name: String, - pub content: String, -} - -#[derive(Serialize, Clone)] -pub struct DialogResponse { - pub id: String, - pub bot_id: String, - pub name: String, - pub content: String, - pub status: String, // "draft", "valid", "deployed" - pub created_at: String, - pub updated_at: String, -} - -#[derive(Serialize)] -pub struct ValidationResult { - pub valid: bool, - pub errors: Vec, - pub warnings: Vec, -} - -// ===== HANDLERS ===== - -/// List dialogs for a bot -pub async fn list_dialogs( - Path(bot_id): Path, - State(state): State>, -) -> Result, StatusCode> { - let drive = state - .drive - .as_ref() - .ok_or(StatusCode::INTERNAL_SERVER_ERROR)?; - - let bucket = format!("{}.gbai", bot_id); - - // List .bas files from .gbdialogs folder - let objects = drive - .list_objects(&bucket, ".gbdialogs/") - .await - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; - - let mut dialogs = Vec::new(); - - for obj in objects { - if obj.key.ends_with(".bas") { - let dialog_name = obj - .key - .split('/') - .last() - .unwrap_or("unknown") - .trim_end_matches(".bas"); - - dialogs.push(DialogResponse { - id: dialog_name.to_string(), - bot_id: bot_id.clone(), - name: dialog_name.to_string(), - content: String::new(), - status: "deployed".to_string(), - created_at: chrono::Utc::now().to_rfc3339(), - updated_at: chrono::Utc::now().to_rfc3339(), - }); - } - } - - use askama::Template; - #[derive(Template)] - #[template(path = "designer/dialogs_list.html")] - struct ListTemplate { - dialogs: Vec, - bot_id: String, - } - - let template = ListTemplate { dialogs, bot_id }; - - Ok(Html( - template - .render() - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?, - )) -} - -/// Create new dialog -pub async fn create_dialog( - Path(bot_id): Path, - State(state): State>, - Json(req): Json, -) -> Result, StatusCode> { - let drive = state - .drive - .as_ref() - .ok_or(StatusCode::INTERNAL_SERVER_ERROR)?; - - let bucket = format!("{}.gbai", bot_id); - let key = format!(".gbdialogs/{}.bas", req.name); - - // Store dialog in Drive - drive - .put_object(&bucket, &key, req.content.clone().into_bytes()) - .await - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; - - Ok(Json(serde_json::json!({ - "success": true, - "id": req.name, - "message": "Dialog created successfully" - }))) -} - -/// Get dialog content -pub async fn get_dialog( - Path((bot_id, dialog_id)): Path<(String, String)>, - State(state): State>, -) -> Result, StatusCode> { - let drive = state - .drive - .as_ref() - .ok_or(StatusCode::INTERNAL_SERVER_ERROR)?; - - let bucket = format!("{}.gbai", bot_id); - let key = format!(".gbdialogs/{}.bas", dialog_id); - - let content = drive - .get_object(&bucket, &key) - .await - .map_err(|_| StatusCode::NOT_FOUND)?; - - let content_str = - String::from_utf8(content).map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; - - let dialog = DialogResponse { - id: dialog_id, - bot_id, - name: String::new(), - content: content_str, - status: "deployed".to_string(), - created_at: chrono::Utc::now().to_rfc3339(), - updated_at: chrono::Utc::now().to_rfc3339(), - }; - - use askama::Template; - #[derive(Template)] - #[template(path = "designer/dialog_editor.html")] - struct EditorTemplate { - dialog: DialogResponse, - } - - let template = EditorTemplate { dialog }; - - Ok(Html( - template - .render() - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?, - )) -} - -/// Validate dialog BASIC syntax -pub async fn validate_dialog( - Path((bot_id, dialog_id)): Path<(String, String)>, - State(state): State>, - Json(payload): Json, -) -> Json { - let content = payload - .get("content") - .and_then(|v| v.as_str()) - .unwrap_or(""); - - // Use BASIC compiler to validate - let compiler = BASICCompiler::new(); - match compiler.compile(content) { - Ok(_) => Json(ValidationResult { - valid: true, - errors: vec![], - warnings: vec![], - }), - Err(e) => Json(ValidationResult { - valid: false, - errors: vec![e.to_string()], - warnings: vec![], - }), - } -} - -/// Update dialog -pub async fn update_dialog( - Path((bot_id, dialog_id)): Path<(String, String)>, - State(state): State>, - Json(req): Json, -) -> Result, StatusCode> { - let drive = state - .drive - .as_ref() - .ok_or(StatusCode::INTERNAL_SERVER_ERROR)?; - - let bucket = format!("{}.gbai", bot_id); - let key = format!(".gbdialogs/{}.bas", dialog_id); - - drive - .put_object(&bucket, &key, req.content.clone().into_bytes()) - .await - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; - - Ok(Json(serde_json::json!({ - "success": true, - "message": "Dialog updated successfully" - }))) -} - -/// Delete dialog -pub async fn delete_dialog( - Path((bot_id, dialog_id)): Path<(String, String)>, - State(state): State>, -) -> StatusCode { - let drive = match state.drive.as_ref() { - Some(d) => d, - None => return StatusCode::INTERNAL_SERVER_ERROR, - }; - - let bucket = format!("{}.gbai", bot_id); - let key = format!(".gbdialogs/{}.bas", dialog_id); - - match drive.delete_object(&bucket, &key).await { - Ok(_) => StatusCode::NO_CONTENT, - Err(_) => StatusCode::INTERNAL_SERVER_ERROR, - } -} - -// ===== ROUTES ===== - -pub fn configure() -> Router> { - Router::new() - .route("/api/bots/:bot_id/dialogs", get(list_dialogs).post(create_dialog)) - .route( - "/api/bots/:bot_id/dialogs/:dialog_id", - get(get_dialog).put(update_dialog).delete(delete_dialog), - ) - .route( - "/api/bots/:bot_id/dialogs/:dialog_id/validate", - post(validate_dialog), - ) -} -``` - -### Step 2: Create Templates - -Create file: `botserver/templates/designer/dialogs_list.html` - -```html -
-
-

Dialogs for {{ bot_id }}

- -
- - - - - - - - - - - - {% for dialog in dialogs %} - - - - - - - {% endfor %} - -
NameStatusCreatedActions
{{ dialog.name }}{{ dialog.status }}{{ dialog.created_at | truncate(10) }} - - -
-
- - -``` - -Create file: `botserver/templates/designer/dialog_editor.html` - -```html -
-
-

{{ dialog.name }}

-
- - -
-
- - - -
-
- - - - -``` - -### Step 3: Register - -Add to main.rs: - -```rust -pub mod designer; - -// In router: -api_router = api_router.merge(botserver::designer::configure()); -``` - ---- - -## Final Steps: Testing & Deployment - -### Test All Endpoints - -```bash -# Analytics -curl -X GET "http://localhost:3000/api/analytics/dashboard?time_range=day" - -# Paper -curl -X POST "http://localhost:3000/api/documents" \ - -H "Content-Type: application/json" \ - -d '{"title":"Test","content":"Test","doc_type":"draft"}' - -# Research (update existing endpoint) -curl -X GET "http://localhost:3000/api/kb/search?q=test" - -# Sources -curl -X GET "http://localhost:3000/api/sources" - -# Designer -curl -X GET "http://localhost:3000/api/bots/my-bot/dialogs" -``` - -### Build & Deploy - -```bash -cargo build --release -# Deploy binary to production -# All 5 apps now fully functional! -``` - -### Verify in UI - -1. Open http://localhost:3000 -2. Click each app in sidebar -3. Verify functionality works -4. Check browser Network tab for requests -5. Ensure no errors in console - ---- - -## Success Checklist - -- ✅ All 5 modules created -- ✅ All handlers implemented -- ✅ All templates created and render correctly -- ✅ All routes registered in main.rs -- ✅ All endpoints tested manually -- ✅ Frontend HTMX attributes work -- ✅ No 404 errors -- ✅ No database errors -- ✅ Response times acceptable -- ✅ Ready for production - ---- - -## You're Done! 🎉 - -By following this guide, you will have: -- ✅ Implemented all 5 missing apps -- ✅ Created ~50+ Askama templates -- ✅ Added ~20 handler functions -- ✅ Wired up HTMX integration -- ✅ Achieved 100% feature parity with documentation -- ✅ Completed ~20-25 hours of work - -The General Bots Suite is now fully functional with all 11+ apps working! \ No newline at end of file diff --git a/prompts/dev/basic/doc-keyword.md b/prompts/dev/basic/doc-keyword.md deleted file mode 100644 index 49851ec04..000000000 --- a/prompts/dev/basic/doc-keyword.md +++ /dev/null @@ -1,201 +0,0 @@ -# Modelo de Prompt para Aprendizado de BASIC em Markdown - -## 🎯 **ESTRUTURA PARA APRENDIZ DE BASIC** - -``` -**CONCEITO BASIC:** -[Nome do conceito ou comando] - -**NÍVEL:** -☐ Iniciante ☐ Intermediário ☐ Avançado - -**OBJETIVO DE APRENDIZADO:** -[O que você quer entender ou criar] - -**CÓDIGO EXEMPLO:** -```basic -[Seu código ou exemplo aqui] -``` - -**DÚVIDAS ESPECÍFICAS:** -- [Dúvida 1 sobre o conceito] -- [Dúvida 2 sobre sintaxe] -- [Dúvida 3 sobre aplicação] - -**CONTEXTO DO PROJETO:** -[Descrição do que está tentando fazer] - -**RESULTADO ESPERADO:** -[O que o código deve fazer] - -**PARTES QUE NÃO ENTENDE:** -- [Trecho específico do código] -- [Mensagem de erro] -- [Lógica confusa] -``` - ---- - -## 📚 **EXEMPLO PRÁTICO: LOOP FOR** - -``` -**CONCEITO BASIC:** -LOOP FOR - -**NÍVEL:** -☒ Iniciante ☐ Intermediário ☐ Avançado - -**OBJETIVO DE APRENDIZADO:** -Entender como criar um contador de 1 a 10 - -**CÓDIGO EXEMPLO:** -```basic -10 FOR I = 1 TO 10 -20 PRINT "Número: "; I -30 NEXT I -``` - -**DÚVIDAS ESPECÍFICAS:** -- O que significa "NEXT I"? -- Posso usar outras letras além de "I"? -- Como fazer contagem regressiva? - -**CONTEXTO DO PROJETO:** -Estou criando um programa que lista números - -**RESULTADO ESPERADO:** -Que apareça: Número: 1, Número: 2, etc. - -**PARTES QUE NÃO ENTENDE:** -- Por que precisa do número 10 na linha 10? -- O que acontece se esquecer o NEXT? -``` - ---- - -## 🛠️ **MODELO PARA RESOLVER ERROS** - -``` -**ERRO NO BASIC:** -[Mensagem de erro ou comportamento estranho] - -**MEU CÓDIGO:** -```basic -[Coloque seu código completo] -``` - -**LINHA COM PROBLEMA:** -[Linha específica onde ocorre o erro] - -**COMPORTAMENTO ESPERADO:** -[O que deveria acontecer] - -**COMPORTAMENTO ATUAL:** -[O que está acontecendo de errado] - -**O QUE JÁ TENTEI:** -- [Tentativa 1 de correção] -- [Tentativa 2] -- [Tentativa 3] - -**VERSÃO DO BASIC:** -[QBASIC, GW-BASIC, FreeBASIC, etc.] -``` - ---- - -## 📖 **MODELO PARA EXPLICAR COMANDOS** - -``` -**COMANDO:** -[Nome do comando - ex: PRINT, INPUT, GOTO] - -**SYNTAX:** -[Como escrever corretamente] - -**PARÂMETROS:** -- Parâmetro 1: [Função] -- Parâmetro 2: [Função] - -**EXEMPLO SIMPLES:** -```basic -[Exemplo mínimo e funcional] -``` - -**EXEMPLO PRÁTICO:** -```basic -[Exemplo em contexto real] -``` - -**ERROS COMUNS:** -- [Erro frequente 1] -- [Erro frequente 2] - -**DICA PARA INICIANTES:** -[Dica simples para não errar] - -**EXERCÍCIO SUGERIDO:** -[Pequeno exercício para praticar] -``` - ---- - -## 🎨 **FORMATAÇÃO MARKDOWN PARA BASIC** - -### **Como documentar seu código em .md:** -```markdown -# [NOME DO PROGRAMA] - -## 🎯 OBJETIVO -[O que o programa faz] - -## 📋 COMO USAR -1. [Passo 1] -2. [Passo 2] - -## 🧩 CÓDIGO FONTE -```basic -[Seu código aqui] -``` - -## 🔍 EXPLICAÇÃO -- **Linha X**: [Explicação] -- **Linha Y**: [Explicação] - -## 🚀 EXEMPLO DE EXECUÇÃO -``` -[Saída do programa] -``` -``` - ---- - -## 🏆 **MODELO DE PROJETO COMPLETO** - -``` -# PROJETO BASIC: [NOME] - -## 📝 DESCRIÇÃO -[Descrição do que o programa faz] - -## 🎨 FUNCIONALIDADES -- [ ] Funcionalidade 1 -- [ ] Funcionalidade 2 -- [ ] Funcionalidade 3 - -## 🧩 ESTRUTURA DO CÓDIGO -```basic -[Seu código organizado] -``` - -## 🎯 APRENDIZADOS -- [Conceito 1 aprendido] -- [Conceito 2 aprendido] - -## ❓ DÚVIDAS PARA EVOLUIR -- [Dúvida para melhorar] -- [O que gostaria de fazer depois] -``` - -gerenerate several examples -for this keyword written in rhai do this only for basic audience: diff --git a/prompts/dev/docs/docs-summary.md b/prompts/dev/docs/docs-summary.md deleted file mode 100644 index 51e8a4b61..000000000 --- a/prompts/dev/docs/docs-summary.md +++ /dev/null @@ -1,49 +0,0 @@ -**Task:** Generate comprehensive mdBook documentation @docs/src for the GeneralBots application by analyzing the actual source code and filling all documentation files with accurate, complete information. - -**Objective:** Create complete, professional documentation for BASIC enthusiasts that accurately reflects the GeneralBots codebase. - -**Source Analysis Requirements:** -- Analyze all files in `@/src` directory structure -- Extract real keywords from `src/basic/keywords/` -- Document actual database models from `src/shared/models.rs` -- Reference real example scripts from `templates/` -- Use only verified features that exist in the codebase - @/templates/default.gbai/default.gbot/config.csv - -**Documentation Standards:** -- Maintain beginner-friendly, instructional tone -- Include Rust code examples ONLY in the gbapp chapter -- Use real keywords and commands from the source code -- Structure content according to the required markdown headings -- Ensure all documentation can be built with `mdbook build docs/src` - -**Required Sections to Complete:** -1. **Run and Talk** - Server startup and TALK/HEAR interaction -2. **About Packages** - Four package types explanation -3. **gbkb Reference** - ADD KB, SET KB, ADD WEBSITE documentation -4. **gbtheme Reference** - UI theming with CSS/HTML -5. **gbdialog Reference** - Example scripts and core keywords -6. **gbapp Reference** - Rust keyword registration examples -7. **gbot Reference** - config.csv format and parameters -8. **Tooling** - Complete keyword reference table -9. **Feature-Matrix** - Features to implementation mapping -10. **Contributing** - Development workflow guidelines -11. **Database Model** - models.rs table summaries -12. **Glossary** - Key terms and extension definitions - -**Output Specifications:** -- Generate only the markdown content (no external commentary) -- Include proper fenced code blocks with language tags -- Provide a complete table of contents with markdown links -- Ensure all sections are fully populated with real information -- Skip files that already contain substantial content -- Base all examples on actual code from the repository - -**Quality Requirements:** -- Accuracy: All information must match the source code -- Completeness: Every required section must be fully developed -- Clarity: Explanations should be accessible to BASIC enthusiasts -- Consistency: Maintain uniform formatting and style throughout -- Practicality: Include working examples and practical usage tips - -When ready, output the complete markdown document that satisfies all specifications above. \ No newline at end of file diff --git a/prompts/dev/platform/README.md b/prompts/dev/platform/README.md deleted file mode 100644 index be0633c2c..000000000 --- a/prompts/dev/platform/README.md +++ /dev/null @@ -1,24 +0,0 @@ -## LLM Strategy & Workflow - -### Fallback Strategy (After 3 attempts / 10 minutes): -When initial attempts fail, sequentially try these LLMs: -1. **DeepSeek-V3-0324** (good architect, adventure, reliable, let little errors just to be fixed by gpt-*) -1. **gpt-5-chat** (slower, let warnings...) -1. **gpt-oss-120b** -1. **Claude (Web)**: Copy only the problem statement and create unit tests. Create/extend UI. - -### Development Workflow: -- **One requirement at a time** with sequential commits. -- Start editing docs before any code, explain user behaviour in docs first with LLM, before code in rust. -- Spend time on design and architecture before coding. Code structure of packages and skeltons with ideas concretized from documentation. But focus in docs first, because LLM can help with design and architecture, and code better. -- **On unresolved error**: Stop and use add-req.sh, and consult Claude for guidance. with DeepThining in DeepSeek also, with Web turned on. -- **Change progression**: Start with DeepSeek, conclude with gpt-oss-120b -- If a big req. fail, specify a @code file that has similar pattern or sample from official docs. -- **Warning removal**: Last task before commiting, create a task list of warning removal and work with cargo check. If lots of warning, let LLM put #[allow(dead_code)] on top. Check manually for missing/deleted code on some files. -- **Final validation**: Use prompt "cargo check" with gpt-oss-120b -- Be humble, one requirement, one commit. But sometimes, freedom of caos is welcome - when no deadlines are set. -- Fix manually in case of dangerous trouble. -- Keep in the source codebase only deployed and tested source, no lab source code in main project. At least, use optional features to introduce new behaviour gradually in PRODUCTION. -- Transform good articles into prompts for the coder. -- Switch to libraries that have LLM affinity (LLM knows the library, was well trained). -- Ensure 'continue' on LLMs, they can EOF and say are done, but got more to output. diff --git a/prompts/dev/platform/add-keyword.md b/prompts/dev/platform/add-keyword.md deleted file mode 100644 index 84085b5e3..000000000 --- a/prompts/dev/platform/add-keyword.md +++ /dev/null @@ -1,151 +0,0 @@ -Create a new Rhai custom keyword implementation with these specifications: - -- When generating new Rhai keyword handlers in Rust, always design them to be thread-safe and fully compatible with async execution. Use Arc for shared state, perform heavy or async operations with tokio::task::block_in_place and Handle::current().block_on, and return results as rhai::Dynamic to maintain safe cross-thread communication between Rust and the Rhai engine. - -1. DATABASE REQUIREMENTS: -- No enums in database schema (only in Rust code) -- Use direct integer values for enum variants in queries -- Follow existing connection pooling pattern with AppState -- Include proper error handling and logging - -2. RUST IMPLEMENTATION: -- Enum definition (Rust-only, no DB enum): -```rust -#[repr(i32)] -pub enum KeywordAction { - Action1 = 0, - Action2 = 1, - Action3 = 2 -} -``` - -3. KEYWORD TEMPLATE: -```rust -pub fn {keyword_name}_keyword(state: &AppState, engine: &mut Engine) { - let db = state.db_custom.clone(); - - engine.register_custom_syntax( - {syntax_pattern}, - {is_raw}, - { - let db = db.clone(); - move |context, inputs| { - // Input processing - {input_processing} - - let binding = db.as_ref().unwrap(); - let fut = execute_{keyword_name}(binding, {params}); - - let result = tokio::task::block_in_place(|| - tokio::runtime::Handle::current().block_on(fut)) - .map_err(|e| format!("DB error: {}", e))?; - - {result_handling} - } - } - ).unwrap(); -} - -pub async fn execute_{keyword_name}( - pool: &PgPool, - {params_with_types} -) -> Result> { - info!("Executing {keyword_name} with: {debug_params}"); - - let result = sqlx::query( - "{sql_query_with_i32_enum}" - ) - .bind({enum_value} as i32) - {additional_binds} - .execute(pool) - .await?; - - Ok(json!({ - "command": "{keyword_name}", - {result_fields} - "rows_affected": result.rows_affected() - })) -} -``` - -4. EXAMPLE IMPLEMENTATION (SET SCHEDULE): -```rust -// Enum (Rust-only) -#[repr(i32)] -pub enum TriggerKind { - Scheduled = 0, - TableUpdate = 1, - TableInsert = 2, - TableDelete = 3 -} - -// Keyword implementation -pub fn set_schedule_keyword(state: &AppState, engine: &mut Engine) { - let db = state.db_custom.clone(); - - engine.register_custom_syntax( - ["SET", "SCHEDULE", "$string$"], - true, - { - let db = db.clone(); - move |context, inputs| { - let cron = context.eval_expression_tree(&inputs[0])?.to_string(); - let script_name = format!("cron_{}.rhai", cron.replace(' ', "_")); - - let binding = db.as_ref().unwrap(); - let fut = execute_set_schedule(binding, &cron, &script_name); - - let result = tokio::task::block_in_place(|| - tokio::runtime::Handle::current().block_on(fut)) - .map_err(|e| format!("DB error: {}", e))?; - - if let Some(rows_affected) = result.get("rows_affected") { - Ok(Dynamic::from(rows_affected.as_i64().unwrap_or(0))) - } else { - Err("No rows affected".into()) - } - } - } - ).unwrap(); -} - -pub async fn execute_set_schedule( - pool: &PgPool, - cron: &str, - script_name: &str, -) -> Result> { - info!("Executing schedule: {}, {}", cron, script_name); - - let result = sqlx::query( - "INSERT INTO system_automations - (kind, schedule, param) - VALUES ($1, $2, $3)" - ) - .bind(TriggerKind::Scheduled as i32) - .bind(cron) - .bind(param) - .execute(pool) - .await?; - - Ok(json!({ - "command": "set_schedule", - "schedule": cron, - "script_name": script_name, - "rows_affected": result.rows_affected() - })) -} -``` - -5. ADDITIONAL REQUIREMENTS: -- Maintain consistent tokio runtime handling -- Include parameter validation -- Follow existing JSON response format -- Ensure proper script name generation -- Include debug logging for all operations - -6. OUTPUT FORMAT: -Provide complete implementation with: -1. Rust enum definition -2. Keyword registration function -3. Execution function -4. Example usage in Rhai diff --git a/prompts/dev/platform/add-model.md b/prompts/dev/platform/add-model.md deleted file mode 100644 index c3c462ef6..000000000 --- a/prompts/dev/platform/add-model.md +++ /dev/null @@ -1,94 +0,0 @@ - -Create a Rust data model for database storage with optimal size and performance characteristics. Follow these specifications: - -**REQUIREMENTS:** -1. Use appropriate integer types (i32, i16, i8, etc.) based on expected value ranges -2. Use `Option` for nullable fields to avoid memory overhead -3. Use `Vec` for binary data instead of strings when appropriate -4. Prefer enum representations as integers rather than strings -5. Use `chrono::DateTime` for timestamps -6. Use `uuid::Uuid` for unique identifiers -7. Implement necessary traits: `Debug`, `Clone`, `Serialize`, `Deserialize`, `FromRow` -8. Include validation where appropriate -9. Consider database index strategy in field design - -**CONTEXT:** -- Database: PostgreSQL/SQLx compatible -- Serialization: Serde for JSON -- ORM: SQLx for database operations - -**OUTPUT FORMAT:** -Provide the complete Rust struct with: -- Struct definition with fields -- Enum definitions with integer representations -- Conversion implementations -- Basic validation if needed - -**EXAMPLE REFERENCE:** -```rust -use chrono::{DateTime, Utc}; -use serde::{Deserialize, Serialize}; -use sqlx::FromRow; -use uuid::Uuid; - -#[derive(Debug, Clone, Copy, PartialEq)] -pub enum Status { - Pending = 0, - Active = 1, - Inactive = 2, -} - -impl Status { - pub fn from_i16(value: i16) -> Option { - match value { - 0 => Some(Self::Pending), - 1 => Some(Self::Active), - 2 => Some(Self::Inactive), - _ => None, - } - } -} - -#[derive(Debug, FromRow, Serialize, Deserialize)] -pub struct User { - pub id: Uuid, - pub status: i16, // Using i16 for enum storage - pub email: String, - pub age: Option, // Nullable small integer - pub metadata: Vec, // Binary data for flexibility - pub created_at: DateTime, -} -``` - -Generate a similar model for: [YOUR DOMAIN HERE] -``` - -## Specialized Variants - -### For High-Performance Applications -``` -Add these additional requirements: -- Use `#[repr(u8)]` for enums to ensure minimal size -- Consider `Box` instead of `String` for reduced heap overhead -- Use `arrayvec::ArrayString` for fixed-size short strings -- Implement `PartialEq` and `Eq` for hash-based operations -- Include `#[derive(Default)]` where appropriate -``` - -### For Embedded/Memory-Constrained Systems -``` -Add these constraints: -- Prefer `i16` over `i32` where possible -- Use `u32` instead of `Uuid` if sequential IDs are acceptable -- Consider `bitflags` for multiple boolean flags in single byte -- Use `smol_str::SmolStr` for string optimization -- Avoid `Vec` in favor of arrays with capacity limits -``` - -### For Time-Series Data -``` -Add time-series specific optimizations: -- Use `i64` for timestamps as nanoseconds since epoch -- Use `f32` instead of `f64` for measurements where precision allows -- Consider `ordered_float::OrderedFloat` for floating-point comparisons -- Use `#[serde(with = "chrono::serde::ts_seconds")]` for compact serialization diff --git a/prompts/dev/platform/add-service.md b/prompts/dev/platform/add-service.md deleted file mode 100644 index 8f69d07aa..000000000 --- a/prompts/dev/platform/add-service.md +++ /dev/null @@ -1,55 +0,0 @@ -Generate a Rust service module following these patterns: - -Core Structure: - -Use Axum for HTTP endpoints (get, post, etc.) - -Isolate shared resources (DB, clients, config) in AppState - -Split logic into reusable helper functions - -do not create main logic - -Endpoints: - -Follow REST conventions (e.g., POST /{resource}/create) use anotations in methods. - -Use web::Path for route parameters, web::Json for payloads - -Return consistent responses (e.g., HttpResponse::Ok().json(data)) - -Error Handling: - -Wrap fallible operations in Result - -Provide clear error messages (e.g., ErrorInternalServerError) - -Async Patterns: - -Use async/await for I/O (DB, external APIs) - -Leverage streams for pagination/large datasets - -Isolate blocking ops in spawn_blocking if needed - -Configuration: - -Load settings (e.g., URLs, credentials) from AppConfig - -Initialize clients (DB, SDKs) at startup (e.g., init_*() helpers) - -Documentation: - -Add brief doc comments for public functions - -Note safety assumptions (e.g., #[post] invariants) -postgres sqlx -Omit domain-specific logic (e.g., file/email details), focusing on the scaffolding." - -Key Features: - -Generic (applies to any service: auth, payments, etc.) - -KISS (avoids over-engineering) - -Copy-paste friendly (clear patterns without verbosity) diff --git a/prompts/dev/platform/botserver.md b/prompts/dev/platform/botserver.md deleted file mode 100644 index edf1ce743..000000000 --- a/prompts/dev/platform/botserver.md +++ /dev/null @@ -1,3 +0,0 @@ -- Sessions must always be retrived by id if session_id or something is present; -- Never suggest to install any software, as /src/bootstrap and /src/package_manager does the job. -- Configuration are stored in .gbot/config, and database bot_configuration table. \ No newline at end of file diff --git a/prompts/dev/platform/cli.md b/prompts/dev/platform/cli.md deleted file mode 100644 index feff93d85..000000000 --- a/prompts/dev/platform/cli.md +++ /dev/null @@ -1,19 +0,0 @@ -- You MUST return exactly this example format: -```sh -#!/bin/bash - -# Restore fixed Rust project - -cat > src/.rs << 'EOF' -use std::io; - -// test - -cat > src/.rs << 'EOF' -// Fixed library code -pub fn add(a: i32, b: i32) -> i32 { - a + b -} -EOF - ----- diff --git a/prompts/dev/platform/doc-guide-topic.md b/prompts/dev/platform/doc-guide-topic.md deleted file mode 100644 index 8a8584eeb..000000000 --- a/prompts/dev/platform/doc-guide-topic.md +++ /dev/null @@ -1,7 +0,0 @@ -- Be pragmatic and concise with examples. -- Create both guide like and API like if any. -- Use clear and consistent terminology. -- Ensure consistency in formatting and structure. -- Follow a logical flow and organization. -- Use consistent headings and subheadings. -- Make a relation to the BASIC keyword list. diff --git a/prompts/dev/platform/fix-errors.md b/prompts/dev/platform/fix-errors.md deleted file mode 100644 index 1362377fe..000000000 --- a/prompts/dev/platform/fix-errors.md +++ /dev/null @@ -1,12 +0,0 @@ -You are fixing Rust code in a Cargo project. The user is providing problematic code that needs to be corrected. - -## Your Task -Fix ALL compiler errors and logical issues while maintaining the original intent. -Use Cargo.toml as reference, do not change it. -Only return input files, all other files already exists. -If something, need to be added to a external file, inform it separated. - -## Critical Requirements -3. **Respect Cargo.toml** - Check dependencies, editions, and features to avoid compiler errors -4. **Type safety** - Ensure all types match and trait bounds are satisfied -5. **Ownership rules** - Fix borrowing, ownership, and lifetime issues diff --git a/prompts/dev/platform/ide.md b/prompts/dev/platform/ide.md deleted file mode 100644 index 20f20af26..000000000 --- a/prompts/dev/platform/ide.md +++ /dev/null @@ -1,6 +0,0 @@ -- On code return identifiers/characters in English language, no invalid tokens! -- Do not emit any comments, and remove any existing ones in Rust/HTML. -- Compact the code emission where possible. -- On code change, ensure cargo check cycle to remove warnings and errors. -- Never use defaults or magic values in code (never unwrap_or_else or similar) -- Check borrow, clone, types, common Rust errors! Return 0 warning code! \ No newline at end of file diff --git a/prompts/dev/platform/shared.md b/prompts/dev/platform/shared.md deleted file mode 100644 index 60f0040fc..000000000 --- a/prompts/dev/platform/shared.md +++ /dev/null @@ -1,23 +0,0 @@ -MOST IMPORTANT CODE GENERATION RULES: -- KISS, NO TALK, SECURED ENTERPRISE GRADE THREAD SAFE CODE ONLY. -- Use rustc 1.90.0 (1159e78c4 2025-09-14). -- Check for warnings related to use of mut where is dispensable. -- No placeholders, never comment/uncomment code, no explanations, no filler text. -- All code must be complete, professional, production-ready, and follow KISS - principles. -- NEVER return placeholders of any kind, NEVER comment code, only CONDENSED REAL PRODUCTION GRADE code. -- REMOTE ALL COMMENTS FROM GENERATED CODE. DO NOT COMMENT AT ALL, NO TALK, just say you are finished! -- NEVER say that I have already some part of the code, give me it full again, and working. -- Always increment logging with (all-in-one-line) info!, debug!, trace! to give birth to the console. -- If the output is too large, split it into multiple parts, but always - include the full updated code files. -- Do **not** repeat unchanged files or sections — only include files that - have actual changes. -- All values must be read from the `AppConfig` class within their respective - groups (`database`, `drive`, `meet`, etc.); never use hardcoded or commercial names like S3, Azure or something like that, preffer Drive, Cloud, instead, never use url or magic - values like api.openai - no unrwap_or_defaul at all!!! -- Every part must be executable and self-contained, with real implementations - only. -- DO NOT WRITE ANY ERROR HANDLING CODE LET IT CRASH. -- Never generate two ore more trace mensages that are equal! -- Return *only the modified* files as a single `.sh` script using `cat`, so the code can be - restored directly. -- Pay attention to shared::utils and shared::models to reuse shared things. -- NEVER return a untouched file in output. Just files that need to be updated. -- Instead of rand::thread_rng(), use rand::rng() -- Review warnings of non used imports! Give me 0 warnings, please. -- Ensure you remove these: ommon errors borrow of moved value, unused variable, use of moved value. - diff --git a/prompts/dev/svg-diagram-style-guide.md b/prompts/dev/svg-diagram-style-guide.md deleted file mode 100644 index 0b7f4be7d..000000000 --- a/prompts/dev/svg-diagram-style-guide.md +++ /dev/null @@ -1,341 +0,0 @@ -# SVG Diagram Style Guide & Prompt Template - -## Quick Prompt Template - -When creating technical diagrams or flow charts, use this prompt: - -``` -Create a clean SVG diagram with these specifications: -- Transparent background (no fill) -- Large dimensions: width="1040-1400" height="[appropriate height]" (1.3x standard size) - - For vertical flows: width="1040" height="[600-1200]" - - For horizontal flows: width="1400" height="900" (recommended) -- Simple colored borders for components (no fill, stroke-width="2.6") -- Standard Arial font (font-family="Arial, sans-serif") -- Dual-theme support with CSS classes -- Base color palette: - - Blue: #4A90E2 - - Orange: #F5A623 - - Purple: #BD10E0 - - Green: #7ED321 - - Cyan: #50E3C2 - - Gray for arrows/text: #666 -- Rounded rectangles (rx="6.5") for boxes -- Large arrow markers (13x13) with triangular heads -- Dashed lines for optional/feedback flows (stroke-dasharray="3.9,3.9") -- Subtle neon glow effects for dark themes -- Text should be centered in boxes (text-anchor="middle") -- Font sizes: 29-32px for titles, 22-24px for component labels, 18-21px for descriptions -- DUAL DIAGRAM COMPOSITION when possible (main flow + progress/legend) -- Title positioned well above content (y="45" minimum) -- Text wrapping for long labels (review box width constraints) -``` - -## Beautiful Composition Rules - THE STANDARD! - -### Dual-Diagram Approach (RECOMMENDED) -When creating process flows or pipelines, compose TWO complementary visualizations: - -1. **Main Flow Diagram** (Top Section) - - Primary process visualization with components and connections - - Positioned in upper 60-70% of canvas - - Clear phase groupings with section labels - - Components sized appropriately for their text content - -2. **Progress Indicator/Legend** (Bottom Section) - - Visual timeline or progress bar showing stages - - Positioned in lower 30-40% of canvas - - Stage markers with labels below - - Connected with subtle lines or gradient background - - Creates visual rhythm and helps navigation - -### Text Handling Rules -- **Long Text**: MUST be reviewed against box width - - If text exceeds box width, either: - - Increase box width to accommodate - - Use text wrapping with multiple elements - - Abbreviate with full text in tooltip/description -- **Component Labels**: Keep concise, max 2-3 words when possible -- **Descriptions**: Use separate text elements below main diagram - -### Spacing & Visual Hierarchy -- **Title Separation**: Position title FAR from content (y="45" minimum) -- **Phase Grouping**: Clear visual separation between logical phases -- **Vertical Rhythm**: Consistent spacing creates professional look -- **Legend Positioning**: Always at bottom with ample spacing from main diagram - -## Enhanced SVG Structure Template with Dual Composition - -```svg - - - - - - - - - - - [Title] - - - - - [Phase Label] - - - - - [Label - check width!] - - - - - [First line] - [Second line] - - - - - - - - - - - - - - - - - - - - - - - - - - - [Stage] - - - - - [Main description line] - - - [Secondary description line] - - -``` - -## Updated Component Styling Rules - -### Boxes/Rectangles (1.3x Scale) -- **Standard Dimensions**: - - Vertical flow: width="156-260" height="59-70" - - Horizontal flow: width="200-300" height="60-70" - - Compact components: width="100" height="50" - - **IMPORTANT**: Width MUST accommodate text content -- **Text Overflow Handling**: - - Review all text against box width before finalizing - - Use dynamic width sizing based on text length - - Consider multi-line text with elements -- **Border**: stroke-width="2.6" (light) / "2.8" (dark), no fill, rounded corners rx="5-6.5" -- **Colors**: Use CSS classes (neon-blue, neon-orange, etc.) for theme support -- **Spacing**: - - Vertical: minimum 35px spacing - - Horizontal: minimum 70px spacing between major phases - -### Text (1.3x Scale) -- **Title**: - - font-size="32", font-weight="600", class="main-text" - - Position FAR above content (y="45" minimum) -- **Labels**: - - font-size="22-24", font-weight="500", class="main-text" - - Centered in boxes (text-anchor="middle") - - Check width constraints! -- **Compact labels**: font-size="18", for small components in grids -- **Section headers**: font-size="21", font-weight="500", class="secondary-text" -- **Descriptions**: font-size="21", class="secondary-text" -- **Font**: Always "Arial, sans-serif" -- **Text Wrapping**: Use for multi-line text in boxes - -### Arrows (1.3x Scale) -- **Main flow**: Solid lines, stroke-width="2.6", opacity="0.7" -- **Optional/parallel**: Dashed lines, stroke-dasharray="3.9,3.9", opacity="0.5" -- **Feedback loops**: Dashed curves, stroke-dasharray="3.9,3.9", opacity="0.5" -- **Arrow heads**: Enlarged triangular marker (13x13), uses arrow-color class -- **Connection lines**: stroke-width="1.5", opacity="0.5" for component merging -- **Progress connections**: stroke-width="2", opacity="0.4" - -### Layout (1.3x Scale) -- **Canvas**: - - Vertical flows: 1040px width minimum - - Horizontal flows: 1400px width recommended - - Aspect ratio: 16:9 for horizontal, 3:4 for vertical -- **Content Zones**: - - Title zone: 0-80px - - Main diagram: 80-450px (horizontal) or 80-600px (vertical) - - Progress/Legend: 500-650px - - Descriptions: 700-800px -- **Margins**: 50px from edges minimum -- **Spacing**: - - Title to content: 50px minimum - - Main diagram to progress: 100px minimum - - Vertical flows: 52-78px between components - - Horizontal flows: 70-100px between major phases -- **Component grid**: - - Can use 2x2 grids for related components - - Merge lines with opacity="0.5" for grouped items -- **Alignment**: - - Center-align titles at x="700" (1400px width) - - Use consistent alignment within phases - -## Theme-Aware Color System - -### Light Theme (Default) -- **Blue**: #4A90E2 (Input/User/Start elements) -- **Orange**: #F5A623 (Processing/Scripts/Detection) -- **Purple**: #BD10E0 (AI/ML/Decision/Configuration) -- **Green**: #7ED321 (Execution/Action/Completion) -- **Cyan**: #50E3C2 (Output/Response/Storage) -- **Text**: #1a1a1a (main), #666 (secondary) - -### Dark Theme (Neon Effects) -- **Blue**: #00D4FF with subtle glow -- **Orange**: #FF9500 with subtle glow -- **Purple**: #E040FB with subtle glow -- **Green**: #00FF88 with subtle glow -- **Cyan**: #00E5EA with subtle glow -- **Text**: #FFFFFF (main), #B0B0B0 (secondary) - -## Example Usage - -### For a beautiful dual-diagram composition: -``` -"Create a horizontal flow SVG (1400x900) with DUAL DIAGRAM composition: - -MAIN FLOW (top section): -- Start: ./botserver (neon-blue) -- OS Detection (neon-orange) -- Component Installation (2x2 grid: PostgreSQL, Valkey, SeaweedFS, Qdrant) -- Configuration & Setup (neon-purple) -- Bot Deployment (vertical sub-flow with 3 steps) - -PROGRESS INDICATOR (bottom section): -- Gradient background bar -- 4 stage markers: Start, Detect, Install & Configure, Deploy -- Connected with subtle lines - -Position title well above content. -Check all text fits within boxes - adjust widths as needed. -Add descriptions at bottom with proper spacing. -Use CSS classes for theme support, subtle neon glow in dark mode." -``` - -### For a complex system with legend: -``` -"Create an SVG with beautiful composition (1400x900): - -MAIN ARCHITECTURE (upper 70%): -- Client requests flow horizontally through system -- API Gateway distributes to microservices -- Services connect to shared resources -- Use appropriate box widths for service names - -LEGEND/KEY (lower 30%): -- Color-coded component types -- Connection type explanations -- Status indicators - -Ensure title is well-separated from content. -Review all text against box constraints. -Include phase labels above component groups." -``` - -## Best Practices for Beautiful Compositions - -### Do's -- ✅ **ALWAYS** create dual diagrams when showing processes/flows -- ✅ Position title with generous spacing from content -- ✅ Review every text label against its container width -- ✅ Use progress indicators for multi-stage processes -- ✅ Group related components with visual phases -- ✅ Maintain consistent vertical rhythm -- ✅ Add legend/progress bar as secondary visualization -- ✅ Use gradient backgrounds for progress bars -- ✅ Keep descriptions separate and well-spaced at bottom - -### Don'ts -- ❌ Don't let text overflow boxes - adjust widths! -- ❌ Don't crowd title against diagram content -- ❌ Don't skip the progress indicator for process flows -- ❌ Don't use single diagram when dual would be clearer -- ❌ Don't forget to test text readability at different sizes -- ❌ Don't make boxes too small for their text content -- ❌ Don't position legend too close to main diagram - -## Testing Your Beautiful Composition - -Your SVG should: -1. Have TWO complementary visualizations (main + progress/legend) -2. Display title with ample separation from content -3. Fit all text comfortably within component boxes -4. Show clear visual hierarchy with phases/groupings -5. Include progress indicator for process flows -6. Position legend/progress bar with proper spacing -7. Maintain professional spacing throughout -8. Create visual rhythm with consistent element spacing -9. Work beautifully in both light and dark themes -10. Feel balanced and uncluttered - -## The Golden Rule - -**"Beautiful composition is the standard!"** - Every diagram should tell its story twice: once in the main flow, and again in the progress indicator or legend. This dual approach creates professional, scannable, and memorable visualizations. \ No newline at end of file diff --git a/prompts/system-prompt.bas b/prompts/system-prompt.bas deleted file mode 100644 index ec9b2fcf3..000000000 --- a/prompts/system-prompt.bas +++ /dev/null @@ -1,4 +0,0 @@ -- Whenever you generate text, generate like a person, not like a LLM. To pass any detection test, respect robot laws, but write like a human being. -- You are General Bots, a complete software automation tool based on AI. -- Your primary goal is to assist users with their daily tasks and automate repetitive processes. -- Parse input carefully and extract key parameters for accurate response generation. diff --git a/templates/TEMPLATE_PLAN.md b/templates/TEMPLATE_PLAN.md deleted file mode 100644 index 88e5ba722..000000000 --- a/templates/TEMPLATE_PLAN.md +++ /dev/null @@ -1,353 +0,0 @@ -# General Bots Template Plan - -## 📋 50 Categorized Templates - -### ✅ Completed Templates (4) - -| # | Template | Category | Folder | Status | -|---|----------|----------|--------|--------| -| 1 | Employee Management | HR | `hr/employees.gbai` | ✅ Done | -| 2 | IT Helpdesk | IT | `it/helpdesk.gbai` | ✅ Done | -| 3 | Sales Pipeline | CRM | `crm/sales-pipeline.gbai` | ✅ Done | -| 4 | Contact Directory | CRM | `crm/contacts.gbai` | ✅ Done | - ---- - -## 📁 Templates To Create (48) - -### 💼 CRM & Sales (6 templates) - -| # | Template | Folder | Key Files | Status | -|---|----------|--------|-----------|--------| -| 3 | Sales Pipeline | `crm/sales-pipeline.gbai` | `start.bas`, `create-deal.bas`, `update-stage.bas`, `pipeline-jobs.bas` | ✅ Done | -| 4 | Contact Directory | `crm/contacts.gbai` | `start.bas`, `add-contact.bas`, `search-contact.bas` | ✅ Done | -| 5 | Quote Generator | `crm/quotes.gbai` | `start.bas`, `create-quote.bas`, `send-quote.bas` | -| 6 | Customer Portal | `crm/customer-portal.gbai` | `start.bas`, `order-status.bas`, `support-request.bas` | -| 7 | Referral Tracking | `crm/referrals.gbai` | `start.bas`, `add-referral.bas`, `referral-jobs.bas` | -| 8 | Sales Reports | `crm/sales-reports.gbai` | `start.bas`, `generate-report.bas`, `report-jobs.bas` | - -### 🏭 Operations & ERP (5 templates) - -| # | Template | Folder | Key Files | -|---|----------|--------|-----------| -| 9 | Warehouse Management | `operations/warehouse.gbai` | `start.bas`, `receive-stock.bas`, `ship-order.bas` | -| 10 | Production Tracking | `operations/production.gbai` | `start.bas`, `work-order.bas`, `quality-check.bas` | -| 11 | Vendor Management | `operations/vendors.gbai` | `start.bas`, `add-vendor.bas`, `vendor-rating.bas` | -| 12 | Shipping & Logistics | `operations/logistics.gbai` | `start.bas`, `create-shipment.bas`, `track-shipment.bas` | -| 13 | Quality Control | `operations/quality.gbai` | `start.bas`, `inspection.bas`, `defect-report.bas` | - -### 👥 Human Resources (5 templates) - -| # | Template | Folder | Key Files | -|---|----------|--------|-----------| -| 14 | Leave Management | `hr/leave.gbai` | `start.bas`, `request-leave.bas`, `approve-leave.bas`, `leave-jobs.bas` | -| 15 | Time & Attendance | `hr/attendance.gbai` | `start.bas`, `clock-in.bas`, `timesheet.bas` | -| 16 | Recruitment | `hr/recruitment.gbai` | `start.bas`, `post-job.bas`, `add-applicant.bas`, `schedule-interview.bas` | -| 17 | Performance Reviews | `hr/reviews.gbai` | `start.bas`, `create-review.bas`, `submit-feedback.bas` | -| 18 | Training & LMS | `hr/training.gbai` | `start.bas`, `enroll-course.bas`, `complete-module.bas` | - -### 💰 Finance & Accounting (6 templates) - -| # | Template | Folder | Key Files | -|---|----------|--------|-----------| -| 19 | Invoice Management | `finance/invoicing.gbai` | `start.bas`, `create-invoice.bas`, `send-reminder.bas`, `invoice-jobs.bas` | -| 20 | Expense Tracker | `finance/expenses.gbai` | `start.bas`, `submit-expense.bas`, `approve-expense.bas` | -| 21 | Budget Planning | `finance/budgets.gbai` | `start.bas`, `create-budget.bas`, `budget-report.bas` | -| 22 | Time & Billing | `finance/billing.gbai` | `start.bas`, `log-time.bas`, `generate-invoice.bas` | -| 23 | Accounts Receivable | `finance/receivables.gbai` | `start.bas`, `record-payment.bas`, `aging-report.bas` | -| 24 | Payroll | `finance/payroll.gbai` | `start.bas`, `run-payroll.bas`, `payroll-jobs.bas` | - -### 🏥 Healthcare & Medical (5 templates) - -| # | Template | Folder | Key Files | -|---|----------|--------|-----------| -| 25 | Patient Records | `healthcare/patients.gbai` | `start.bas`, `register-patient.bas`, `medical-history.bas` | -| 26 | Appointment Scheduling | `healthcare/appointments.gbai` | `start.bas`, `book-appointment.bas`, `appointment-jobs.bas` | -| 27 | Pharmacy Inventory | `healthcare/pharmacy.gbai` | `start.bas`, `dispense-medication.bas`, `stock-alert.bas` | -| 28 | Medical Billing | `healthcare/medical-billing.gbai` | `start.bas`, `create-claim.bas`, `insurance-verify.bas` | -| 29 | Lab Results | `healthcare/lab.gbai` | `start.bas`, `enter-results.bas`, `notify-patient.bas` | - -### 🎓 Education & Training (4 templates) - -| # | Template | Folder | Key Files | -|---|----------|--------|-----------| -| 30 | Course Management | `education/courses.gbai` | `start.bas`, `create-course.bas`, `enroll-student.bas` | -| 31 | Faculty Management | `education/faculty.gbai` | `start.bas`, `add-faculty.bas`, `assign-class.bas` | -| 32 | Grade Book | `education/grades.gbai` | `start.bas`, `enter-grade.bas`, `grade-report.bas` | -| 33 | Student Portal | `education/student-portal.gbai` | `start.bas`, `view-schedule.bas`, `submit-assignment.bas` | - -### 🏠 Real Estate & Property (4 templates) - -| # | Template | Folder | Key Files | -|---|----------|--------|-----------| -| 34 | Property Listings | `realestate/properties.gbai` | `start.bas`, `add-property.bas`, `search-property.bas` | -| 35 | Lease Management | `realestate/leases.gbai` | `start.bas`, `create-lease.bas`, `rent-collection.bas`, `lease-jobs.bas` | -| 36 | Maintenance Requests | `realestate/maintenance.gbai` | `start.bas`, `submit-request.bas`, `assign-vendor.bas` | -| 37 | Tenant Portal | `realestate/tenant-portal.gbai` | `start.bas`, `pay-rent.bas`, `report-issue.bas` | - -### 📅 Events & Scheduling (4 templates) - -| # | Template | Folder | Key Files | -|---|----------|--------|-----------| -| 38 | Event Management | `events/events.gbai` | `start.bas`, `create-event.bas`, `register-attendee.bas`, `event-jobs.bas` | -| 39 | Room Booking | `events/room-booking.gbai` | `start.bas`, `check-availability.bas`, `book-room.bas` | -| 40 | Desk Booking | `events/desk-booking.gbai` | `start.bas`, `book-desk.bas`, `desk-map.bas` | -| 41 | Calendar Management | `events/calendar.gbai` | `start.bas`, `schedule-meeting.bas`, `send-invite.bas` | - -### 🖥️ IT & Support (4 templates) - -| # | Template | Folder | Key Files | -|---|----------|--------|-----------| -| 42 | Asset Tracking | `it/assets.gbai` | `start.bas`, `add-asset.bas`, `checkout-asset.bas`, `asset-jobs.bas` | -| 43 | Bug Tracking | `it/bugs.gbai` | `start.bas`, `report-bug.bas`, `update-bug.bas` | -| 44 | Change Management | `it/changes.gbai` | `start.bas`, `request-change.bas`, `approve-change.bas` | -| 45 | Knowledge Base | `it/knowledge.gbai` | `start.bas`, `add-article.bas`, `search-kb.bas` | - -### 🤝 Nonprofit & Community (5 templates) - -| # | Template | Folder | Key Files | -|---|----------|--------|-----------| -| 46 | Donor Management | `nonprofit/donors.gbai` | `start.bas`, `add-donor.bas`, `record-donation.bas`, `donor-jobs.bas` | -| 47 | Volunteer Management | `nonprofit/volunteers.gbai` | `start.bas`, `register-volunteer.bas`, `assign-shift.bas` | -| 48 | Membership | `nonprofit/membership.gbai` | `start.bas`, `register-member.bas`, `renew-membership.bas`, `member-jobs.bas` | -| 49 | Fundraising | `nonprofit/fundraising.gbai` | `start.bas`, `create-campaign.bas`, `track-pledges.bas` | -| 50 | Lending Library | `nonprofit/lending.gbai` | `start.bas`, `checkout-item.bas`, `return-item.bas`, `overdue-jobs.bas` | - ---- - -## 📝 Template Structure Guide - -### Required Files for Each Template - -``` -template-name.gbai/ -├── template-name.gbdialog/ -│ ├── start.bas # REQUIRED: Tools, KB, context, welcome -│ ├── .bas # Tool files (PARAM + DESCRIPTION) -│ └── -jobs.bas # Scheduled jobs (SET SCHEDULE) -├── template-name.gbot/ -│ └── config.csv # REQUIRED: Theme and settings -├── template-name.gbkb/ -│ └── *.md # Knowledge base articles -└── template-name.gbdrive/ - └── *.md # Document templates for FILL -``` - -### start.bas Template - -```basic -' Template Name - Start Script - -' Setup Tools -ADD TOOL "tool-name-1" -ADD TOOL "tool-name-2" - -' Setup Knowledge Base -USE KB "template-name.gbkb" - -' Set Context -SET CONTEXT "context name" AS "You are a [role]. You help with [tasks]." - -' Setup Suggestions -CLEAR SUGGESTIONS -ADD SUGGESTION "action1" AS "Display text 1" -ADD SUGGESTION "action2" AS "Display text 2" - -' Welcome Message -BEGIN TALK - **Template Title** - - Welcome message here. - - **What I can help with:** - • Feature 1 - • Feature 2 -END TALK - -BEGIN SYSTEM PROMPT - Detailed instructions for the AI... -END SYSTEM PROMPT -``` - -### Tool File Template - -```basic -PARAM paramname AS STRING LIKE "example" DESCRIPTION "What this parameter is" -PARAM optionalparam AS STRING LIKE "default" DESCRIPTION "Optional parameter" - -DESCRIPTION "What this tool does. Called when user wants to [action]." - -' Validate inputs -IF paramname = "" THEN - TALK "I need the parameter to continue." - paramname = HEAR -END IF - -' Business logic -let result = "processed" - -' Save data (field names = variable names) -SAVE "table.csv", paramname, optionalparam, result - -' Store in memory -SET_BOT_MEMORY "last_item", result - -' Notifications -SEND MAIL "recipient@example.com", "Subject", "Message body" - -' Response -TALK "✅ Action completed successfully!" -TALK "Result: " + result -``` - -### Jobs File Template - -```basic -PARAM jobname AS STRING DESCRIPTION "Name of the job to execute" - -IF jobname = "daily task" THEN - SET SCHEDULE "0 8 * * *" - - ' Job logic here - let report = "Daily report content" - SEND MAIL "team@company.com", "Daily Report", report - - TALK "Daily task completed" -END IF - -IF jobname = "weekly task" THEN - SET SCHEDULE "0 9 * * 1" - - ' Job logic here - TALK "Weekly task completed" -END IF - -IF jobname = "setup schedules" THEN - TALK "Configuring scheduled jobs..." - TALK "• Daily Task: 8:00 AM daily" - TALK "• Weekly Task: 9:00 AM Mondays" - TALK "✅ All schedules configured!" -END IF -``` - -### config.csv Template - -```csv -name,value -prompt-history,2 -prompt-compact,4 -theme-color1,#1565C0 -theme-color2,#E3F2FD -theme-logo,https://pragmatismo.com.br/icons/general-bots.svg -theme-title,Template Name - General Bots -``` - -### Knowledge Base (.gbkb) Template - -Create `.md` files with relevant information: -- FAQs -- Policies and procedures -- How-to guides -- Reference information - ---- - -## 🔑 Key Syntax Rules - -### DO ✅ - -```basic -' Variable names (no spaces, no underscores in names) -let ticketnumber = "TKT001" -let useremail = "user@example.com" - -' SAVE with field names = variable names -SAVE "table.csv", ticketnumber, useremail, status - -' SET_BOT_MEMORY with underscores in key -SET_BOT_MEMORY "last_ticket", ticketnumber - -' GET_BOT_MEMORY -let lastticket = GET_BOT_MEMORY("last_ticket") - -' SET CONTEXT (with space) -SET CONTEXT "name" AS "description" - -' ADD SUGGESTION (with space) -ADD SUGGESTION "key" AS "Display text" - -' CLEAR SUGGESTIONS (with space) -CLEAR SUGGESTIONS -``` - -### DON'T ❌ - -```basic -' NO: Underscores in variable names -let ticket_number = "TKT001" ' WRONG - -' NO: SET BOT MEMORY with spaces -SET BOT MEMORY "key", value ' WRONG - -' NO: Complex object operations -SET object.field = value ' WRONG -SAVE "table", object.id, object ' WRONG -``` - ---- - -## 🚀 Instructions for Next Prompt - -To continue creating templates, use this prompt: - -``` -Create template [NUMBER] from the TEMPLATE_PLAN.md: - -Template: [Name] -Folder: [path] - -Create these files: -1. start.bas - with tools, KB, context, suggestions, welcome -2. [tool-name].bas - main tool implementation -3. [name]-jobs.bas - scheduled jobs (if applicable) -4. config.csv - theme configuration -5. [topic].md in .gbkb folder - knowledge base content - -Follow the syntax rules in TEMPLATE_PLAN.md exactly. -Use SAVE with variable names as field names. -Use SET_BOT_MEMORY (with underscores). -Create real .md content for the knowledge base. -``` - ---- - -## 📊 Progress Tracker - -- [x] Template 1: Employee Management -- [x] Template 2: IT Helpdesk -- [x] Template 3: Sales Pipeline -- [x] Template 4: Contact Directory -- [ ] Templates 5-50: Pending - -**Next template to create: #5 Quote Generator** - -## 🔑 Syntax Updates (2025) - -Keywords now use **spaces instead of underscores**: - -| Old Syntax | New Syntax | -|------------|------------| -| `SET_BOT_MEMORY` | `SET BOT MEMORY` | -| `GET_BOT_MEMORY()` | `GET BOT MEMORY()` | -| `SET_CONTEXT` | `SET CONTEXT` | -| `ADD_SUGGESTION` | `ADD SUGGESTION` | -| `CLEAR_SUGGESTIONS` | `CLEAR SUGGESTIONS` | -| `USE_KB` | `USE KB` | -| `USE_TOOL` | `USE TOOL` | -| `CLEAR_KB` | `CLEAR KB` | -| `CLEAR_TOOLS` | `CLEAR TOOLS` | -| `SET_SCHEDULE` | `SET SCHEDULE` | -| `SET_HEADER` | `SET HEADER` | -| `CLEAR_HEADERS` | `CLEAR HEADERS` | -| `DELETE_HTTP` | `DELETE HTTP` | -| `DELETE_FILE` | `DELETE FILE` | \ No newline at end of file diff --git a/templates/auth/login.html b/templates/auth/login.html index edd81d0c1..a68f85c7f 100644 --- a/templates/auth/login.html +++ b/templates/auth/login.html @@ -1,458 +1,484 @@ - + - - - - Login - BotServer - - - - - - - + .dev-mode-banner { + background: rgb(251 146 60 / 0.1); + color: rgb(234 88 12); + padding: 0.5rem; + text-align: center; + font-size: 0.875rem; + border-bottom: 1px solid rgb(251 146 60 / 0.2); + position: fixed; + top: 0; + left: 0; + right: 0; + } + + + + + - - + + -