graphdb-workbench 3.1.0-TR11 → 3.1.0-TR13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{12396.0e82ea391201a21331b7.bundle.js → 12396.a4cb05c47cf17cbfd891.bundle.js} +2 -2
- package/dist/{12396.0e82ea391201a21331b7.bundle.js.map → 12396.a4cb05c47cf17cbfd891.bundle.js.map} +1 -1
- package/dist/{13486.58f89862c40c0f84cb09.bundle.js → 13486.b4c8bf17c522084e59fb.bundle.js} +2 -2
- package/dist/13486.b4c8bf17c522084e59fb.bundle.js.map +1 -0
- package/dist/13813.84b8832e83dec53d66b9.bundle.js +2 -0
- package/dist/13813.84b8832e83dec53d66b9.bundle.js.map +1 -0
- package/dist/{15535.48081afce23c62f128e9.bundle.js → 15535.aa936791f2b5dd74f7ee.bundle.js} +2 -2
- package/dist/{15535.48081afce23c62f128e9.bundle.js.map → 15535.aa936791f2b5dd74f7ee.bundle.js.map} +1 -1
- package/dist/{16162.df8405c22910f90c37ad.bundle.js → 16162.dca58b88b4d145a7fcf7.bundle.js} +2 -2
- package/dist/{16162.df8405c22910f90c37ad.bundle.js.map → 16162.dca58b88b4d145a7fcf7.bundle.js.map} +1 -1
- package/dist/{20287.1da2ac80bac0f2a8672c.bundle.js → 20287.22c94209c4a5b0aa569b.bundle.js} +2 -2
- package/dist/{20287.1da2ac80bac0f2a8672c.bundle.js.map → 20287.22c94209c4a5b0aa569b.bundle.js.map} +1 -1
- package/dist/{21136.4ab3afcde1292d1f06bd.bundle.js → 21136.b0b60f89d0aecc146390.bundle.js} +2 -2
- package/dist/{21136.4ab3afcde1292d1f06bd.bundle.js.map → 21136.b0b60f89d0aecc146390.bundle.js.map} +1 -1
- package/dist/{21142.aaa6ddd23c1aa3fb59f3.bundle.js → 21142.c1026a9490be83c3be64.bundle.js} +2 -2
- package/dist/{21142.aaa6ddd23c1aa3fb59f3.bundle.js.map → 21142.c1026a9490be83c3be64.bundle.js.map} +1 -1
- package/dist/{21170.f3fa40f23586f6ee4efc.bundle.js → 21170.4f1089c6ecb858d32307.bundle.js} +2 -2
- package/dist/{21170.f3fa40f23586f6ee4efc.bundle.js.map → 21170.4f1089c6ecb858d32307.bundle.js.map} +1 -1
- package/dist/{21195.5354c27d13a1f201dd19.bundle.js → 21195.4025ee868703a7826ae6.bundle.js} +2 -2
- package/dist/{21195.5354c27d13a1f201dd19.bundle.js.map → 21195.4025ee868703a7826ae6.bundle.js.map} +1 -1
- package/dist/23283.cc3b7fb640bcd9a0f7d2.bundle.js +2 -0
- package/dist/23283.cc3b7fb640bcd9a0f7d2.bundle.js.map +1 -0
- package/dist/24785.ff0689efffa1540e2904.bundle.js +2 -0
- package/dist/24785.ff0689efffa1540e2904.bundle.js.map +1 -0
- package/dist/25090.a073fc84568f38c40d67.bundle.js +2 -0
- package/dist/25090.a073fc84568f38c40d67.bundle.js.map +1 -0
- package/dist/{25747.d6f1641bf4600fe2570e.bundle.js → 25747.d8d9c4a6472dddad834f.bundle.js} +2 -2
- package/dist/{25747.d6f1641bf4600fe2570e.bundle.js.map → 25747.d8d9c4a6472dddad834f.bundle.js.map} +1 -1
- package/dist/{27580.53ac898e74f0bcc1ea5b.bundle.js → 27580.af47ce7d030e916c7a4e.bundle.js} +2 -2
- package/dist/{27580.53ac898e74f0bcc1ea5b.bundle.js.map → 27580.af47ce7d030e916c7a4e.bundle.js.map} +1 -1
- package/dist/28319.60fe63ffc79f8ba2cb23.bundle.js +2 -0
- package/dist/28319.60fe63ffc79f8ba2cb23.bundle.js.map +1 -0
- package/dist/{31636.be790098c5979344c509.bundle.js → 31636.fbeed6706183663eeee2.bundle.js} +2 -2
- package/dist/{31636.be790098c5979344c509.bundle.js.map → 31636.fbeed6706183663eeee2.bundle.js.map} +1 -1
- package/dist/{32489.a540e39f30922c1c5341.bundle.js → 32489.fafc19e8e0eb964a3ec5.bundle.js} +2 -2
- package/dist/{32489.a540e39f30922c1c5341.bundle.js.map → 32489.fafc19e8e0eb964a3ec5.bundle.js.map} +1 -1
- package/dist/34330.298b3fb714ce7fc0bda1.bundle.js +2 -0
- package/dist/34330.298b3fb714ce7fc0bda1.bundle.js.map +1 -0
- package/dist/{34495.e36ea443ec8352b615e6.bundle.js → 34495.bcc635daf309f60ba23b.bundle.js} +2 -2
- package/dist/{34495.e36ea443ec8352b615e6.bundle.js.map → 34495.bcc635daf309f60ba23b.bundle.js.map} +1 -1
- package/dist/36665.eda6cfdf545f2608a6c7.bundle.js +2 -0
- package/dist/36665.eda6cfdf545f2608a6c7.bundle.js.map +1 -0
- package/dist/36737.9d37e743918e6d45c10b.bundle.js +2 -0
- package/dist/36737.9d37e743918e6d45c10b.bundle.js.map +1 -0
- package/dist/{38360.f109d6e1129e9f58f7e4.bundle.js → 38360.55d84891b7ad65b37108.bundle.js} +2 -2
- package/dist/{38360.f109d6e1129e9f58f7e4.bundle.js.map → 38360.55d84891b7ad65b37108.bundle.js.map} +1 -1
- package/dist/{38644.8ad2f682465c65e84a9e.bundle.js → 38644.62bda02822616b30f0c7.bundle.js} +2 -2
- package/dist/{38644.8ad2f682465c65e84a9e.bundle.js.map → 38644.62bda02822616b30f0c7.bundle.js.map} +1 -1
- package/dist/{38843.a59a07e73a42cfb5e52d.bundle.js → 38843.28a56aadf139c5f83a07.bundle.js} +2 -2
- package/dist/{38843.a59a07e73a42cfb5e52d.bundle.js.map → 38843.28a56aadf139c5f83a07.bundle.js.map} +1 -1
- package/dist/39448.10bcf72a104ce8276328.bundle.js +2 -0
- package/dist/39448.10bcf72a104ce8276328.bundle.js.map +1 -0
- package/dist/{39518.77133465be137d37352f.bundle.js → 39518.24cdd6c870b5b026f43b.bundle.js} +2 -2
- package/dist/{39518.77133465be137d37352f.bundle.js.map → 39518.24cdd6c870b5b026f43b.bundle.js.map} +1 -1
- package/dist/{39539.60c0d00449eb3988203c.bundle.js → 39539.cb091b6ad5074999b72d.bundle.js} +2 -2
- package/dist/{39539.60c0d00449eb3988203c.bundle.js.map → 39539.cb091b6ad5074999b72d.bundle.js.map} +1 -1
- package/dist/{39874.6ca23ead080b52dc1bc6.bundle.js → 39874.ff510b958fcdbda4db58.bundle.js} +2 -2
- package/dist/39874.ff510b958fcdbda4db58.bundle.js.map +1 -0
- package/dist/4125.fd7946ca01aa51acba15.bundle.js +2 -0
- package/dist/4125.fd7946ca01aa51acba15.bundle.js.map +1 -0
- package/dist/{41453.9d5109ca609b8a870e5f.bundle.js → 41453.b696ac82dcadda585f04.bundle.js} +2 -2
- package/dist/{41453.9d5109ca609b8a870e5f.bundle.js.map → 41453.b696ac82dcadda585f04.bundle.js.map} +1 -1
- package/dist/{41621.d1b7d799116c07df17d1.bundle.js → 41621.68c5ebc2104a62e2b41d.bundle.js} +2 -2
- package/dist/41621.68c5ebc2104a62e2b41d.bundle.js.map +1 -0
- package/dist/{42129.42e556d7bd6885bba119.bundle.js → 42129.f9f2bafc4520aad7f942.bundle.js} +2 -2
- package/dist/{42129.42e556d7bd6885bba119.bundle.js.map → 42129.f9f2bafc4520aad7f942.bundle.js.map} +1 -1
- package/dist/42143.1483a9470e09485cc4e4.bundle.js +2 -0
- package/dist/42143.1483a9470e09485cc4e4.bundle.js.map +1 -0
- package/dist/{44444.834176d51f7ef0dab499.bundle.js → 44444.153ba656276a2f1bfdc3.bundle.js} +2 -2
- package/dist/{44444.834176d51f7ef0dab499.bundle.js.map → 44444.153ba656276a2f1bfdc3.bundle.js.map} +1 -1
- package/dist/{45843.49565fdfa9b426eeb208.bundle.js → 45843.2fb1782023f0992f82c1.bundle.js} +2 -2
- package/dist/{45843.49565fdfa9b426eeb208.bundle.js.map → 45843.2fb1782023f0992f82c1.bundle.js.map} +1 -1
- package/dist/51087.2e79fab6ad7c1282ee52.bundle.js +2 -0
- package/dist/51087.2e79fab6ad7c1282ee52.bundle.js.map +1 -0
- package/dist/51490.ca9c851e556c4c7940e5.bundle.js +2 -0
- package/dist/51490.ca9c851e556c4c7940e5.bundle.js.map +1 -0
- package/dist/{55862.bed529171c68ce972610.bundle.js → 55862.88796a9db69e193b8b83.bundle.js} +2 -2
- package/dist/{55862.bed529171c68ce972610.bundle.js.map → 55862.88796a9db69e193b8b83.bundle.js.map} +1 -1
- package/dist/57952.b096d19a802e06030ef0.bundle.js +2 -0
- package/dist/57952.b096d19a802e06030ef0.bundle.js.map +1 -0
- package/dist/{58306.67303bb681080a4df993.bundle.js → 58306.f76e839a5a73f4f4e23a.bundle.js} +2 -2
- package/dist/{58306.67303bb681080a4df993.bundle.js.map → 58306.f76e839a5a73f4f4e23a.bundle.js.map} +1 -1
- package/dist/{59718.f1ae3d1480c7179c57f0.bundle.js → 59718.dfd5982de2b39ccaa2ee.bundle.js} +2 -2
- package/dist/59718.dfd5982de2b39ccaa2ee.bundle.js.map +1 -0
- package/dist/67232.5a23ef1e641a2ca030c6.bundle.js +2 -0
- package/dist/67232.5a23ef1e641a2ca030c6.bundle.js.map +1 -0
- package/dist/{67888.7c67b21eb93e77d4bb70.bundle.js → 67888.1537da0fa115fd7a2f06.bundle.js} +2 -2
- package/dist/{67888.7c67b21eb93e77d4bb70.bundle.js.map → 67888.1537da0fa115fd7a2f06.bundle.js.map} +1 -1
- package/dist/68685.3ec66ceae3e494eba19b.bundle.js +2 -0
- package/dist/68685.3ec66ceae3e494eba19b.bundle.js.map +1 -0
- package/dist/{69112.817cf7b4d2911108c736.bundle.js → 69112.82e4d57df53e40b54050.bundle.js} +2 -2
- package/dist/69112.82e4d57df53e40b54050.bundle.js.map +1 -0
- package/dist/{70938.aee60e09777981a03d4c.bundle.js → 70938.fd6dd4e05b512128a074.bundle.js} +2 -2
- package/dist/{70938.aee60e09777981a03d4c.bundle.js.map → 70938.fd6dd4e05b512128a074.bundle.js.map} +1 -1
- package/dist/{72379.db460365f0917f4f179b.bundle.js → 72379.207930bac55b212354ae.bundle.js} +2 -2
- package/dist/{72379.db460365f0917f4f179b.bundle.js.map → 72379.207930bac55b212354ae.bundle.js.map} +1 -1
- package/dist/{73667.551fe5a23573c3b0af21.bundle.js → 73667.f42971a7477d6744c54c.bundle.js} +2 -2
- package/dist/{73667.551fe5a23573c3b0af21.bundle.js.map → 73667.f42971a7477d6744c54c.bundle.js.map} +1 -1
- package/dist/{73793.c064cab7716d96ea9713.bundle.js → 73793.adf7b10d53a8ee7fa07c.bundle.js} +2 -2
- package/dist/{73793.c064cab7716d96ea9713.bundle.js.map → 73793.adf7b10d53a8ee7fa07c.bundle.js.map} +1 -1
- package/dist/{73964.adb0a07a8c4dad17f592.bundle.js → 73964.fd1ad5e7aa228ad4cbbb.bundle.js} +2 -2
- package/dist/73964.fd1ad5e7aa228ad4cbbb.bundle.js.map +1 -0
- package/dist/74106.f94ca66e9fc021789d6a.bundle.js +2 -0
- package/dist/74106.f94ca66e9fc021789d6a.bundle.js.map +1 -0
- package/dist/{75282.5e1cc49318a8ae5f34cf.bundle.js → 75282.f097da30576bae97c906.bundle.js} +2 -2
- package/dist/{75282.5e1cc49318a8ae5f34cf.bundle.js.map → 75282.f097da30576bae97c906.bundle.js.map} +1 -1
- package/dist/{75849.33196fcbd48643974506.bundle.js → 75849.9c78b9889eccbaee7ae0.bundle.js} +2 -2
- package/dist/{75849.33196fcbd48643974506.bundle.js.map → 75849.9c78b9889eccbaee7ae0.bundle.js.map} +1 -1
- package/dist/{78250.9ea78ce55f322719b1d8.bundle.js → 78250.9f4b0c688bdb06967ed6.bundle.js} +2 -2
- package/dist/{78250.9ea78ce55f322719b1d8.bundle.js.map → 78250.9f4b0c688bdb06967ed6.bundle.js.map} +1 -1
- package/dist/79329.69815208f7a0b1678dc2.bundle.js +2 -0
- package/dist/79329.69815208f7a0b1678dc2.bundle.js.map +1 -0
- package/dist/{82926.93d02072a678a29fbd64.bundle.js → 82926.ce06c4bb3d76b9fe5fa9.bundle.js} +2 -2
- package/dist/{82926.93d02072a678a29fbd64.bundle.js.map → 82926.ce06c4bb3d76b9fe5fa9.bundle.js.map} +1 -1
- package/dist/86142.3f4acbd124c99af11e48.bundle.js +2 -0
- package/dist/86142.3f4acbd124c99af11e48.bundle.js.map +1 -0
- package/dist/86639.5584db5b403656b75ad4.bundle.js +2 -0
- package/dist/86639.5584db5b403656b75ad4.bundle.js.map +1 -0
- package/dist/89695.9a36bd7b51d76634b902.bundle.js +2 -0
- package/dist/89695.9a36bd7b51d76634b902.bundle.js.map +1 -0
- package/dist/{9062.c781c7dfbb1a5f907a71.bundle.js → 9062.91ba683ec5a6cb53c23f.bundle.js} +2 -2
- package/dist/{9062.c781c7dfbb1a5f907a71.bundle.js.map → 9062.91ba683ec5a6cb53c23f.bundle.js.map} +1 -1
- package/dist/94519.1b7b699d10f1278380c3.bundle.js +2 -0
- package/dist/94519.1b7b699d10f1278380c3.bundle.js.map +1 -0
- package/dist/95953.4ea6a7c68a22779ba299.bundle.js +2 -0
- package/dist/95953.4ea6a7c68a22779ba299.bundle.js.map +1 -0
- package/dist/96089.7e28823f34c450de1f7e.bundle.js +2 -0
- package/dist/96089.7e28823f34c450de1f7e.bundle.js.map +1 -0
- package/dist/98860.5ade579c8f05a0df416b.bundle.js +2 -0
- package/dist/98860.5ade579c8f05a0df416b.bundle.js.map +1 -0
- package/dist/{99448.d257ae9548057a204517.bundle.js → 99448.b2524aa8fdf2f3aee82a.bundle.js} +2 -2
- package/dist/{99448.d257ae9548057a204517.bundle.js.map → 99448.b2524aa8fdf2f3aee82a.bundle.js.map} +1 -1
- package/dist/api/ontotext-workbench-api.js +1 -1
- package/dist/api/ontotext-workbench-api.js.map +1 -1
- package/dist/css/ttyg/agent-settings-modal.css +1 -1
- package/dist/i18n/locale-en.json +9 -0
- package/dist/i18n/locale-fr.json +9 -0
- package/dist/index.html +8 -8
- package/dist/js/angular/clustermanagement/templates/cluster-nodes-configuration.html +1 -1
- package/dist/js/angular/core/directives/autocomplete/templates/autocomplete.html +1 -1
- package/dist/js/angular/core/directives/dynamic-form/templates/dynamic-form.html +1 -1
- package/dist/js/angular/core/directives/operations-statuses-monitor/templates/operations-statuses-monitor.html +1 -1
- package/dist/js/angular/core/directives/rdfresourcesearch/templates/rdfResourceSearchTemplate.html +1 -1
- package/dist/js/angular/core/directives/shuttle-multiselect/templates/shuttle-multiselect.html +1 -1
- package/dist/js/angular/core/directives/yasgui-component/templates/yasgui-component.html +1 -1
- package/dist/js/angular/core/templates/cookie-policy/cookie-consent.html +1 -1
- package/dist/js/angular/core/templates/cookie-policy/cookie-policy.html +1 -1
- package/dist/js/angular/core/templates/editable-content/editable-content.html +1 -1
- package/dist/js/angular/core/templates/markdown-content/markdown-content.html +1 -1
- package/dist/js/angular/core/templates/search-resource-input.html +1 -1
- package/dist/js/angular/graphql/templates/create-graphql-endpoint.html +2 -2
- package/dist/js/angular/graphql/templates/graphql-endpoint-management.html +1 -1
- package/dist/js/angular/graphql/templates/graphql-playground.html +1 -1
- package/dist/js/angular/graphql/templates/modal/endpoint-configuration-modal.html +1 -1
- package/dist/js/angular/graphql/templates/modal/endpoint-generation-failure-result-modal.html +1 -1
- package/dist/js/angular/graphql/templates/modal/import-endpoint-definition-modal.html +1 -1
- package/dist/js/angular/security/templates/user.html +2 -2
- package/dist/js/angular/ttyg/templates/agent-list.html +1 -1
- package/dist/js/angular/ttyg/templates/agent-select-menu.html +1 -1
- package/dist/js/angular/ttyg/templates/chat-item-detail.html +1 -1
- package/dist/js/angular/ttyg/templates/chat-list.html +1 -1
- package/dist/js/angular/ttyg/templates/chat-panel.html +1 -1
- package/dist/js/angular/ttyg/templates/modal/agent-instructions-explain-modal.html +1 -1
- package/dist/js/angular/ttyg/templates/modal/agent-settings-modal.html +34 -5
- package/dist/js/angular/ttyg/templates/modal/external-integration-configuration-modal.html +1 -1
- package/dist/js/angular/ttyg/templates/no-agents-view.html +1 -1
- package/dist/js/angular/ttyg/templates/ttyg.html +1 -1
- package/dist/{legacyWorkbench.f804eda735b6f1961ceb.js → legacyWorkbench.c5245455051fd0bab730.js} +3 -3
- package/dist/{legacyWorkbench.f804eda735b6f1961ceb.js.map → legacyWorkbench.c5245455051fd0bab730.js.map} +1 -1
- package/dist/{main.5a06ce3271fcd9cb93e7.js → main.fa0b99f721588e894d1d.js} +3 -3
- package/dist/{main.5a06ce3271fcd9cb93e7.js.map → main.fa0b99f721588e894d1d.js.map} +1 -1
- package/dist/pages/aclmanagement.html +2 -2
- package/dist/pages/autocomplete.html +1 -1
- package/dist/pages/choose-repository-type.html +1 -1
- package/dist/pages/cluster-management/clusterInfo.html +3 -3
- package/dist/pages/create-index.html +1 -1
- package/dist/pages/dependencies.html +1 -1
- package/dist/pages/domainRangeInfo.html +2 -2
- package/dist/pages/edit.html +1 -1
- package/dist/pages/explore.html +1 -1
- package/dist/pages/export.html +1 -1
- package/dist/pages/find.html +1 -1
- package/dist/pages/graph-config/saveGraphConfig.html +8 -8
- package/dist/pages/graphs-visualizations.html +7 -7
- package/dist/pages/guides.html +1 -1
- package/dist/pages/import.html +2 -2
- package/dist/pages/jdbc-create.html +1 -1
- package/dist/pages/login.html +1 -1
- package/dist/pages/monitor/backup-and-restore.html +1 -1
- package/dist/pages/monitor/queries.html +1 -1
- package/dist/pages/monitor/resources.html +1 -1
- package/dist/pages/namespaces.html +2 -2
- package/dist/pages/plugins.html +1 -1
- package/dist/pages/rdfClassHierarchyInfo.html +7 -7
- package/dist/pages/rdfrank.html +2 -2
- package/dist/pages/repositories.html +1 -1
- package/dist/pages/repository.html +1 -1
- package/dist/pages/similarity-indexes.html +1 -1
- package/dist/pages/sparql-editor.html +1 -1
- package/dist/pages/sparql-template-create.html +1 -1
- package/dist/pages/ux-test1.html +2 -2
- package/dist/pages/webapi.html +2 -2
- package/dist/plugins.js +1 -1
- package/dist/res/swagger5/index.html +11 -11
- package/dist/shared-components/cjs/onto-layout.cjs.entry.js +1 -1
- package/dist/shared-components/cjs/onto-layout.cjs.entry.js.map +1 -1
- package/dist/shared-components/cjs/onto-layout.entry.cjs.js.map +1 -1
- package/dist/shared-components/collection/components/onto-layout/onto-layout.js +1 -1
- package/dist/shared-components/collection/components/onto-layout/onto-layout.js.map +1 -1
- package/dist/shared-components/esm/onto-layout.entry.js +1 -1
- package/dist/shared-components/esm/onto-layout.entry.js.map +1 -1
- package/dist/shared-components/shared-components/onto-layout.entry.esm.js.map +1 -1
- package/dist/shared-components/shared-components/p-504c7e8e.entry.js +1 -0
- package/dist/shared-components/shared-components/p-504c7e8e.entry.js.map +1 -0
- package/dist/shared-components/shared-components/shared-components.esm.js +1 -1
- package/package.json +1 -1
- package/dist/13486.58f89862c40c0f84cb09.bundle.js.map +0 -1
- package/dist/13813.a49f3fcf17ecd10c738e.bundle.js +0 -2
- package/dist/13813.a49f3fcf17ecd10c738e.bundle.js.map +0 -1
- package/dist/23283.a69ab10a85671d5323b4.bundle.js +0 -2
- package/dist/23283.a69ab10a85671d5323b4.bundle.js.map +0 -1
- package/dist/24785.07db24a70db7d20d268a.bundle.js +0 -2
- package/dist/24785.07db24a70db7d20d268a.bundle.js.map +0 -1
- package/dist/25090.8336e69433235ea3dfc6.bundle.js +0 -2
- package/dist/25090.8336e69433235ea3dfc6.bundle.js.map +0 -1
- package/dist/28319.54765ea398eaa88b7b54.bundle.js +0 -2
- package/dist/28319.54765ea398eaa88b7b54.bundle.js.map +0 -1
- package/dist/34330.a2a4211b14d118bd4c03.bundle.js +0 -2
- package/dist/34330.a2a4211b14d118bd4c03.bundle.js.map +0 -1
- package/dist/36665.8a0821c1742e6bd10e66.bundle.js +0 -2
- package/dist/36665.8a0821c1742e6bd10e66.bundle.js.map +0 -1
- package/dist/36737.0f3e0ff6942f79d49804.bundle.js +0 -2
- package/dist/36737.0f3e0ff6942f79d49804.bundle.js.map +0 -1
- package/dist/39448.a6ec42f0d72642fe9ee9.bundle.js +0 -2
- package/dist/39448.a6ec42f0d72642fe9ee9.bundle.js.map +0 -1
- package/dist/39874.6ca23ead080b52dc1bc6.bundle.js.map +0 -1
- package/dist/4125.28d3c85c122f270c9b2c.bundle.js +0 -2
- package/dist/4125.28d3c85c122f270c9b2c.bundle.js.map +0 -1
- package/dist/41621.d1b7d799116c07df17d1.bundle.js.map +0 -1
- package/dist/42143.87a6b0a089da7a2318dd.bundle.js +0 -2
- package/dist/42143.87a6b0a089da7a2318dd.bundle.js.map +0 -1
- package/dist/51087.8bc01b7861b40bc7082d.bundle.js +0 -2
- package/dist/51087.8bc01b7861b40bc7082d.bundle.js.map +0 -1
- package/dist/51490.358f66f8d298a6251e90.bundle.js +0 -2
- package/dist/51490.358f66f8d298a6251e90.bundle.js.map +0 -1
- package/dist/57952.afa9e0608388e5bae876.bundle.js +0 -2
- package/dist/57952.afa9e0608388e5bae876.bundle.js.map +0 -1
- package/dist/59718.f1ae3d1480c7179c57f0.bundle.js.map +0 -1
- package/dist/67232.ca7667a39c74efdb90e1.bundle.js +0 -2
- package/dist/67232.ca7667a39c74efdb90e1.bundle.js.map +0 -1
- package/dist/68685.314faeaa55a342568c0b.bundle.js +0 -2
- package/dist/68685.314faeaa55a342568c0b.bundle.js.map +0 -1
- package/dist/69112.817cf7b4d2911108c736.bundle.js.map +0 -1
- package/dist/73964.adb0a07a8c4dad17f592.bundle.js.map +0 -1
- package/dist/74106.82ee18377b0ae14c6a7f.bundle.js +0 -2
- package/dist/74106.82ee18377b0ae14c6a7f.bundle.js.map +0 -1
- package/dist/79329.a3a25c9508f4287f135c.bundle.js +0 -2
- package/dist/79329.a3a25c9508f4287f135c.bundle.js.map +0 -1
- package/dist/86142.ed366f6953d750eb99b8.bundle.js +0 -2
- package/dist/86142.ed366f6953d750eb99b8.bundle.js.map +0 -1
- package/dist/86639.6cf8f34680ceacc7298d.bundle.js +0 -2
- package/dist/86639.6cf8f34680ceacc7298d.bundle.js.map +0 -1
- package/dist/89695.2d49f93862aee2cf23af.bundle.js +0 -2
- package/dist/89695.2d49f93862aee2cf23af.bundle.js.map +0 -1
- package/dist/94519.f41b6f4fb1b1bb6e3bf5.bundle.js +0 -2
- package/dist/94519.f41b6f4fb1b1bb6e3bf5.bundle.js.map +0 -1
- package/dist/95953.1334544dd7e80f0da6cf.bundle.js +0 -2
- package/dist/95953.1334544dd7e80f0da6cf.bundle.js.map +0 -1
- package/dist/96089.15302200bfd9f685b009.bundle.js +0 -2
- package/dist/96089.15302200bfd9f685b009.bundle.js.map +0 -1
- package/dist/98860.30ea9a212cf6e622ec36.bundle.js +0 -2
- package/dist/98860.30ea9a212cf6e622ec36.bundle.js.map +0 -1
- package/dist/shared-components/shared-components/p-28a4ce8f.entry.js +0 -1
- package/dist/shared-components/shared-components/p-28a4ce8f.entry.js.map +0 -1
- /package/dist/{legacyWorkbench.f804eda735b6f1961ceb.js.LICENSE.txt → legacyWorkbench.c5245455051fd0bab730.js.LICENSE.txt} +0 -0
- /package/dist/{main.5a06ce3271fcd9cb93e7.js.LICENSE.txt → main.fa0b99f721588e894d1d.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"95953.1334544dd7e80f0da6cf.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/models/similarity/similarity-index-status.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/similarity/similarity-index.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/controllers/agent-instructions-explain-modal.controller.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/connectors/connectors.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/rest/mappers/similarity-index-mapper.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/similarity/similarity-index-type.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/core/services/similarity.service.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/rest/mappers/connectors-mapper.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/rest/connectors.rest.service.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/controllers/external-integration-configuration-modal.controller.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/core/services/connectors.service.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/rest/similarity.rest.service.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/services/externalIntegrationModal.service.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/controllers/agent-settings-modal.controller.js"],"sourcesContent":["export const SimilarityIndexStatus = {\n 'CREATING': 'CREATING',\n 'BUILDING': 'BUILDING',\n 'BUILT': 'BUILT',\n 'REBUILDING': 'REBUILDING',\n 'OUTDATED': 'OUTDATED',\n 'INTERRUPTED': 'INTERRUPTED',\n 'OBSOLETE': 'OBSOLETE',\n 'FAILED': 'FAILED',\n\n 'isCreatingStatus': (status) => {\n return SimilarityIndexStatus.CREATING === status;\n },\n\n 'isBuildingStatus': (status) => {\n return SimilarityIndexStatus.BUILDING === status;\n },\n\n 'isBuiltStatus': (status) => {\n return SimilarityIndexStatus.BUILT === status;\n },\n\n 'isRebuildingStatus': (status) => {\n return SimilarityIndexStatus.REBUILDING === status;\n },\n\n 'isOutdatedStatus': (status) => {\n return SimilarityIndexStatus.OUTDATED === status;\n },\n\n 'isInterruptedStatus': (status) => {\n return SimilarityIndexStatus.INTERRUPTED === status;\n },\n\n 'isObsoleteStatus': (status) => {\n return SimilarityIndexStatus.OBSOLETE === status;\n },\n\n 'isFailedStatus': (status) => {\n return SimilarityIndexStatus.FAILED === status;\n }\n};\n","import {SimilarityIndexType} from \"./similarity-index-type\";\nimport {SimilarityIndexStatus} from \"./similarity-index-status\";\n\nexport class SimilarityIndex {\n constructor() {\n this.analyzer = '';\n this.infer = true;\n this.options = '';\n this.sameAs = true;\n this.searchQuery = '';\n this.selectQuery = '';\n this.stopList = undefined;\n this.name = '';\n\n /**\n * The similarity index type.\n *\n * @type {string}\n */\n this.type = SimilarityIndexType.TEXT;\n\n /**\n * The similarity index type.\n *\n * @type {SimilarityIndexStatus}\n */\n this.status = undefined;\n\n this.analogicalQuery = undefined;\n this.inputIndex = undefined;\n this.isLiteralIndex = '';\n }\n\n isTextType() {\n return SimilarityIndexType.isTextType(this.type);\n }\n\n isTextLiteralType() {\n return SimilarityIndexType.isTextLiteralType(this.type);\n }\n\n isPredicationType() {\n return SimilarityIndexType.isPredicationType(this.type);\n }\n\n isCreatingStatus() {\n return SimilarityIndexStatus.isCreatingStatus(this.status);\n }\n\n isBuildingStatus() {\n return SimilarityIndexStatus.isBuildingStatus(this.status);\n }\n\n isBuiltStatus() {\n return SimilarityIndexStatus.isBuiltStatus(this.status);\n }\n\n isRebuildingStatus() {\n return SimilarityIndexStatus.isRebuildingStatus(this.status);\n }\n\n isOutdatedStatus() {\n return SimilarityIndexStatus.isOutdatedStatus(this.status);\n }\n\n isInterruptedStatus() {\n return SimilarityIndexStatus.isInterruptedStatus(this.status);\n }\n\n isObsoleteStatus() {\n return SimilarityIndexStatus.isObsoleteStatus(this.status);\n }\n\n isFailedStatus() {\n return SimilarityIndexStatus.isFailedStatus(this.status);\n }\n}\n","import 'angular/core/services/similarity.service';\nimport 'angular/core/services/connectors.service';\nimport 'angular/core/services/ttyg.service';\nimport 'angular/rest/repositories.rest.service';\n\nangular\n .module('graphdb.framework.ttyg.controllers.agent-instructions-explain-modal', [])\n .controller('AgentInstructionsExplainModalController', AgentInstructionsExplainModalController);\n\nAgentInstructionsExplainModalController.$inject = [\n '$scope',\n '$uibModalInstance',\n 'ModalService',\n '$translate',\n 'dialogModel'\n];\n\nfunction AgentInstructionsExplainModalController($scope, $uibModalInstance, ModalService, $translate, dialogModel) {\n // =========================\n // Public variables\n // =========================\n\n $scope.agentInstructionsExplain = dialogModel.agentInstructionsExplain;\n\n // =========================\n // Public functions\n // =========================\n\n /**\n * Closes the modal when the user clicks the close button.\n */\n $scope.close = () => {\n $uibModalInstance.dismiss({});\n };\n\n $scope.onCloseAgentInstructionsExplainModal = () => {\n $uibModalInstance.dismiss({});\n };\n\n // =========================\n // Private functions\n // =========================\n\n // =========================\n // Subscriptions\n // =========================\n\n const subscriptions = [];\n\n const onDestroy = () => {\n subscriptions.forEach((subscription) => subscription());\n };\n $scope.$on('$destroy', onDestroy);\n\n // =========================\n // Initialization\n // =========================\n}\n","export class ConnectorTypesListModel {\n constructor(data = {}) {\n /**\n * @type {ConnectorTypeModel[]}\n * @private\n */\n this._connectors = data.connectors || [];\n }\n\n getConnectorByName(name) {\n return this._connectors.find((connector) => connector.name === name);\n }\n\n get connectors() {\n return this._connectors;\n }\n\n set connectors(value) {\n this._connectors = value;\n }\n}\n\nexport class ConnectorTypeModel {\n constructor(data) {\n /**\n * @type {string}\n * @private\n */\n this._name = data.name;\n /**\n * @type {string}\n * @private\n */\n this._prefix = data.prefix;\n }\n\n get name() {\n return this._name;\n }\n\n set name(value) {\n this._name = value;\n }\n\n get prefix() {\n return this._prefix;\n }\n\n set prefix(value) {\n this._prefix = value;\n }\n}\n\nexport class ConnectorListModel {\n constructor(data = []) {\n this._connectors = data.connectors;\n }\n\n get connectors() {\n return this._connectors;\n }\n\n set connectors(value) {\n this._connectors = value;\n }\n}\n\nexport class ConnectorModel {\n constructor(data) {\n this._name = data.name;\n this._settings = new ConnectorSettingsModel(data);\n }\n\n get settings() {\n return this._settings;\n }\n\n set settings(value) {\n this._settings = value;\n }\n get name() {\n return this._name;\n }\n\n set name(value) {\n this._name = value;\n }\n}\n\nexport class ConnectorSettingsModel {\n constructor(data) {\n this._settings = data.values || {};\n }\n\n get settings() {\n return this._settings;\n }\n\n set settings(value) {\n this._settings = value;\n }\n}\n","import {SimilarityIndex} from \"../../models/similarity/similarity-index\";\n\n/**\n * Maps the response data to SimilarityIndex objects.\n * @param {*} responseData\n * @return {SimilarityIndex[]}\n */\nexport const mapIndexesResponseToSimilarityIndex = (responseData) => {\n return responseData.map((index) => {\n const similarityIndex = new SimilarityIndex();\n similarityIndex.type = index.type;\n similarityIndex.stopList = index.stopList;\n similarityIndex.status = index.status;\n similarityIndex.selectQuery = index.selectQuery;\n similarityIndex.searchQuery = index.searchQuery;\n similarityIndex.sameAs = index.sameAs;\n similarityIndex.options = index.options;\n similarityIndex.name = index.name;\n similarityIndex.infer = index.infer;\n similarityIndex.analyzer = index.analyzer;\n similarityIndex.analogicalQuery = index.analogicalQuery;\n return similarityIndex;\n });\n};\n","export const SimilarityIndexType = {\n 'TEXT': 'text',\n 'TEXT_LITERAL': 'textLiteral',\n 'PREDICATION': 'predication',\n\n 'isTextType': (type) => {\n return SimilarityIndexType.TEXT === type;\n },\n\n 'isTextLiteralType': (type) => {\n return SimilarityIndexType.TEXT_LITERAL === type;\n },\n\n 'isPredicationType': (type) => {\n return SimilarityIndexType.PREDICATION === type;\n }\n};\n","import 'angular/rest/similarity.rest.service';\nimport {mapIndexesResponseToSimilarityIndex} from \"../../rest/mappers/similarity-index-mapper\";\nimport {SelectMenuOptionsModel} from \"../../models/form-fields\";\n\nconst modules = ['graphdb.framework.rest.similarity.service'];\n\nangular\n .module('graphdb.framework.core.services.similarity', modules)\n .factory('SimilarityService', SimilarityService);\n\nSimilarityService.$inject = ['SimilarityRestService'];\n\nfunction SimilarityService(SimilarityRestService) {\n\n /**\n * Returns the similarity indexes for the repository with id <code>repositoryId</code> and location <code>repositoryLocation</code>.\n * If the repository ID and repository location are not provided, the currently selected repository will be used.\n *\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {Promise<SimilarityIndex[]>}\n */\n const getIndexes = (repositoryId, repositoryLocation) => {\n return SimilarityRestService.getIndexes(repositoryId, repositoryLocation)\n .then((response) => mapIndexesResponseToSimilarityIndex(response.data));\n };\n\n /**\n * Returns the similarity indexes for the repository with id <code>repositoryId</code> and location <code>repositoryLocation</code> as a menu model.\n * If the repository ID and repository location are not provided, the currently selected repository will be used.\n *\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {Promise<SelectMenuOptionsModel[]>}\n */\n const getIndexesAsMenuModel = (repositoryId, repositoryLocation) => {\n return getIndexes(repositoryId, repositoryLocation)\n .then((indexesModel) => {\n return indexesModel.map((index) => {\n return new SelectMenuOptionsModel({label: index.name, value: index.name});\n });\n });\n };\n\n return {\n getIndexes,\n getIndexesAsMenuModel\n };\n}\n","import {\n ConnectorListModel,\n ConnectorModel,\n ConnectorTypeModel,\n ConnectorTypesListModel\n} from \"../../models/connectors/connectors\";\n\n/**\n * Maps the connectors response data to a ConnectorTypesListModel. These are all available connector types.\n * @param {{}} data\n * @return {ConnectorTypesListModel}\n */\nexport const connectorTypesListMapper = (data) => {\n const connectorListModel = new ConnectorTypesListModel();\n if (!data) {\n return connectorListModel;\n }\n connectorListModel.connectors = Object.keys(data).map((key) => {\n return new ConnectorTypeModel({\n name: key,\n prefix: data[key]\n });\n });\n return connectorListModel;\n};\n\n/**\n * Maps the connectors response data to a ConnectorListModel. These are the connector instances of one specific type.\n * @param {*[]} data\n * @return {ConnectorListModel}\n */\nexport const connectorsMapper = (data) => {\n const connectors = new ConnectorListModel();\n if (!data) {\n return connectors;\n }\n connectors.connectors = data.map((connectorResponse) => {\n return new ConnectorModel(connectorResponse);\n });\n return connectors;\n};\n","angular\n .module('graphdb.framework.rest.connectors.service', [])\n .factory('ConnectorsRestService', ConnectorsRestService);\n\nConnectorsRestService.$inject = ['$http'];\n\nconst CONNECTORS_ENDPOINT = 'rest/connectors';\n\nfunction ConnectorsRestService($http) {\n\n return {\n getConnectors,\n initConnector,\n hasConnector,\n checkConnector\n };\n\n /**\n * Fetches all connectors for the repository with id <code>repositoryId</code> and location <code>repositoryLocation</code>.\n * If the repository ID and repository location are not provided, the values persisted in local storage will be used {@see authentication.interceptor.js}.\n *\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {*} The similarity indexes for the specified repository.\n */\n function getConnectors(repositoryId, repositoryLocation) {\n if (repositoryId) {\n return $http.get(CONNECTORS_ENDPOINT, {\n headers: {\n 'X-GraphDB-Repository': repositoryId,\n 'X-GraphDB-Repository-Location': repositoryLocation\n }\n });\n }\n return $http.get(CONNECTORS_ENDPOINT);\n }\n\n function initConnector(prefix) {\n return $http.get(`${CONNECTORS_ENDPOINT}/options?prefix=${prefix}`);\n }\n\n /**\n * Fetches all connectors of a specific type defined by the prefix for the repository with id <code>repositoryId</code>\n * and location <code>repositoryLocation</code>. If the repository ID and repository location are not provided, the currently selected repository will be used.\n * @param {string} prefix\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {Promise<ConnectorListModel>}\n */\n function hasConnector(prefix, repositoryId, repositoryLocation) {\n if (repositoryId) {\n return $http.get(`${CONNECTORS_ENDPOINT}/existing?prefix=${prefix}`, {\n headers: {\n 'X-GraphDB-Repository': repositoryId,\n 'X-GraphDB-Repository-Location': repositoryLocation\n }\n });\n }\n return $http.get(`${CONNECTORS_ENDPOINT}/existing?prefix=${prefix}`);\n }\n\n function checkConnector(data) {\n return $http.post(`${CONNECTORS_ENDPOINT}/check`, data, {\n headers: {\n 'Content-Type': 'text/plain'\n }\n });\n }\n}\n","angular\n .module('graphdb.framework.ttyg.controllers.external-integration-configuration-modal', [])\n .controller('ExternalIntegrationConfigurationModalController', ExternalIntegrationConfigurationModalController);\n\nExternalIntegrationConfigurationModalController.$inject = [\n '$scope',\n '$uibModalInstance',\n 'ModalService',\n '$translate',\n 'dialogModel'\n];\n\nfunction ExternalIntegrationConfigurationModalController($scope, $uibModalInstance, ModalService, $translate, dialogModel) {\n // =========================\n // Public variables\n // =========================\n\n $scope.externalIntegrationConfiguration = dialogModel.externalIntegrationConfiguration;\n $scope.difyExtension = dialogModel.difyExtensionUrl;\n $scope.queryMethods = dialogModel.queryMethodsUrl;\n $scope.agentId = dialogModel.agentId;\n $scope.agentName = dialogModel.agentName;\n\n // =========================\n // Public functions\n // =========================\n\n /**\n * Closes the modal when the user clicks the close button.\n */\n $scope.close = () => {\n $uibModalInstance.dismiss({});\n };\n\n $scope.onCloseExternalIntegrationConfigurationModal = () => {\n $uibModalInstance.dismiss({});\n };\n}\n","import 'angular/rest/connectors.rest.service';\nimport {connectorsMapper, connectorTypesListMapper} from \"../../rest/mappers/connectors-mapper\";\nimport {SelectMenuOptionsModel} from \"../../models/form-fields\";\n\nconst modules = ['graphdb.framework.rest.connectors.service'];\n\nangular\n .module('graphdb.framework.core.services.connectors', modules)\n .factory('ConnectorsService', ConnectorsService);\n\nConnectorsService.$inject = ['ConnectorsRestService'];\n\nfunction ConnectorsService(ConnectorsRestService) {\n\n /**\n * Fetches all connector types from the server for the repository with id <code>repositoryId</code> and location <code>repositoryLocation</code>.\n * If the repository ID and repository location are not provided, the currently selected repository will be used.\n *\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {Promise<ConnectorTypesListModel>}\n */\n const getConnectorTypes = (repositoryId, repositoryLocation) => {\n return ConnectorsRestService.getConnectors(repositoryId, repositoryLocation)\n .then((response) => connectorTypesListMapper(response.data));\n };\n\n /**\n * Fetches the connector prefix by its name for the repository with id <code>repositoryId</code> and location <code>repositoryLocation</code>.\n * If the repository ID and repository location are not provided, the currently selected repository will be used.\n *\n * @param {string} name\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {Promise<string|null>}\n */\n const getConnectorPrefixByName = (name, repositoryId, repositoryLocation) => {\n return getConnectorTypes(repositoryId, repositoryLocation)\n .then((connectorTypesModel) => {\n const connector = connectorTypesModel.getConnectorByName(name);\n return connector ? connector.prefix : null;\n });\n };\n\n /**\n * Fetches all connectors of a specific type defined by the prefix for the repository with id <code>repositoryId</code>\n * and location <code>repositoryLocation</code>. If the repository ID and repository location are not provided, the currently selected repository will be used.\n * @param {string} prefix\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {Promise<ConnectorListModel>}\n */\n const getConnectorsByType = (prefix, repositoryId, repositoryLocation) => {\n return ConnectorsRestService.hasConnector(encodeURIComponent(prefix), repositoryId, repositoryLocation)\n .then((response) => {\n return connectorsMapper(response.data);\n });\n };\n\n /**\n * Fetches all connectors of a specific type defined by the prefix and returns them as SelectMenuOptionsModel\n * for the repository with id <code>repositoryId</code> and location <code>repositoryLocation</code>.\n * If the repository ID and repository location are not provided, the currently selected repository will be used.\n * @param {string} prefix\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {Promise<SelectMenuOptionsModel[]>}\n */\n const getConnectorsByTypeAsSelectMenuOptions = (prefix, repositoryId, repositoryLocation) => {\n return getConnectorsByType(prefix, repositoryId, repositoryLocation)\n .then((connectorsModel) => connectorsModel.connectors.map((connector) => {\n return new SelectMenuOptionsModel({\n value: connector.name,\n label: connector.name\n });\n }));\n };\n\n return {\n getConnectorTypes,\n getConnectorsByType,\n getConnectorPrefixByName,\n getConnectorsByTypeAsSelectMenuOptions\n };\n}\n","angular\n .module('graphdb.framework.rest.similarity.service', [])\n .factory('SimilarityRestService', SimilarityRestService);\n\nSimilarityRestService.$inject = ['$http', '$repositories'];\n\nconst SIMILARITY_ENDPOINT = 'rest/similarity';\n\nfunction SimilarityRestService($http) {\n\n return {\n getIndexes,\n getSearchQueries,\n rebuildIndex,\n deleteIndex,\n createIndex,\n getSamples,\n getQuery,\n saveSearchQuery\n };\n\n /**\n * Fetches the similarity indexes for the repository with id <code>repositoryId</code> and location <code>repositoryLocation</code>.\n * If the repository ID and repository location are not provided, the currently selected repository will be used.\n *\n * @param {string | undefined} repositoryId - The repository id.\n * @param {string | undefined} repositoryLocation - The repository location.\n * @return {*} The similarity indexes for the specified repository.\n */\n function getIndexes(repositoryId, repositoryLocation) {\n if (repositoryId) {\n return $http.get(SIMILARITY_ENDPOINT, {\n headers: {\n 'X-GraphDB-Repository': repositoryId,\n 'X-GraphDB-Repository-Location': repositoryLocation\n }\n });\n }\n return $http.get(SIMILARITY_ENDPOINT);\n }\n\n function getSamples() {\n return $http.get(`${SIMILARITY_ENDPOINT}/samples`);\n }\n\n function getSearchQueries() {\n return $http.get(`${SIMILARITY_ENDPOINT}/config`);\n }\n\n function createIndex(method, name, options, selectQuery, searchQuery, analogicalQuery, stopList, infer, sameAs, type, analyzer) {\n return $http({\n method,\n url: `${SIMILARITY_ENDPOINT}`,\n noCancelOnRouteChange: true,\n data: {\n name,\n options,\n selectQuery,\n stopList,\n infer,\n sameAs,\n type,\n analyzer,\n searchQuery,\n analogicalQuery\n }\n }\n );\n }\n\n function rebuildIndex(index) {\n return createIndex('PUT', index.name, index.options, index.selectQuery, index.searchQuery, index.analogicalQuery, index.stopList, index.infer, index.sameAs, index.type);\n }\n\n function deleteIndex(index) {\n return $http.delete(`${SIMILARITY_ENDPOINT}?name=${index.name}`);\n }\n\n function getQuery(data) {\n return $http.get('rest/similarity/query',\n {\n params: {\n name: data.indexName,\n options: data.indexOptions,\n stopList: data.indexStopList,\n selectQuery: data.query,\n infer: data.queryInference,\n sameAs: data.querySameAs,\n type: data.viewType,\n analyzer: data.indexAnalyzer\n }\n });\n }\n\n function saveSearchQuery(data) {\n return $http({\n method: 'put',\n url: 'rest/similarity/search-query',\n data\n });\n }\n}\n","import 'angular/ttyg/controllers/external-integration-configuration-modal.controller';\nimport {TTYG_ERROR_MSG_LENGTH} from \"./constants\";\n\nangular\n .module('graphdb.framework.ttyg.services.externalIntegrationModal',\n ['graphdb.framework.ttyg.controllers.external-integration-configuration-modal'])\n .factory('ExternalIntegrationModalService', ExternalIntegrationModalService)\n\nExternalIntegrationModalService.$inject = ['$uibModal', 'LocationsRestService', 'toastr'];\n\nfunction ExternalIntegrationModalService($uibModal, LocationsRestService, toastr) {\n function buildDialogModel(agent, baseUrl) {\n return {\n agentName: agent.name,\n agentId: agent.id,\n queryMethodsUrl: `${baseUrl}/rest/llm/tool/ttyg/${agent.id}`,\n difyExtensionUrl: `${baseUrl}/rest/llm/ttyg/${agent.id}/dify`\n };\n }\n\n function open(agent) {\n return LocationsRestService.getExternalUrl()\n .then((response) => {\n const dialogModel = buildDialogModel(agent, response.data);\n\n return $uibModal.open({\n templateUrl: 'js/angular/ttyg/templates/modal/external-integration-configuration-modal.html',\n controller: 'ExternalIntegrationConfigurationModalController',\n windowClass: 'external-integration-configuration-modal',\n backdrop: 'static',\n resolve: {\n dialogModel: () => dialogModel\n }\n }).result\n .then(() => {\n // Modal was closed with success - do nothing\n })\n .catch(() => {\n // Modal was dismissed — do nothing\n });\n })\n .catch((error) => {\n // Catches API failure\n toastr.error(getError(error, 0, TTYG_ERROR_MSG_LENGTH));\n });\n }\n\n return {open};\n}\n","import {decodeHTML} from \"../../../../app\";\nimport {AdditionalExtractionMethod, ExtractionMethod} from \"../../models/ttyg/agents\";\nimport 'angular/core/services/similarity.service';\nimport 'angular/core/services/connectors.service';\nimport 'angular/core/services/ttyg.service';\nimport 'angular/rest/repositories.rest.service';\nimport 'angular/ttyg/controllers/agent-instructions-explain-modal.controller';\nimport 'angular/ttyg/services/externalIntegrationModal.service';\nimport {REPOSITORY_PARAMS} from \"../../models/repository/repository\";\nimport {TTYGEventName} from \"../services/ttyg-context.service\";\nimport {AGENT_OPERATION, TTYG_ERROR_MSG_LENGTH} from \"../services/constants\";\nimport {mapUriAsNtripleAutocompleteResponse} from \"../../rest/mappers/autocomplete-mapper\";\nimport {DocumentationUrlResolver} from \"../../utils/documentation-url-resolver\";\n\nangular\n .module('graphdb.framework.ttyg.controllers.agent-settings-modal', [\n 'graphdb.framework.core.services.similarity',\n 'graphdb.framework.core.services.connectors',\n 'graphdb.framework.rest.repositories.service',\n 'graphdb.framework.ttyg.controllers.agent-instructions-explain-modal',\n 'graphdb.framework.ttyg.services.externalIntegrationModal',\n 'ngTagsInput'\n ])\n .constant('ExtractionMethodTemplates', {\n 'iri_discovery_search': 'iri-discovery-search',\n 'autocomplete_iri_discovery_search': 'autocomplete-iri-discovery-search'\n })\n .controller('AgentSettingsModalController', AgentSettingsModalController);\n\nAgentSettingsModalController.$inject = [\n '$scope',\n '$uibModalInstance',\n 'ModalService',\n '$uibModal',\n 'SimilarityService',\n 'ConnectorsService',\n 'RepositoriesRestService',\n '$sce',\n 'toastr',\n 'UriUtils',\n '$translate',\n 'dialogModel',\n 'TTYGContextService',\n 'TTYGService',\n 'ExtractionMethodTemplates',\n 'AutocompleteService',\n 'AutocompleteRestService',\n 'ExternalIntegrationModalService',\n 'productInfo'];\n\nfunction AgentSettingsModalController(\n $scope,\n $uibModalInstance,\n ModalService,\n $uibModal,\n SimilarityService,\n ConnectorsService,\n RepositoriesRestService,\n $sce,\n toastr,\n UriUtils,\n $translate,\n dialogModel,\n TTYGContextService,\n TTYGService,\n ExtractionMethodTemplates,\n AutocompleteService,\n AutocompleteRestService,\n ExternalIntegrationModalService,\n productInfo) {\n\n // =========================\n // Private variables\n // =========================\n\n const CHAT_GPT_RETRIEVAL_CONNECTOR_NAME = 'ChatGPT Retrieval';\n\n // =========================\n // Public variables\n // =========================\n\n $scope.AGENT_OPERATION = AGENT_OPERATION;\n\n /**\n * The operation type for the modal. This can be one of <code>AGENT_OPERATION</code> constants.\n */\n $scope.operation = dialogModel.operation;\n\n /**\n * Flag to control the visibility of the loader when creating an agent.\n * @type {boolean}\n */\n $scope.savingAgent = false;\n\n /**\n * The model used in the form.\n * @type {AgentFormModel|*}\n */\n $scope.agentFormModel = dialogModel.agentFormModel;\n\n /**\n * The active repository info model.\n * @type {RepositoryInfoModel|*}\n */\n $scope.activeRepositoryInfo = dialogModel.activeRepositoryInfo;\n\n /**\n * Flags used to show/hide the loader for the extraction methods when the user opens a panel and some data needs to\n * be loaded.\n * @type {{[string]: boolean}} - the key is the extraction method types in <code>ExtractionMethod</code>\n */\n $scope.extractionMethodLoaderFlags = {\n [ExtractionMethod.SIMILARITY]: false\n };\n\n /**\n * The repository select menu options model.\n * @type {SelectMenuOptionsModel[]}\n */\n $scope.activeRepositoryList = dialogModel.activeRepositoryList;\n\n /**\n * The extraction method types constants.\n * @type {{SPARQL: string, FTS_SEARCH: string, SIMILARITY: string, RETRIEVAL: string}}\n */\n $scope.extractionMethods = ExtractionMethod;\n\n /**\n * The additional extraction method types constants.\n * @type {{IRI_DISCOVERY_SEARCH: string, AUTOCOMPLETE_IRI_DISCOVERY_SEARCH: string}}\n */\n $scope.additionalExtractionMethods = AdditionalExtractionMethod;\n\n /**\n * The names of the template files, containing the Extraction Method Templates.\n * @type {Object<string, string>}\n */\n $scope.ExtractionMethodTemplates = ExtractionMethodTemplates;\n\n /**\n * Flag used to show/hide the advanced settings in the modal.\n * @type {boolean}\n */\n $scope.showAdvancedSettings = false;\n\n /**\n * Flag used to show/hide the high temperature warning in the modal.\n * @type {boolean}\n */\n $scope.showHighTemperatureWarning = false;\n\n /**\n * Flag used to control the visibility of the system instruction warning.\n * @type {boolean}\n */\n $scope.showSystemInstructionWarning = false;\n\n /**\n * The similarity indexes to be used for the similarity extraction method as select menu options.\n * @type {SelectMenuOptionsModel[]}\n */\n $scope.similarityIndexes = [];\n\n /**\n * The retrieval connectors to be used for the retrieval extraction method as select menu options.\n * @type {SelectMenuOptionsModel[]}\n */\n $scope.retrievalConnectors = [];\n\n /**\n * Flag used to show/hide the FTS enabled state in the modal.\n * @type {boolean}\n */\n $scope.ftsEnabled = false;\n\n /**\n * The autocomplete suggestions source for the 'Autocomplete IRI discovery' extraction method.\n * @type {*[]}\n */\n $scope.autocompleteSuggestions = [];\n\n // =========================\n // Public functions\n // =========================\n\n /**\n * Sets the UI touched state and validation state for the extraction methods property so that the UI can show if\n * the user has selected at least one extraction method and warn him if he hasn't.\n *\n * @param {ExtractionMethodFormModel} extractionMethod\n */\n $scope.toggleExtractionMethod = (extractionMethod) => {\n extractionMethod.expanded = extractionMethod.selected;\n $scope.agentSettingsForm.extractionMethods.$setTouched();\n setExtractionMethodValidityStatus();\n extractionPanelToggleHandlers[extractionMethod.method](extractionMethod);\n };\n\n /**\n * Handles the panel toggle event for the extraction method. This is used to do some initialization when the user\n * opens the panel for a specific extraction method.\n * @param {ExtractionMethodFormModel} extractionMethod\n */\n $scope.onExtractionMethodPanelToggle = (extractionMethod) => {\n extractionMethod.toggleCollapse();\n extractionPanelToggleHandlers[extractionMethod.method](extractionMethod);\n };\n\n /**\n * Sets the UI touched state and validation state for the additional extraction methods property so that the UI can show if\n * the user has selected at least one extraction method.\n *\n * @param {AdditionalExtractionMethodFormModel} extractionMethod\n */\n $scope.toggleAdditionalExtractionMethod = (extractionMethod) => {\n extractionMethod.expanded = extractionMethod.selected;\n $scope.checkAutocompleteIndexEnabled();\n additionalExtractionPanelToggleHandlers[extractionMethod.method](extractionMethod);\n };\n\n /**\n * Handles the panel toggle event for the additional extraction method. This is used to do some initialization when the user\n * opens the panel for a specific extraction method.\n * @param {AdditionalExtractionMethodFormModel} extractionMethod\n */\n $scope.onAdditionalExtractionMethodPanelToggle = (extractionMethod) => {\n extractionMethod.toggleCollapse();\n additionalExtractionPanelToggleHandlers[extractionMethod.method](extractionMethod);\n };\n\n $scope.helpInfoForModel = {\n ttygHelpInfo: getModelHelpMessage(),\n linkText: $translate.instant('ttyg.agent.create_agent_modal.form.model.link_text'),\n documentationUrl: DocumentationUrlResolver.getDocumentationUrl(productInfo.productShortVersion, 'talk-to-graph.html#prerequisites-and-configuration')\n }\n\n /**\n * Resolves the hint for the FTS search missing message. This is needed because the hint contains a html link that\n * should be properly rendered.\n * @return {*}\n */\n $scope.getFTSDisabledHelpMessage = () => {\n // The hint contains a html link which should be properly rendered.\n const message = decodeHTML(\n $translate.instant(\n 'ttyg.agent.create_agent_modal.form.fts_search.fts_disabled_message',\n {repositoryEditPage: 'repository/edit/' + $scope.agentFormModel.repositoryId}\n )\n );\n return $sce.trustAsHtml(message);\n };\n\n /**\n * Opens the 'Autocomplete index' view in a new tab.\n */\n $scope.goToAutocompleteView = (event) => {\n event.preventDefault();\n TTYGContextService.emit(TTYGEventName.GO_TO_AUTOCOMPLETE_INDEX_VIEW, {repositoryId: $scope.agentFormModel.repositoryId});\n }\n\n /**\n * Opens the 'Create Similarity' view in a new tab.\n */\n $scope.goToCreateSimilarityView = (event) => {\n event.preventDefault();\n TTYGContextService.emit(TTYGEventName.GO_TO_CREATE_SIMILARITY_VIEW, {repositoryId: $scope.agentFormModel.repositoryId});\n };\n\n /**\n * Opens the 'Connectors' view in a new tab.\n */\n $scope.goToConnectorsView = (event) => {\n event.preventDefault();\n TTYGContextService.emit(TTYGEventName.GO_TO_CONNECTORS_VIEW, {repositoryId: $scope.agentFormModel.repositoryId});\n };\n\n /**\n * Handles the selected agent operation which can be one of <code>AGENT_OPERATION</code> types. Respective handler\n * is called based on the operation type with the agent payload build based on the form model.\n * @return {Promise<void>}\n */\n $scope.ok = () => {\n const agentPayload = $scope.agentFormModel.toPayload();\n return agentOperationHandlers[$scope.operation](agentPayload);\n };\n\n /**\n * Closes the modal when the user cancels the agent creation.\n */\n $scope.cancel = () => {\n $uibModalInstance.dismiss({});\n };\n\n /**\n * Closes the modal when the user clicks the close button.\n */\n $scope.close = () => {\n $uibModalInstance.dismiss({});\n };\n\n /**\n * Updates the similarity search panel.\n *\n * @param {boolean} clearIndexSelection - If true, the selected index will be cleared.\n */\n $scope.updateSimilaritySearchPanel = (clearIndexSelection = false) => {\n const similaritySearchExtractionMethod = $scope.agentFormModel.assistantExtractionMethods.getSimilarityExtractionMethod();\n if (!similaritySearchExtractionMethod.selected) {\n return;\n }\n if (clearIndexSelection) {\n similaritySearchExtractionMethod.similarityIndex = null;\n }\n handleSimilaritySearchExtractionMethodPanelToggle(similaritySearchExtractionMethod);\n };\n\n /**\n * Updates the ChatGPT retrieval connector panel.\n *\n * @param {boolean} clearSelection - If true, the selected connector will be cleared.\n */\n $scope.updateRetrievalConnectorPanel = (clearSelection = false) => {\n const retrievalExtractionExtractionMethod = $scope.agentFormModel.assistantExtractionMethods.getRetrievalExtractionMethod();\n if (!retrievalExtractionExtractionMethod.selected) {\n return;\n }\n if (clearSelection) {\n retrievalExtractionExtractionMethod.retrievalConnectorInstance = null;\n }\n handleRetrievalConnectorExtractionMethodPanelToggle(retrievalExtractionExtractionMethod);\n };\n\n $scope.checkIfFTSEnabled = () => {\n if (!$scope.agentFormModel.repositoryId) {\n $scope.agentSettingsForm.$setValidity('FTSDisabled', false);\n return;\n }\n\n const ftsSearchExtractionMethod = $scope.agentFormModel.assistantExtractionMethods.getFTSSearchExtractionMethod();\n if (!ftsSearchExtractionMethod.selected) {\n // clear the validation status if method is deselected.\n $scope.agentSettingsForm.$setValidity('FTSDisabled', true);\n return;\n }\n\n $scope.extractionMethodLoaderFlags[ExtractionMethod.FTS_SEARCH] = true;\n\n // pass a fake repository info object with only an id because we don't care for the location\n RepositoriesRestService.getRepositoryModel({id: $scope.agentFormModel.repositoryId}).then((repositoryModel) => {\n $scope.ftsEnabled = repositoryModel.getParamValue(REPOSITORY_PARAMS.enableFtsIndex);\n })\n .catch((error) => {\n logAndShowError(error, 'ttyg.agent.messages.error_repository_config_loading');\n })\n .finally(() => {\n $scope.extractionMethodLoaderFlags[ExtractionMethod.FTS_SEARCH] = false;\n $scope.agentSettingsForm.$setValidity('FTSDisabled', $scope.ftsEnabled);\n });\n };\n\n /**\n * Opens a modal to copy the external integration for the currently edited agent.\n *\n * @function\n */\n $scope.openExternalIntegrationConfig = () => {\n const agent = $scope.agentFormModel;\n ExternalIntegrationModalService.open(agent);\n };\n\n /**\n * Handles the change in the repository id field. This is needed because\n * the FTS method configuration depends on the selected repository to be\n * able to validate if the FTS is enabled for that selected repository.\n */\n $scope.onRepositoryChange = () => {\n refreshValidations(true, true);\n };\n\n /**\n * Checks the status of the autocomplete index.\n * @param {AdditionalExtractionMethodFormModel|undefined} method - The extraction method to check the autocomplete\n * index for. This function can be called in the visibilitychange handler, so the method might not be defined.\n * If not provided, it will check the 'Autocomplete IRI discovery search' method from the additional extraction\n * methods.\n */\n $scope.checkAutocompleteIndexEnabled = (method) => {\n if (!method) {\n method = $scope.agentFormModel.additionalExtractionMethods.additionalExtractionMethods\n .find((extractionMethod) => extractionMethod.method === AdditionalExtractionMethod.AUTOCOMPLETE_IRI_DISCOVERY_SEARCH);\n }\n // If the method is not selected, we don't need to check the autocomplete index status.\n // Also, if the repository id is not set, we can't check the autocomplete index status.\n if (method && !method.selected || !$scope.agentFormModel.repositoryId) {\n return;\n }\n const selectedRepositoryInfo = getSelectedRepositoryInfo();\n AutocompleteService.checkAutocompleteStatus(selectedRepositoryInfo.repositoryId, selectedRepositoryInfo.repositoryLocation)\n .then((autocompleteEnabled) => {\n $scope.autocompleteEnabled = autocompleteEnabled;\n $scope.agentSettingsForm.$setValidity('autocompleteDisabled', autocompleteEnabled);\n })\n .catch((error) => {\n $scope.agentSettingsForm.$setValidity('autocompleteDisabled', false);\n toastr.error(getError(error));\n });\n }\n\n /**\n * Restores the default system instructions.\n */\n $scope.onRestoreDefaultSystemInstructions = () => {\n $scope.agentFormModel.instructions.systemInstruction = $scope.agentFormModel.instructions.systemInstructionCopy;\n };\n\n /**\n * Restores the default user instructions.\n */\n $scope.onRestoreDefaultUserInstructions = () => {\n $scope.agentFormModel.instructions.userInstruction = $scope.agentFormModel.instructions.userInstructionCopy;\n };\n\n /**\n * Handles the change in the temperature field. This is needed because the high temperature warning should be shown\n * when the temperature is higher than 1.\n */\n $scope.onTemperatureChange = () => {\n $scope.showHighTemperatureWarning = $scope.agentFormModel.temperature.value > 1;\n };\n\n /**\n * Handles the change in the system instructions field.\n */\n $scope.onSystemInstructionChange = () => {\n if ($scope.agentFormModel.instructions.systemInstruction !== '' && !$scope.showSystemInstructionWarning) {\n $scope.showSystemInstructionWarning = true;\n ModalService.openModalAlert({\n title: $translate.instant('ttyg.agent.create_agent_modal.form.system_instruction.overriding_system_instruction_warning.title'),\n message: $translate.instant('ttyg.agent.create_agent_modal.form.system_instruction.overriding_system_instruction_warning.body')\n }).result\n .then(function () {\n // Do nothing, just warning the user\n });\n }\n if ($scope.agentFormModel.instructions.systemInstruction === '') {\n $scope.showSystemInstructionWarning = false;\n }\n };\n\n /**\n * Opens the agent instructions explain modal.\n */\n $scope.onExplainAgentSettings = () => {\n const agentPayload = $scope.agentFormModel.toPayload();\n TTYGService.explainAgentSettings(agentPayload)\n .then((agentInstructionsExplain) => {\n const options = {\n templateUrl: 'js/angular/ttyg/templates/modal/agent-instructions-explain-modal.html',\n controller: 'AgentInstructionsExplainModalController',\n windowClass: 'agent-instructions-explain-modal',\n backdrop: 'static',\n resolve: {\n dialogModel: function () {\n return {\n agentInstructionsExplain\n };\n }\n },\n size: 'lg'\n };\n $uibModal.open(options).result\n .then(() => {\n // Do nothing\n });\n }).catch((error) => {\n toastr.error(getError(error, 0, TTYG_ERROR_MSG_LENGTH));\n });\n };\n\n $scope.getSuggestions = (event) => {\n const inputText = event.target.value;\n AutocompleteRestService.getAutocompleteSuggestions(inputText)\n .then(mapUriAsNtripleAutocompleteResponse)\n .then((suggestions) => {\n $scope.autocompleteSuggestions = suggestions.map(item => ({text: item.value}));\n }).catch((error) => {\n toastr.error(getError(error, 0, TTYG_ERROR_MSG_LENGTH));\n });\n }\n\n // =========================\n // Private functions\n // =========================\n\n /**\n * Resolves the hint message for the agent model property.\n * This is needed because the hint contains a html link that\n * should be properly rendered.\n * @return {*}\n */\n function getModelHelpMessage() {\n // The hint contains a html link which should be properly rendered.\n const message = decodeHTML($translate.instant('ttyg.agent.create_agent_modal.form.model.hint'));\n return $sce.trustAsHtml(message);\n }\n\n /**\n * Mapping of agent operations to their respective handlers.\n * @type {{[AGENT_OPERATION.EDIT]: (function(*): Promise<void>), [AGENT_OPERATION.CLONE]: (function(*): Promise<void>), [AGENT_OPERATION.CREATE]: (function(*): Promise<void>)}}\n */\n const agentOperationHandlers = {\n [AGENT_OPERATION.CREATE]: (payload) => createAgent(payload),\n [AGENT_OPERATION.EDIT]: (payload) => editAgent(payload),\n [AGENT_OPERATION.CLONE]: (payload) => cloneAgent(payload)\n };\n\n /**\n * Creates a new agent with the given payload and closes the modal if no errors occur.\n * @param {*} newAgentPayload - the payload for the new agent.\n * @return {Promise<void>}\n */\n const createAgent = (newAgentPayload) => {\n $scope.savingAgent = true;\n return TTYGService.createAgent(newAgentPayload)\n .then((agentModel) => {\n $uibModalInstance.close(agentModel);\n toastr.success($translate.instant('ttyg.agent.messages.agent_save_successfully', {agentName: agentModel.name}));\n })\n .catch((error) => {\n toastr.error(getError(error, 0, TTYG_ERROR_MSG_LENGTH));\n })\n .finally(() => {\n $scope.savingAgent = false;\n });\n };\n\n /**\n * Sends the edit agent payload to the server and closes the modal if no errors occur.\n * @param {*} agentPayload - the payload for the agent to be edited.\n * @return {Promise<void>}\n */\n const editAgent = (agentPayload) => {\n $scope.savingAgent = true;\n return TTYGService.editAgent(agentPayload)\n .then((updatedAgent) => {\n $uibModalInstance.close(updatedAgent);\n toastr.success($translate.instant('ttyg.agent.messages.agent_save_successfully', {agentName: updatedAgent.name}));\n })\n .catch((error) => {\n toastr.error(getError(error, 0, TTYG_ERROR_MSG_LENGTH));\n })\n .finally(() => {\n $scope.savingAgent = false;\n });\n };\n\n /**\n * Clones the agent with the given payload and closes the modal if no errors occur.\n * @param {*} agentPayload\n * @return {Promise<void>}\n */\n const cloneAgent = (agentPayload) => {\n $scope.savingAgent = true;\n return TTYGService.createAgent(agentPayload)\n .then((updatedAgent) => {\n $uibModalInstance.close(updatedAgent);\n toastr.success($translate.instant(\"ttyg.agent.messages.agent_save_successfully\", {agentName: updatedAgent.name}));\n })\n .catch((error) => {\n toastr.error(getError(error, 0, TTYG_ERROR_MSG_LENGTH));\n })\n .finally(() => {\n $scope.savingAgent = false;\n });\n };\n\n const logAndShowError = (error, errorMessageKey) => {\n console.error(error);\n toastr.error($translate.instant(errorMessageKey));\n };\n\n const setExtractionMethodValidityStatus = () => {\n $scope.agentSettingsForm.extractionMethods.$setValidity('required', $scope.agentFormModel.hasExtractionMethodSelected());\n };\n\n const handleFTSExtractionMethodPanelToggle = (extractionMethod) => {\n $scope.checkIfFTSEnabled();\n };\n\n /**\n * Returns the repository info model for the selected repository in the form.\n *\n * @return {{repositoryLocation: (*|undefined), repositoryId: (*|undefined)}}\n */\n const getSelectedRepositoryInfo = () => {\n const selectRepositoryInfo = $scope.activeRepositoryList.find((repository) => repository.value === $scope.agentFormModel.repositoryId);\n return {\n repositoryId: selectRepositoryInfo ? selectRepositoryInfo.data.repository.id : undefined,\n repositoryLocation: selectRepositoryInfo ? selectRepositoryInfo.data.repository.location : undefined\n };\n };\n\n const handleSimilaritySearchExtractionMethodPanelToggle = (extractionMethod) => {\n if (!extractionMethod.selected) {\n // clear the validation status if method is deselected.\n $scope.agentSettingsForm.$setValidity('missingIndex', true);\n }\n if (!$scope.agentFormModel.repositoryId) {\n return;\n }\n if (extractionMethod.expanded) {\n $scope.extractionMethodLoaderFlags[extractionMethod.method] = true;\n const selectedRepositoryInfo = getSelectedRepositoryInfo();\n SimilarityService.getIndexesAsMenuModel(selectedRepositoryInfo.repositoryId, selectedRepositoryInfo.repositoryLocation)\n .then((indexes) => {\n $scope.similarityIndexes = indexes;\n $scope.agentSettingsForm.$setValidity('missingIndex', !extractionMethod.selected || !!(indexes && indexes.length));\n updateSelectedSimilarityIndex($scope.similarityIndexes, extractionMethod);\n })\n .catch((error) => {\n $scope.agentSettingsForm.$setValidity('missingIndex', false);\n logAndShowError(error, 'ttyg.agent.messages.error_similarity_indexes_loading');\n })\n .finally(() => {\n $scope.extractionMethodLoaderFlags[extractionMethod.method] = false;\n });\n }\n };\n\n /**\n * Updates the selected similarity index for the extraction method.\n *\n * @param {SelectMenuOptionsModel[]} indexes - The list of all available similarity indexes.\n * @param {Object} extractionMethod - The extraction method object containing the currently selected similarity index.\n */\n const updateSelectedSimilarityIndex = (indexes, extractionMethod) => {\n if (indexes.length === 0) {\n // If no similarity indexes are available, clear the similarity index.\n extractionMethod.similarityIndex = null;\n return;\n }\n\n // If the selected index is not found in the current list, default to the first index.\n const selectedIndex = indexes.find((index) => index.value === extractionMethod.similarityIndex);\n extractionMethod.similarityIndex = selectedIndex ? selectedIndex.value : indexes[0].value;\n };\n\n const handleRetrievalConnectorExtractionMethodPanelToggle = (extractionMethod) => {\n if (!$scope.agentFormModel.repositoryId) {\n return;\n }\n if (!extractionMethod.selected) {\n // clear the validation status if method is deselected.\n $scope.agentSettingsForm.$setValidity('missingConnector', true);\n }\n\n if (extractionMethod.expanded) {\n $scope.extractionMethodLoaderFlags[extractionMethod.method] = true;\n const selectedRepositoryInfo = getSelectedRepositoryInfo();\n ConnectorsService.getConnectorPrefixByName(CHAT_GPT_RETRIEVAL_CONNECTOR_NAME, selectedRepositoryInfo.repositoryId, selectedRepositoryInfo.repositoryLocation)\n .then((prefix) => ConnectorsService.getConnectorsByTypeAsSelectMenuOptions(prefix, selectedRepositoryInfo.repositoryId, selectedRepositoryInfo.repositoryLocation))\n .then((connectors) => {\n $scope.retrievalConnectors = connectors;\n $scope.agentSettingsForm.$setValidity('missingConnector', !extractionMethod.selected || !!(connectors && connectors.length));\n updateSelectedRetrievalConnector($scope.retrievalConnectors, extractionMethod);\n\n })\n .catch((error) => {\n $scope.agentSettingsForm.$setValidity('missingConnector', false);\n logAndShowError(error, 'ttyg.agent.messages.error_retrieval_connectors_loading');\n })\n .finally(() => {\n $scope.extractionMethodLoaderFlags[extractionMethod.method] = false;\n });\n }\n };\n\n /**\n * Updates the selected retrieval connector for the extraction method.\n *\n * @param {SelectMenuOptionsModel[]} retrievalConnectors - The list of all available connectors.\n * @param {Object} extractionMethod - The extraction method object containing the currently selected retrieval connector.\n */\n const updateSelectedRetrievalConnector = (retrievalConnectors, extractionMethod) => {\n if (retrievalConnectors.length === 0) {\n // If no connector are available, clear the similarity index.\n extractionMethod.retrievalConnectorInstance = null;\n return;\n }\n const selectedConnector = retrievalConnectors.find((connector) => connector.value === extractionMethod.retrievalConnectorInstance);\n\n // If the selected connector is not found in the current list, default to the first index.\n extractionMethod.retrievalConnectorInstance = selectedConnector\n ? selectedConnector.value\n : retrievalConnectors[0].value;\n };\n\n const extractionPanelToggleHandlers = {\n [ExtractionMethod.FTS_SEARCH]: (extractionMethod) => handleFTSExtractionMethodPanelToggle(extractionMethod),\n [ExtractionMethod.SPARQL]: (extractionMethod) => {\n },\n [ExtractionMethod.SIMILARITY]: (extractionMethod) => handleSimilaritySearchExtractionMethodPanelToggle(extractionMethod),\n [ExtractionMethod.RETRIEVAL]: (extractionMethod) => handleRetrievalConnectorExtractionMethodPanelToggle(extractionMethod)\n };\n\n const additionalExtractionPanelToggleHandlers = {\n [AdditionalExtractionMethod.AUTOCOMPLETE_IRI_DISCOVERY_SEARCH]: (extractionMethod) => handleAutocompleteExtractionMethodPanelToggle(extractionMethod),\n [AdditionalExtractionMethod.IRI_DISCOVERY_SEARCH]: () => {\n },\n };\n\n const handleAutocompleteExtractionMethodPanelToggle = (extractionMethod) => {\n if (!extractionMethod.selected) {\n // clear the validation status if method is deselected.\n $scope.agentSettingsForm.$setValidity('autocompleteDisabled', true);\n }\n $scope.checkAutocompleteIndexEnabled(extractionMethod);\n }\n\n const refreshValidations = (clearIndexSelection = false, clearRetrievalConnectorSelection = false) => {\n $scope.checkIfFTSEnabled();\n $scope.updateSimilaritySearchPanel(clearIndexSelection);\n $scope.updateRetrievalConnectorPanel(clearRetrievalConnectorSelection);\n $scope.checkAutocompleteIndexEnabled();\n };\n\n const onTabVisibilityChanged = () => {\n if (!document.hidden) {\n refreshValidations();\n }\n };\n\n // =========================\n // Subscriptions\n // =========================\n\n const removeAllSubscribers = () => {\n document.removeEventListener(\"visibilitychange\", onTabVisibilityChanged);\n };\n\n document.addEventListener(\"visibilitychange\", onTabVisibilityChanged);\n\n // Deregister the watcher when the scope/directive is destroyed\n $scope.$on('$destroy', removeAllSubscribers);\n\n\n // =========================\n // Initialization\n // =========================\n\n const init = () => {\n // Set repository id to null if it is missing from the list of active repositories\n const selectedRepositoryInfo = getSelectedRepositoryInfo();\n if (!selectedRepositoryInfo.repositoryId) {\n $scope.agentFormModel.repositoryId = null;\n }\n // Delay the validation status setting because angular form ngmodel is not present immediately\n setTimeout(setExtractionMethodValidityStatus, 0);\n };\n init();\n}\n"],"names":["SimilarityIndexStatus","status","CREATING","BUILDING","BUILT","REBUILDING","OUTDATED","INTERRUPTED","OBSOLETE","FAILED","SimilarityIndex","constructor","this","analyzer","infer","options","sameAs","searchQuery","selectQuery","stopList","undefined","name","type","SimilarityIndexType","TEXT","analogicalQuery","inputIndex","isLiteralIndex","isTextType","isTextLiteralType","isPredicationType","isCreatingStatus","isBuildingStatus","isBuiltStatus","isRebuildingStatus","isOutdatedStatus","isInterruptedStatus","isObsoleteStatus","isFailedStatus","AgentInstructionsExplainModalController","$scope","$uibModalInstance","ModalService","$translate","dialogModel","agentInstructionsExplain","close","dismiss","onCloseAgentInstructionsExplainModal","subscriptions","$on","onDestroy","forEach","subscription","angular","module","controller","$inject","ConnectorTypesListModel","data","_connectors","connectors","getConnectorByName","find","connector","value","ConnectorTypeModel","_name","_prefix","prefix","ConnectorListModel","ConnectorModel","_settings","ConnectorSettingsModel","settings","values","mapIndexesResponseToSimilarityIndex","responseData","map","index","similarityIndex","TEXT_LITERAL","PREDICATION","SimilarityService","SimilarityRestService","getIndexes","repositoryId","repositoryLocation","then","response","getIndexesAsMenuModel","indexesModel","SelectMenuOptionsModel","label","factory","connectorTypesListMapper","connectorListModel","Object","keys","key","connectorsMapper","connectorResponse","ConnectorsRestService","CONNECTORS_ENDPOINT","$http","getConnectors","get","headers","initConnector","hasConnector","checkConnector","post","ExternalIntegrationConfigurationModalController","externalIntegrationConfiguration","difyExtension","difyExtensionUrl","queryMethods","queryMethodsUrl","agentId","agentName","onCloseExternalIntegrationConfigurationModal","ConnectorsService","getConnectorTypes","getConnectorsByType","encodeURIComponent","getConnectorPrefixByName","connectorTypesModel","getConnectorsByTypeAsSelectMenuOptions","connectorsModel","SIMILARITY_ENDPOINT","getSearchQueries","rebuildIndex","createIndex","deleteIndex","delete","getSamples","getQuery","params","indexName","indexOptions","indexStopList","query","queryInference","querySameAs","viewType","indexAnalyzer","saveSearchQuery","method","url","noCancelOnRouteChange","ExternalIntegrationModalService","$uibModal","LocationsRestService","toastr","open","agent","getExternalUrl","baseUrl","id","buildDialogModel","templateUrl","windowClass","backdrop","resolve","result","catch","error","getError","TTYG_ERROR_MSG_LENGTH","AgentSettingsModalController","RepositoriesRestService","$sce","UriUtils","TTYGContextService","TTYGService","ExtractionMethodTemplates","AutocompleteService","AutocompleteRestService","productInfo","AGENT_OPERATION","operation","savingAgent","agentFormModel","activeRepositoryInfo","extractionMethodLoaderFlags","ExtractionMethod","SIMILARITY","activeRepositoryList","extractionMethods","additionalExtractionMethods","AdditionalExtractionMethod","showAdvancedSettings","showHighTemperatureWarning","showSystemInstructionWarning","similarityIndexes","retrievalConnectors","ftsEnabled","autocompleteSuggestions","toggleExtractionMethod","extractionMethod","expanded","selected","agentSettingsForm","$setTouched","setExtractionMethodValidityStatus","extractionPanelToggleHandlers","onExtractionMethodPanelToggle","toggleCollapse","toggleAdditionalExtractionMethod","checkAutocompleteIndexEnabled","additionalExtractionPanelToggleHandlers","onAdditionalExtractionMethodPanelToggle","helpInfoForModel","ttygHelpInfo","message","decodeHTML","instant","trustAsHtml","getModelHelpMessage","linkText","documentationUrl","DocumentationUrlResolver","getDocumentationUrl","productShortVersion","getFTSDisabledHelpMessage","repositoryEditPage","goToAutocompleteView","event","preventDefault","emit","TTYGEventName","GO_TO_AUTOCOMPLETE_INDEX_VIEW","goToCreateSimilarityView","GO_TO_CREATE_SIMILARITY_VIEW","goToConnectorsView","GO_TO_CONNECTORS_VIEW","ok","agentPayload","toPayload","agentOperationHandlers","cancel","updateSimilaritySearchPanel","clearIndexSelection","similaritySearchExtractionMethod","assistantExtractionMethods","getSimilarityExtractionMethod","handleSimilaritySearchExtractionMethodPanelToggle","updateRetrievalConnectorPanel","clearSelection","retrievalExtractionExtractionMethod","getRetrievalExtractionMethod","retrievalConnectorInstance","handleRetrievalConnectorExtractionMethodPanelToggle","checkIfFTSEnabled","getFTSSearchExtractionMethod","FTS_SEARCH","getRepositoryModel","repositoryModel","getParamValue","REPOSITORY_PARAMS","enableFtsIndex","logAndShowError","finally","$setValidity","openExternalIntegrationConfig","onRepositoryChange","refreshValidations","AUTOCOMPLETE_IRI_DISCOVERY_SEARCH","selectedRepositoryInfo","getSelectedRepositoryInfo","checkAutocompleteStatus","autocompleteEnabled","onRestoreDefaultSystemInstructions","instructions","systemInstruction","systemInstructionCopy","onRestoreDefaultUserInstructions","userInstruction","userInstructionCopy","onTemperatureChange","temperature","onSystemInstructionChange","openModalAlert","title","onExplainAgentSettings","explainAgentSettings","size","getSuggestions","inputText","target","getAutocompleteSuggestions","mapUriAsNtripleAutocompleteResponse","suggestions","item","text","CREATE","payload","createAgent","EDIT","editAgent","CLONE","cloneAgent","newAgentPayload","agentModel","success","updatedAgent","errorMessageKey","console","hasExtractionMethodSelected","selectRepositoryInfo","repository","location","indexes","length","updateSelectedSimilarityIndex","selectedIndex","updateSelectedRetrievalConnector","selectedConnector","SPARQL","RETRIEVAL","handleAutocompleteExtractionMethodPanelToggle","IRI_DISCOVERY_SEARCH","clearRetrievalConnectorSelection","onTabVisibilityChanged","document","hidden","addEventListener","removeAllSubscribers","removeEventListener","setTimeout","constant"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const __webpack_id__=96089;export const __webpack_ids__=[36633,73964,96089];export const __webpack_modules__={36633:(e,t,n)=>{n.r(t),n.d(t,{CHAT_MESSAGE_ROLE:()=>s,ChatMessageModel:()=>r});class r{constructor(e){this._id=e.id,this._role=e.role,this._message=e.message,this._timestamp=1e3*e.timestamp,this.tokenUsageInfo=e.tokenUsageInfo}get id(){return this._id}set id(e){this._id=e}get role(){return this._role}set role(e){this._role=e}get message(){return this._message}set message(e){this._message=e}get timestamp(){return this._timestamp}set timestamp(e){this._timestamp=e}}const s={USER:"user",ASSISTANT:"assistant"}},73964:(e,t,n)=>{n.r(t),n.d(t,{TtygRestServiceFakeBackend:()=>o});var r=n(98980),s=n(36633);const a=2e3;class o{constructor(){this.conversations=[...i]}getConversations(){return new Promise(e=>{setTimeout(()=>e({data:(0,r.cloneDeep)(this.conversations)}),2e3)})}getConversation(e){return new Promise(t=>{setTimeout(()=>t({data:(0,r.cloneDeep)(this.conversations.find(t=>t.id===e))}),2e3)})}renameConversation(e,t){const n=this.conversations.find(t=>t.id===e);return n&&(n.name=t.name),Promise.resolve({data:(0,r.cloneDeep)(n)})}exportConversation(e){return console.log("Exporting conversation with id: ",e),Promise.resolve()}askQuestion(e){const t={id:"msg_Bn07kVDCYT1qmgu1G7Zw0KNe",conversationId:e.conversationId,agentId:null,message:`${e.question}`,role:s.CHAT_MESSAGE_ROLE.USER,timestamp:Math.floor(Date.now()/1e3)},n=this.conversations.find(t=>t.id===e.conversationId),r={id:e.conversationId,name:n?n.name:"Han Solo is a character in the Star Wars...",timestamp:Math.floor(Date.now()/1e3),messages:[{id:"msg_Bn07kVDCYT1qmgu1G7Zw0KNe_"+Date.now(),conversationId:e.conversationId,role:s.CHAT_MESSAGE_ROLE.ASSISTANT,agentId:e.agentId,message:'Certainly! Here\'s a random example that incorporates code, JSON, and a SPARQL query:\n\n### Code (Python)\n\n```python\ndef greet(name):\n return f"Hello, {name}!"\n\nprint(greet("World"))\n```\n\n### JSON\n\n```json\n{\n "greeting": "Hello",\n "target": "World",\n "language": "English"\n}\n```\n\n### SPARQL Query\n\n```sparql\nSELECT ?person ?name\nWHERE {\n ?person a ex:Person .\n ?person ex:hasName ?name .\n}\nLIMIT 10\n```\n\nThis example demonstrates a simple Python function for greeting, a JSON object representing a greeting structure, and a SPARQL query to retrieve names of persons from a dataset.',timestamp:Math.floor(Date.now()/1e3),name:null},{id:"msg_Bn07kVDCYT1qmgu1G7Zw0KNeс_"+Date.now(),conversationId:e.conversationId,role:s.CHAT_MESSAGE_ROLE.ASSISTANT,agentId:e.agentId,message:`Reply to '${e.question}' It seems there was an error with the query. Let me rectify this and try again.`,timestamp:Math.floor(Date.now()/1e3),name:null}]};return n&&(n.messages.push(t),n.messages.push(...r.messages)),new Promise(e=>setTimeout(()=>e({data:r}),2e3))}continueChatRun(e){alert("continueChatRun() not implemented")}deleteConversation(e){return this.conversations=this.conversations.filter(t=>t.id!==e),new Promise(e=>setTimeout(()=>e(),2e3))}createConversation(e){const t={id:`thread_${this.conversations.length}`,name:`Thread ${this.conversations.length}`,timestamp:Math.floor(Date.now()/1e3),messages:[]};this.conversations.unshift(t);const n=(0,r.cloneDeep)(e);return n.conversationId=t.id,this.askQuestion(n)}getAgents(){return new Promise(e=>setTimeout(()=>e({data:[...l]}),2e3))}getAgent(e){return Promise.resolve({data:(0,r.cloneDeep)(l.find(t=>t.id===e))})}createAgent(e){return"err"===e.name?new Promise((e,t)=>setTimeout(()=>t({status:500,message:"Internal Server Error"}),a)):(l.push(e),new Promise(t=>setTimeout(()=>t({data:e}),a)))}editAgent(e){return"err"===e.name?new Promise((e,t)=>setTimeout(()=>t({status:500,message:"Internal Server Error"}),2e3)):(l=l.map(t=>t.id===e.id?e:t),new Promise(t=>setTimeout(()=>t({data:e}),a)))}deleteAgent(e){return l=l.filter(t=>t.id!==e),Promise.resolve()}getAgentDefaultValues(){return Promise.resolve({data:u})}explainAgentSettings(){return Promise.resolve({data:{}})}simulateHttpError(){return Promise.reject({status:500,message:"Internal Server Error"})}explainResponse(e){return Promise.resolve({data:{conversationId:e.conversationId,answerId:e.answerId,queryMethods:[{name:"sparql_query",rawQuery:'SELECT ?character ?name ?height WHERE {\n ?character a voc:Character;\n rdfs:label ?name;\n voc:height ?height.\n FILTER(?name = "Luke Skywalker" || ?name = "Leia Organa")\n}',query:'SELECT ?character ?name ?height WHERE {\n ?character a voc:Character;\n rdfs:label ?name;\n voc:height ?height.\n FILTER(?name = "Luke Skywalker" || ?name = "Leia Organa")\n}',queryType:"sparql",errorOutput:"Error: org.eclipse.rdf4j.query.MalformedQueryException: org.eclipse.rdf4j.query.parser.sparql.ast.VisitorException: QName 'voc:Character' uses an undefined prefix"},{name:"retrieval_search",rawQuery:'{"queries":[{"query":"pilots that work with Luke Skywalker","filter":{"document_id":"https://swapi.co/resource/human/1"},"top_k":3}]}',query:'{\n "queries" : [ {\n "query" : "pilots that work with Luke Skywalker",\n "filter" : {\n "document_id" : "https://swapi.co/resource/human/1"\n },\n "top_k" : 3\n } ]\n}',queryType:"json",errorOutput:null},{name:"iri_discovery",rawQuery:"Luke Skywalker",query:"PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\nPREFIX skos: <http://www.w3.org/2004/02/skos/core#>\nPREFIX onto: <http://www.ontotext.com/>\nSELECT ?label ?iri {\n ?label onto:fts ('''Luke~ Skywalker~''' '*') .\n ?iri rdfs:label|skos:prefLabel ?label .\n}",queryType:"sparql",errorOutput:null},{name:"sparql_query",rawQuery:"SELECT ?height WHERE {\n <https://swapi.co/resource/human/1> voc:height ?height.\n}",query:"SELECT ?height WHERE {\n <https://swapi.co/resource/human/1> voc:height ?height.\n}",queryType:"sparql",errorOutput:"Error: org.eclipse.rdf4j.query.MalformedQueryException: org.eclipse.rdf4j.query.parser.sparql.ast.VisitorException: QName 'voc:height' uses an undefined prefix"},{name:"sparql_query",rawQuery:'PREFIX voc: <https://swapi.co/vocabulary/>\nSELECT ?name ?height WHERE {\n ?character voc:height ?height;\n rdfs:label ?name.\n FILTER(?name = "Luke Skywalker" || ?name = "Leia Organa")\n}',query:'PREFIX voc: <https://swapi.co/vocabulary/>\nSELECT ?name ?height WHERE {\n ?character voc:height ?height;\n rdfs:label ?name.\n FILTER(?name = "Luke Skywalker" || ?name = "Leia Organa")\n}',queryType:"sparql",errorOutput:null},{name:"fts_search",rawQuery:"Second Luke",query:"PREFIX onto: <http://www.ontotext.com/>\nDESCRIBE ?iri {\n\t?x onto:fts '''Second Luke''' .\n\t{\n\t\t?x ?p ?iri .\n\t} union {\n\t\t?iri ?p ?x .\n\t}\n}",queryType:"sparql",errorOutput:null},{name:"similarity_search",rawQuery:"Second Luke",query:"PREFIX onto: <http://www.ontotext.com/>\nDESCRIBE ?iri {\n\t?x onto:fts '''Second Luke''' .\n\t{\n\t\t?x ?p ?iri .\n\t} union {\n\t\t?iri ?p ?x .\n\t}\n}",queryType:"sparql",errorOutput:null},{name:"iri_discovery",rawQuery:"Luke Skywalker",query:"PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\nPREFIX skos: <http://www.w3.org/2004/02/skos/core#>\nPREFIX onto: <http://www.ontotext.com/>\nSELECT ?label ?iri {\n ?label onto:fts ('''Luke~ Skywalker~''' '*') .\n ?iri rdfs:label|skos:prefLabel ?label .\n}",queryType:"sparql",errorOutput:null},{name:"sparql_query",rawQuery:"SELECT ?name ?height WHERE { ?character voc:name ?name ; voc:height ?height . FILTER (?name = 'Luke Skywalker' || ?name = 'Leia Organa') }",query:"SELECT ?name ?height WHERE { ?character voc:name ?name ; voc:height ?height . FILTER (?name = 'Luke Skywalker' || ?name = 'Leia Organa') }",queryType:"sparql",errorOutput:"Error: java.lang.IllegalArgumentException: The following IRIs are not used in the data stored in GraphDB: https://swapi.co/vocabulary/name"},{name:"sparql_query",rawQuery:"SELECT ?character ?height WHERE { ?character voc:height ?height . FILTER (?character = <https://swapi.co/resource/human/1> || ?character = <https://swapi.co/resource/human/5>) }",query:"SELEdCT ?character ?height WHERE { ?character voc:height ?height . FILTER (?character = <https://swapi.co/resource/human/1> || ?character = <https://swapi.co/resource/human/5>) }",queryType:"sparql",errorOutput:null}]}})}}const i=[{id:"thread_jdQBvbkaU6JPoO48oFbC54dA",name:"Very long chat name which does not fit in the sidebar",timestamp:1725235200,messages:[]},{id:"thread_jdQBvbkaU6JPoO48oQaL76dB",name:"Test chat 2",timestamp:1725238800,messages:[]},{id:"thread_jdQBvbkaU6JPoO48oQaL76dC",name:"Test chat 3",timestamp:1725242400,messages:[]},{id:"thread_jdQBvbkaU6JPoO48oFbC54dD",name:"Test chat 4",timestamp:1697331600,messages:[]}];let l=[{id:"asst_gAPcrHQQ9ZIxD5eXWH2BNFfo",name:"agent-1",model:"gpt-4o",temperature:0,topP:0,seed:null,repositoryId:"starwars",instructions:{systemInstruction:"\n\n",userInstruction:""},assistantExtractionMethods:[{ftsMethod:"fts_search"}],maxNumberOfTriplesPerCall:null},{id:"asst_qMyCpCBmqxV9I2B8UoMfFzc5",name:"agent-2",model:"gpt-4o",temperature:0,topP:0,seed:null,repositoryId:"Non existing repo",instructions:{systemInstruction:"string\n\nstring",userInstruction:"string"},assistantExtractionMethods:[{ftsMethod:"fts_search"}],maxNumberOfTriplesPerCall:null},{id:"asst_Cr0RxobrY07WpOvvyQilEWMI",name:"Databricks-general-unbiased",model:"gpt-4o-2024-08-06",temperature:1,topP:1,seed:null,repositoryId:"starwars",instructions:{systemInstruction:"You are helpful assistant in discovering information regarding diagnostic biomarkers.",userInstruction:null},assistantExtractionMethods:[],maxNumberOfTriplesPerCall:null},{id:"asst_5GxNYTdaOh7Tl6lLl6Pya2aH",name:"Databricks-biomarkers",model:"gpt-3.5-turbo-0125",temperature:1,topP:1,seed:null,repositoryId:"biomarkers",instructions:{systemInstruction:"You're a helpful assistant in discovering new diagnostic biomarkers for given diseases. I'll submit a set of publication abstracts discussing given disease and your task is to find in the abstracts any potential new biomarkers which are not yet listed in the appropriate databases. Each abstract is preceded by identifier - its PubMed id called for short PMID. \n\nReturn the set of biomarkers listed one per row, each marker followed by the | and PMID of the respective abstract if was mentioned in.\n\nExample: \nInput: 36418457\t[Amyotrophic lateral sclerosis (ALS) is a genetically and phenotypically heterogeneous disease results in the loss of motor neurons. Mounting information points to involvement of other systems including cognitive impairment. However, neither the valid biomarker for diagnosis nor effective therapeutic intervention is available for ALS. The present study is aimed at identifying potentially genetic biomarker that improves the diagnosis and treatment of ALS patients based on the data of the Gene Expression Omnibus. We retrieved datasets and conducted a weighted gene co-expression network analysis (WGCNA) to identify ALS-related co-expression genes. Functional enrichment analysis was performed to determine the features and pathways of the main modules. We then constructed an ALS-related model using the least absolute shrinkage and selection operator (LASSO) regression analysis and verified the model by the receiver operating characteristic (ROC) curve. Besides we screened the non-preserved gene modules in FTD and ALS-mimic disorders to distinct ALS-related genes from disorders with overlapping genes and features. Altogether, 4198 common genes between datasets with the most variation were analyzed and 16 distinct modules were identified through WGCNA. Blue module had the most correlation with ALS and functionally enriched in pathways of neurodegeneration-multiple diseases', 'amyotrophic lateral sclerosis', and 'endocytosis' KEGG terms. Further, some of other modules related to ALS were enriched in 'autophagy' and 'amyotrophic lateral sclerosis'. The 30 top of hub genes were recruited to a LASSO regression model and 5 genes (BCLAF1, GNA13, ARL6IP5, ARGLU1, and YPEL5) were identified as potentially diagnostic ALS biomarkers with validating of the ROC curve and AUC value.]\n\nYour response: BCLAF1|36418457\nGNA13|36418457\nARL6IP5|36418457\nARGLU1|36418457\nYPEL5|36418457",userInstruction:null},assistantExtractionMethods:[],maxNumberOfTriplesPerCall:null},{id:"asst_qMyCpCBmqxV9I2B8UoMfFzc555",name:"agent with long name long long long long long long long long long long long long",model:"gpt-4o",temperature:0,topP:0,seed:null,repositoryId:"Non existing repo",instructions:{systemInstruction:"string\n\nstring",userInstruction:"string"},assistantExtractionMethods:[{ftsMethod:"fts_search"}],maxNumberOfTriplesPerCall:null},{id:"asst_qMyCpCBmqxV9I2B8UoMfFzcр555",name:"Long_agent_with_long_name_long_long_long_long_long_long_long_long_long_long_long_long",model:"gpt-4o",temperature:0,topP:0,seed:null,repositoryId:"Non existing repo",instructions:{systemInstruction:"string\n\nstring",userInstruction:"string"},assistantExtractionMethods:[{ftsMethod:"fts_search"}],maxNumberOfTriplesPerCall:null},{id:"asst_qMyCpCBmqxV9I2B8UoMfFzc55д5",name:"agent with long name long long long long long long long long long long long long",model:"gpt-4o",temperature:0,topP:0,seed:null,repositoryId:"starwars",instructions:{systemInstruction:"string\n\nstring",userInstruction:"string"},assistantExtractionMethods:[{ftsMethod:"fts_search"}],maxNumberOfTriplesPerCall:null},{id:"asst_qMyCpCBmqxV9I2B8UoMfFzcя555",name:"Long_agent_with_long_name_long_long_long_long_long_long_long_long_long_long_long_long",model:"gpt-4o",temperature:0,topP:0,seed:null,repositoryId:"starwars",instructions:{systemInstruction:"string\n\nstring",userInstruction:"string"},assistantExtractionMethods:[{ftsMethod:"fts_search"}],maxNumberOfTriplesPerCall:null}];const u={id:"id",name:"Quadro",model:"gpt-4o",temperature:.7,topP:1,seed:0,repositoryId:"test-repository",instructions:{systemInstruction:"You are a helpful, knowledgeable, and friendly assistant. Your goal is to provide clear and accurate information while being polite, respectful, and professional.",userInstruction:"If you need to write a SPARQL query, use only the classes and properties provided in the schema and don't invent or guess any. Always try to return human-readable names or labels and not only the IRIs. If SPARQL fails to provide the necessary information you can try another tool too."},assistantExtractionMethods:[{method:"sparql_search",ontologyGraph:"http://example.com",sparqlQuery:"CONSTRUCT {?s ?p ?o} WHERE {GRAPH <http://example.org/ontology> {?s ?p ?o .}}"},{method:"fts_search",maxNumberOfTriplesPerCall:0},{method:"similarity_search",similarityIndex:"similarity-index",similarityIndexThreshold:.6,maxNumberOfTriplesPerCall:0},{method:"retrieval_search",retrievalConnectorInstance:"retrieval-connector",queryTemplate:'{"query": "string"}',maxNumberOfTriplesPerCall:0}],additionalExtractionMethods:[{method:"iri_discovery_search"}]}},96089:(e,t,n)=>{n.r(t);var r=n(73964);angular.module("graphdb.framework.rest.ttyg.service",[]).factory("TTYGRestService",l),l.$inject=["$http"];const s="rest/chat/conversations",a="rest/chat/agents",o=`${s}/explain`,i=!1;function l(e){const t=new r.TtygRestServiceFakeBackend;return{getConversation:n=>i?t.getConversation(n):e.get(`${s}/${n}`),renameConversation:(n,r)=>i?t.renameConversation(n,r):e.put(`${s}/${n}`,r),exportConversation:n=>i?t.exportConversation(n):e.get(`${s}/export/${n}`,{responseType:"blob"}),askQuestion:n=>i?t.askQuestion(n):e.post(`${s}`,n),continueChatRun:n=>i?t.continueChatRun(n):e.post(`${s}/continue`,n),getConversations:()=>i?t.getConversations():e.get(s),deleteConversation:n=>i?t.deleteConversation(n):e.delete(`${s}/${n}`),createConversation:(n={})=>i?t.createConversation(n):e.post(s,n),getAgents:()=>i?t.getAgents():e.get(a),getAgent:n=>i?t.getAgent(n):e.get(`${a}/${n}`),createAgent:n=>i?t.createAgent(n):e.post(a,n),editAgent:n=>i?t.editAgent(n):e.put(`${a}`,n),deleteAgent:n=>i?t.deleteAgent(n):e.delete(`${a}/${n}`),explainResponse:(n={})=>i?t.explainResponse(n):e.post(o,n),getAgentDefaultValues:()=>i?t.getAgentDefaultValues():e.get(`${a}/default`),explainAgentSettings:n=>i?t.explainAgentSettings():e.post(`${a}/explain`,n)}}}};
|
|
2
|
-
//# sourceMappingURL=96089.15302200bfd9f685b009.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"96089.15302200bfd9f685b009.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ttyg/chat-message.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/rest/ttyg.rest.service.fake.backend.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/rest/ttyg.rest.service.js"],"sourcesContent":["export class ChatMessageModel {\n constructor(data) {\n\n /**\n * @type {string}\n */\n this._id = data.id;\n\n /**\n * @type @type {string} - A value from {@link CHAT_MESSAGE_ROLE}, determining the owner of the message (e.g., user, assistant).\n */\n this._role = data.role;\n\n /**\n * @type {string}\n */\n this._message = data.message;\n\n /**\n * @type {number}\n */\n this._timestamp = data.timestamp * 1000;\n\n /**\n * Holds information about the number of tokens used for this answer, including prompt and completion tokens.\n * It is applicable only to the assistant role ({@link CHAT_MESSAGE_ROLE#ASSISTANT}).\n *\n * @type {TokenUsageInfo}\n */\n this.tokenUsageInfo = data.tokenUsageInfo;\n }\n\n get id() {\n return this._id;\n }\n\n set id(value) {\n this._id = value;\n }\n\n get role() {\n return this._role;\n }\n\n set role(value) {\n this._role = value;\n }\n\n get message() {\n return this._message;\n }\n\n set message(value) {\n this._message = value;\n }\n\n get timestamp() {\n return this._timestamp;\n }\n\n set timestamp(value) {\n this._timestamp = value;\n }\n}\n\nexport const CHAT_MESSAGE_ROLE = {\n USER: 'user',\n ASSISTANT: 'assistant'\n};\n","import {cloneDeep} from \"lodash\";\nimport {CHAT_MESSAGE_ROLE} from \"../models/ttyg/chat-message\";\n\n// Delay for askQuestion()\nconst ASK_DELAY = 2000;\n\n// Delay for getConversations()\nconst LIST_CHATS_DELAY = 2000;\n\n// Delay for getConversation(id)\nconst GET_CHAT_DELAY = 2000;\n\nconst CREATE_AGENT_DELAY = 2000;\nconst EDIT_AGENT_DELAY = 2000;\nconst LOAD_AGENTS_DELAY = 2000;\n\nconst DELETE_DELAY = 2000;\n\nexport class TtygRestServiceFakeBackend {\n\n constructor() {\n this.conversations = [...conversationList];\n }\n\n getConversations() {\n return new Promise((resolve) => {\n setTimeout(() => resolve({data: cloneDeep(this.conversations)}), LIST_CHATS_DELAY);\n });\n }\n\n getConversation(id) {\n return new Promise((resolve) => {\n setTimeout(() => resolve({data: cloneDeep(this.conversations.find((conversation) => conversation.id === id))}),\n GET_CHAT_DELAY);\n });\n }\n\n renameConversation(id, data) {\n const conversation = this.conversations.find((conversation) => conversation.id === id);\n if (conversation) {\n conversation.name = data.name;\n }\n return Promise.resolve({data: cloneDeep(conversation)});\n }\n\n exportConversation(id) {\n console.log(\"Exporting conversation with id: \", id);\n return Promise.resolve();\n }\n\n askQuestion(askRequestData) {\n const question = {\n id: \"msg_Bn07kVDCYT1qmgu1G7Zw0KNe\",\n conversationId: askRequestData.conversationId,\n agentId: null,\n message: `${askRequestData.question}`,\n role: CHAT_MESSAGE_ROLE.USER,\n timestamp: Math.floor(Date.now() / 1000)\n };\n\n const conversation = this.conversations.find((conversation) => conversation.id === askRequestData.conversationId);\n\n const answer = {\n id: askRequestData.conversationId,\n name: conversation ? conversation.name : \"Han Solo is a character in the Star Wars...\",\n timestamp: Math.floor(Date.now() / 1000),\n messages: [\n {\n id: \"msg_Bn07kVDCYT1qmgu1G7Zw0KNe_\" + Date.now(),\n conversationId: askRequestData.conversationId,\n role: CHAT_MESSAGE_ROLE.ASSISTANT,\n agentId: askRequestData.agentId,\n message: \"Certainly! Here's a random example that incorporates code, JSON, and a SPARQL query:\\n\\n### Code (Python)\\n\\n```python\\ndef greet(name):\\n return f\\\"Hello, {name}!\\\"\\n\\nprint(greet(\\\"World\\\"))\\n```\\n\\n### JSON\\n\\n```json\\n{\\n \\\"greeting\\\": \\\"Hello\\\",\\n \\\"target\\\": \\\"World\\\",\\n \\\"language\\\": \\\"English\\\"\\n}\\n```\\n\\n### SPARQL Query\\n\\n```sparql\\nSELECT ?person ?name\\nWHERE {\\n ?person a ex:Person .\\n ?person ex:hasName ?name .\\n}\\nLIMIT 10\\n```\\n\\nThis example demonstrates a simple Python function for greeting, a JSON object representing a greeting structure, and a SPARQL query to retrieve names of persons from a dataset.\",\n timestamp: Math.floor(Date.now() / 1000),\n name: null\n },\n {\n id: \"msg_Bn07kVDCYT1qmgu1G7Zw0KNeс_\" + Date.now(),\n conversationId: askRequestData.conversationId,\n role: CHAT_MESSAGE_ROLE.ASSISTANT,\n agentId: askRequestData.agentId,\n message: `Reply to '${askRequestData.question}' It seems there was an error with the query. Let me rectify this and try again.`,\n timestamp: Math.floor(Date.now() / 1000),\n name: null\n }\n ]\n };\n\n if (conversation) {\n conversation.messages.push(question);\n conversation.messages.push(...answer.messages);\n }\n return new Promise((resolve) => setTimeout(() => resolve({data: answer}), ASK_DELAY));\n // return new Promise((resolve, reject) => setTimeout(() => reject(''), ASK_DELAY));\n }\n\n continueChatRun(data) {\n alert(\"continueChatRun() not implemented\");\n }\n\n deleteConversation(id) {\n this.conversations = this.conversations.filter((conversation) => conversation.id !== id);\n return new Promise((resolve) => setTimeout(() => resolve(), DELETE_DELAY));\n }\n\n createConversation(data) {\n const conversation = {\n id: `thread_${this.conversations.length}`,\n name: `Thread ${this.conversations.length}`,\n timestamp: Math.floor(Date.now() / 1000),\n messages: []\n };\n this.conversations.unshift(conversation);\n\n const askRequestData = cloneDeep(data);\n askRequestData.conversationId = conversation.id;\n return this.askQuestion(askRequestData);\n }\n\n getAgents() {\n return new Promise((resolve) => setTimeout(() => resolve({data: [...agentsList]}), LOAD_AGENTS_DELAY));\n }\n\n getAgent(id) {\n return Promise.resolve({data: cloneDeep(agentsList.find((agent) => agent.id === id))});\n }\n\n createAgent(agent) {\n if (agent.name === 'err') {\n return new Promise((resolve, reject) => setTimeout(() => reject({status: 500, message: 'Internal Server Error'}), CREATE_AGENT_DELAY));\n }\n agentsList.push(agent);\n return new Promise((resolve) => setTimeout(() => resolve({data: agent}), CREATE_AGENT_DELAY));\n }\n\n editAgent(editedAgent) {\n if (editedAgent.name === 'err') {\n return new Promise((resolve, reject) => setTimeout(() => reject({status: 500, message: 'Internal Server Error'}), EDIT_AGENT_DELAY));\n }\n agentsList = agentsList.map((agent) => agent.id === editedAgent.id ? editedAgent : agent);\n return new Promise((resolve) => setTimeout(() => resolve({data: editedAgent}), CREATE_AGENT_DELAY));\n }\n\n deleteAgent(id) {\n agentsList = agentsList.filter((agent) => agent.id !== id);\n return Promise.resolve();\n // return new Promise((resolve) => {\n // setTimeout(() => resolve(), 5000);\n // });\n }\n\n getAgentDefaultValues() {\n return Promise.resolve({data: defaultAgentValues});\n }\n\n explainAgentSettings() {\n return Promise.resolve({data: {}});\n }\n\n // Simulate an HTTP error\n simulateHttpError() {\n return Promise.reject({\n status: 500,\n message: 'Internal Server Error'\n });\n }\n\n explainResponse(data) {\n return Promise.resolve({data: {\n conversationId: data.conversationId,\n answerId: data.answerId,\n queryMethods: [\n {\n name: \"sparql_query\",\n rawQuery: \"SELECT ?character ?name ?height WHERE {\\n ?character a voc:Character;\\n rdfs:label ?name;\\n voc:height ?height.\\n FILTER(?name = \\\"Luke Skywalker\\\" || ?name = \\\"Leia Organa\\\")\\n}\",\n query: \"SELECT ?character ?name ?height WHERE {\\n ?character a voc:Character;\\n rdfs:label ?name;\\n voc:height ?height.\\n FILTER(?name = \\\"Luke Skywalker\\\" || ?name = \\\"Leia Organa\\\")\\n}\",\n queryType: \"sparql\",\n errorOutput: \"Error: org.eclipse.rdf4j.query.MalformedQueryException: org.eclipse.rdf4j.query.parser.sparql.ast.VisitorException: QName 'voc:Character' uses an undefined prefix\"\n }, {\n name: \"retrieval_search\",\n rawQuery: \"{\\\"queries\\\":[{\\\"query\\\":\\\"pilots that work with Luke Skywalker\\\",\\\"filter\\\":{\\\"document_id\\\":\\\"https://swapi.co/resource/human/1\\\"},\\\"top_k\\\":3}]}\",\n query: \"{\\n \\\"queries\\\" : [ {\\n \\\"query\\\" : \\\"pilots that work with Luke Skywalker\\\",\\n \\\"filter\\\" : {\\n \\\"document_id\\\" : \\\"https://swapi.co/resource/human/1\\\"\\n },\\n \\\"top_k\\\" : 3\\n } ]\\n}\",\n queryType: \"json\",\n errorOutput: null\n },\n {\n name: \"iri_discovery\",\n rawQuery: \"Luke Skywalker\",\n query: \"PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\\nPREFIX skos: <http://www.w3.org/2004/02/skos/core#>\\nPREFIX onto: <http://www.ontotext.com/>\\nSELECT ?label ?iri {\\n ?label onto:fts ('''Luke~ Skywalker~''' '*') .\\n ?iri rdfs:label|skos:prefLabel ?label .\\n}\",\n queryType: \"sparql\",\n errorOutput: null\n },\n {\n name: \"sparql_query\",\n rawQuery: \"SELECT ?height WHERE {\\n <https://swapi.co/resource/human/1> voc:height ?height.\\n}\",\n query: \"SELECT ?height WHERE {\\n <https://swapi.co/resource/human/1> voc:height ?height.\\n}\",\n queryType: \"sparql\",\n errorOutput: \"Error: org.eclipse.rdf4j.query.MalformedQueryException: org.eclipse.rdf4j.query.parser.sparql.ast.VisitorException: QName 'voc:height' uses an undefined prefix\"\n },\n {\n name: \"sparql_query\",\n rawQuery: \"PREFIX voc: <https://swapi.co/vocabulary/>\\nSELECT ?name ?height WHERE {\\n ?character voc:height ?height;\\n rdfs:label ?name.\\n FILTER(?name = \\\"Luke Skywalker\\\" || ?name = \\\"Leia Organa\\\")\\n}\",\n query: \"PREFIX voc: <https://swapi.co/vocabulary/>\\nSELECT ?name ?height WHERE {\\n ?character voc:height ?height;\\n rdfs:label ?name.\\n FILTER(?name = \\\"Luke Skywalker\\\" || ?name = \\\"Leia Organa\\\")\\n}\",\n queryType: \"sparql\",\n errorOutput: null\n },\n {\n name: 'fts_search',\n rawQuery: 'Second Luke',\n query: 'PREFIX onto: <http://www.ontotext.com/>\\nDESCRIBE ?iri {\\n\\t?x onto:fts \\'\\'\\'Second Luke\\'\\'\\' .\\n\\t{\\n\\t\\t?x ?p ?iri .\\n\\t} union {\\n\\t\\t?iri ?p ?x .\\n\\t}\\n}',\n queryType: \"sparql\",\n errorOutput: null\n }, {\n name: 'similarity_search',\n rawQuery: 'Second Luke',\n query: 'PREFIX onto: <http://www.ontotext.com/>\\nDESCRIBE ?iri {\\n\\t?x onto:fts \\'\\'\\'Second Luke\\'\\'\\' .\\n\\t{\\n\\t\\t?x ?p ?iri .\\n\\t} union {\\n\\t\\t?iri ?p ?x .\\n\\t}\\n}',\n queryType: \"sparql\",\n errorOutput: null\n }, {\n name: \"iri_discovery\",\n rawQuery: \"Luke Skywalker\",\n query: \"PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\\nPREFIX skos: <http://www.w3.org/2004/02/skos/core#>\\nPREFIX onto: <http://www.ontotext.com/>\\nSELECT ?label ?iri {\\n ?label onto:fts ('''Luke~ Skywalker~''' '*') .\\n ?iri rdfs:label|skos:prefLabel ?label .\\n}\",\n queryType: \"sparql\",\n errorOutput: null\n }, {\n name: \"sparql_query\",\n rawQuery: \"SELECT ?name ?height WHERE { ?character voc:name ?name ; voc:height ?height . FILTER (?name = 'Luke Skywalker' || ?name = 'Leia Organa') }\",\n query: \"SELECT ?name ?height WHERE { ?character voc:name ?name ; voc:height ?height . FILTER (?name = 'Luke Skywalker' || ?name = 'Leia Organa') }\",\n queryType: \"sparql\",\n errorOutput: \"Error: java.lang.IllegalArgumentException: The following IRIs are not used in the data stored in GraphDB: https://swapi.co/vocabulary/name\"\n }, {\n name: \"sparql_query\",\n rawQuery: \"SELECT ?character ?height WHERE { ?character voc:height ?height . FILTER (?character = <https://swapi.co/resource/human/1> || ?character = <https://swapi.co/resource/human/5>) }\",\n query: \"SELEdCT ?character ?height WHERE { ?character voc:height ?height . FILTER (?character = <https://swapi.co/resource/human/1> || ?character = <https://swapi.co/resource/human/5>) }\",\n queryType: \"sparql\",\n errorOutput: null\n }\n ]\n }});\n }\n}\n\nconst conversationList = [\n {\n \"id\": \"thread_jdQBvbkaU6JPoO48oFbC54dA\",\n \"name\": \"Very long chat name which does not fit in the sidebar\",\n \"timestamp\": 1725235200,\n \"messages\": []\n },\n {\n \"id\": \"thread_jdQBvbkaU6JPoO48oQaL76dB\",\n \"name\": \"Test chat 2\",\n \"timestamp\": 1725238800,\n \"messages\": []\n },\n {\n \"id\": \"thread_jdQBvbkaU6JPoO48oQaL76dC\",\n \"name\": \"Test chat 3\",\n \"timestamp\": 1725242400,\n \"messages\": []\n },\n {\n \"id\": \"thread_jdQBvbkaU6JPoO48oFbC54dD\",\n \"name\": \"Test chat 4\",\n \"timestamp\": 1697331600,\n \"messages\": []\n }\n];\n\nlet agentsList = [\n {\n \"id\": \"asst_gAPcrHQQ9ZIxD5eXWH2BNFfo\",\n \"name\": \"agent-1\",\n \"model\": \"gpt-4o\",\n \"temperature\": 0.0,\n \"topP\": 0.0,\n \"seed\": null,\n \"repositoryId\": 'starwars',\n \"instructions\": {\n \"systemInstruction\": \"\\n\\n\",\n \"userInstruction\": \"\"\n },\n \"assistantExtractionMethods\": [\n {\n \"ftsMethod\": \"fts_search\"\n }\n ],\n \"maxNumberOfTriplesPerCall\": null\n },\n {\n \"id\": \"asst_qMyCpCBmqxV9I2B8UoMfFzc5\",\n \"name\": \"agent-2\",\n \"model\": \"gpt-4o\",\n \"temperature\": 0.0,\n \"topP\": 0.0,\n \"seed\": null,\n \"repositoryId\": \"Non existing repo\",\n \"instructions\": {\n \"systemInstruction\": \"string\\n\\nstring\",\n \"userInstruction\": \"string\"\n },\n \"assistantExtractionMethods\": [\n {\n \"ftsMethod\": \"fts_search\"\n }\n ],\n \"maxNumberOfTriplesPerCall\": null\n },\n {\n \"id\": \"asst_Cr0RxobrY07WpOvvyQilEWMI\",\n \"name\": \"Databricks-general-unbiased\",\n \"model\": \"gpt-4o-2024-08-06\",\n \"temperature\": 1.0,\n \"topP\": 1.0,\n \"seed\": null,\n \"repositoryId\": 'starwars',\n \"instructions\": {\n \"systemInstruction\": \"You are helpful assistant in discovering information regarding diagnostic biomarkers.\",\n \"userInstruction\": null\n },\n \"assistantExtractionMethods\": [],\n \"maxNumberOfTriplesPerCall\": null\n },\n {\n \"id\": \"asst_5GxNYTdaOh7Tl6lLl6Pya2aH\",\n \"name\": \"Databricks-biomarkers\",\n \"model\": \"gpt-3.5-turbo-0125\",\n \"temperature\": 1.0,\n \"topP\": 1.0,\n \"seed\": null,\n \"repositoryId\": 'biomarkers',\n \"instructions\": {\n \"systemInstruction\": \"You're a helpful assistant in discovering new diagnostic biomarkers for given diseases. I'll submit a set of publication abstracts discussing given disease and your task is to find in the abstracts any potential new biomarkers which are not yet listed in the appropriate databases. Each abstract is preceded by identifier - its PubMed id called for short PMID. \\n\\nReturn the set of biomarkers listed one per row, each marker followed by the | and PMID of the respective abstract if was mentioned in.\\n\\nExample: \\nInput: 36418457\\t[Amyotrophic lateral sclerosis (ALS) is a genetically and phenotypically heterogeneous disease results in the loss of motor neurons. Mounting information points to involvement of other systems including cognitive impairment. However, neither the valid biomarker for diagnosis nor effective therapeutic intervention is available for ALS. The present study is aimed at identifying potentially genetic biomarker that improves the diagnosis and treatment of ALS patients based on the data of the Gene Expression Omnibus. We retrieved datasets and conducted a weighted gene co-expression network analysis (WGCNA) to identify ALS-related co-expression genes. Functional enrichment analysis was performed to determine the features and pathways of the main modules. We then constructed an ALS-related model using the least absolute shrinkage and selection operator (LASSO) regression analysis and verified the model by the receiver operating characteristic (ROC) curve. Besides we screened the non-preserved gene modules in FTD and ALS-mimic disorders to distinct ALS-related genes from disorders with overlapping genes and features. Altogether, 4198 common genes between datasets with the most variation were analyzed and 16 distinct modules were identified through WGCNA. Blue module had the most correlation with ALS and functionally enriched in pathways of neurodegeneration-multiple diseases', 'amyotrophic lateral sclerosis', and 'endocytosis' KEGG terms. Further, some of other modules related to ALS were enriched in 'autophagy' and 'amyotrophic lateral sclerosis'. The 30 top of hub genes were recruited to a LASSO regression model and 5 genes (BCLAF1, GNA13, ARL6IP5, ARGLU1, and YPEL5) were identified as potentially diagnostic ALS biomarkers with validating of the ROC curve and AUC value.]\\n\\nYour response: BCLAF1|36418457\\nGNA13|36418457\\nARL6IP5|36418457\\nARGLU1|36418457\\nYPEL5|36418457\",\n \"userInstruction\": null\n },\n \"assistantExtractionMethods\": [],\n \"maxNumberOfTriplesPerCall\": null\n },\n {\n \"id\": \"asst_qMyCpCBmqxV9I2B8UoMfFzc555\",\n \"name\": \"agent with long name long long long long long long long long long long long long\",\n \"model\": \"gpt-4o\",\n \"temperature\": 0.0,\n \"topP\": 0.0,\n \"seed\": null,\n \"repositoryId\": \"Non existing repo\",\n \"instructions\": {\n \"systemInstruction\": \"string\\n\\nstring\",\n \"userInstruction\": \"string\"\n },\n \"assistantExtractionMethods\": [\n {\n \"ftsMethod\": \"fts_search\"\n }\n ],\n \"maxNumberOfTriplesPerCall\": null\n },\n {\n \"id\": \"asst_qMyCpCBmqxV9I2B8UoMfFzcр555\",\n \"name\": \"Long_agent_with_long_name_long_long_long_long_long_long_long_long_long_long_long_long\",\n \"model\": \"gpt-4o\",\n \"temperature\": 0.0,\n \"topP\": 0.0,\n \"seed\": null,\n \"repositoryId\": \"Non existing repo\",\n \"instructions\": {\n \"systemInstruction\": \"string\\n\\nstring\",\n \"userInstruction\": \"string\"\n },\n \"assistantExtractionMethods\": [\n {\n \"ftsMethod\": \"fts_search\"\n }\n ],\n \"maxNumberOfTriplesPerCall\": null\n },\n {\n \"id\": \"asst_qMyCpCBmqxV9I2B8UoMfFzc55д5\",\n \"name\": \"agent with long name long long long long long long long long long long long long\",\n \"model\": \"gpt-4o\",\n \"temperature\": 0.0,\n \"topP\": 0.0,\n \"seed\": null,\n \"repositoryId\": \"starwars\",\n \"instructions\": {\n \"systemInstruction\": \"string\\n\\nstring\",\n \"userInstruction\": \"string\"\n },\n \"assistantExtractionMethods\": [\n {\n \"ftsMethod\": \"fts_search\"\n }\n ],\n \"maxNumberOfTriplesPerCall\": null\n },\n {\n \"id\": \"asst_qMyCpCBmqxV9I2B8UoMfFzcя555\",\n \"name\": \"Long_agent_with_long_name_long_long_long_long_long_long_long_long_long_long_long_long\",\n \"model\": \"gpt-4o\",\n \"temperature\": 0.0,\n \"topP\": 0.0,\n \"seed\": null,\n \"repositoryId\": \"starwars\",\n \"instructions\": {\n \"systemInstruction\": \"string\\n\\nstring\",\n \"userInstruction\": \"string\"\n },\n \"assistantExtractionMethods\": [\n {\n \"ftsMethod\": \"fts_search\"\n }\n ],\n \"maxNumberOfTriplesPerCall\": null\n }\n];\n\nconst defaultAgentValues = {\n \"id\": \"id\",\n \"name\": \"Quadro\",\n \"model\": \"gpt-4o\",\n \"temperature\": 0.7,\n \"topP\": 1,\n \"seed\": 0,\n \"repositoryId\": \"test-repository\",\n \"instructions\": {\n \"systemInstruction\": \"You are a helpful, knowledgeable, and friendly assistant. Your goal is to provide clear and accurate information while being polite, respectful, and professional.\",\n \"userInstruction\": \"If you need to write a SPARQL query, use only the classes and properties provided in the schema and don't invent or guess any. Always try to return human-readable names or labels and not only the IRIs. If SPARQL fails to provide the necessary information you can try another tool too.\"\n },\n \"assistantExtractionMethods\": [\n {\n \"method\": \"sparql_search\",\n \"ontologyGraph\": \"http://example.com\",\n \"sparqlQuery\": \"CONSTRUCT {?s ?p ?o} WHERE {GRAPH <http://example.org/ontology> {?s ?p ?o .}}\"\n },\n {\n \"method\": \"fts_search\",\n \"maxNumberOfTriplesPerCall\": 0\n },\n {\n \"method\": \"similarity_search\",\n \"similarityIndex\": \"similarity-index\",\n \"similarityIndexThreshold\": 0.6,\n \"maxNumberOfTriplesPerCall\": 0\n },\n {\n \"method\": \"retrieval_search\",\n \"retrievalConnectorInstance\": \"retrieval-connector\",\n \"queryTemplate\": \"{\\\"query\\\": \\\"string\\\"}\",\n \"maxNumberOfTriplesPerCall\": 0\n }\n ],\n \"additionalExtractionMethods\": [\n {\n \"method\": \"iri_discovery_search\"\n }\n ]\n};\n","import {TtygRestServiceFakeBackend} from './ttyg.rest.service.fake.backend';\n\nangular\n .module('graphdb.framework.rest.ttyg.service', [])\n .factory('TTYGRestService', TTYGRestService);\n\nTTYGRestService.$inject = ['$http'];\n\nconst CONVERSATIONS_ENDPOINT = 'rest/chat/conversations';\nconst AGENTS_ENDPOINT = 'rest/chat/agents';\nconst EXPLAIN_RESPONSE_ENDPOINT = `${CONVERSATIONS_ENDPOINT}/explain`;\n\nconst DEVELOPMENT = false;\n\nfunction TTYGRestService($http) {\n\n const _fakeBackend = new TtygRestServiceFakeBackend();\n\n const getConversations = () => {\n if (DEVELOPMENT) {\n return _fakeBackend.getConversations();\n }\n return $http.get(CONVERSATIONS_ENDPOINT);\n };\n\n /**\n * Loads a conversation by its ID.\n * @param {string} id\n * @return {Promise<*>}\n */\n const getConversation = (id) => {\n if (DEVELOPMENT) {\n return _fakeBackend.getConversation(id);\n }\n return $http.get(`${CONVERSATIONS_ENDPOINT}/${id}`);\n };\n\n /**\n * Calls the REST API to rename the conversation.\n *\n * Bear in mind that the backend doesn't return the whole conversation object, but only the name and the ID.\n *\n * @param {string} id - the conversation ID\n * @param {{name: string}} data - request payload containing the new name\n * @return {Promise<{name: string, id: string}>}\n */\n const renameConversation = (id, data) => {\n if (DEVELOPMENT) {\n return _fakeBackend.renameConversation(id, data);\n }\n return $http.put(`${CONVERSATIONS_ENDPOINT}/${id}`, data);\n };\n\n /**\n * Exports a conversation by its ID.\n * @param {string} id\n * @return {Promise<{Blob}>} Returns the conversation as a Blob\n */\n const exportConversation = (id) => {\n if (DEVELOPMENT) {\n return _fakeBackend.exportConversation(id);\n }\n return $http.get(`${CONVERSATIONS_ENDPOINT}/export/${id}`, {responseType: 'blob'});\n };\n\n /**\n * Calls the REST API to ask a question.\n * @param {*} data\n * @return {*}\n */\n const askQuestion = (data) => {\n if (DEVELOPMENT) {\n return _fakeBackend.askQuestion(data);\n }\n return $http.post(`${CONVERSATIONS_ENDPOINT}`, data);\n };\n\n /**\n * Calls the REST API to continue a chat run.\n * @param {*} data\n * @return {*}\n */\n const continueChatRun = (data) => {\n if (DEVELOPMENT) {\n return _fakeBackend.continueChatRun(data);\n }\n return $http.post(`${CONVERSATIONS_ENDPOINT}/continue`, data);\n };\n\n /**\n * Deletes a conversation by its ID.\n * @param {string} id\n * @return {Promise<void>}\n */\n const deleteConversation = (id) => {\n if (DEVELOPMENT) {\n return _fakeBackend.deleteConversation(id);\n }\n return $http.delete(`${CONVERSATIONS_ENDPOINT}/${id}`);\n };\n\n /**\n * Creates a new conversation.\n * @param {*} data - the data to be sent to the backend\n * @return {Promise<*>}\n */\n const createConversation = (data = {}) => {\n if (DEVELOPMENT) {\n return _fakeBackend.createConversation(data);\n }\n return $http.post(CONVERSATIONS_ENDPOINT, data);\n };\n\n /**\n * Fetches agents from the backend.\n * @return {Promise<*>|*}\n */\n const getAgents = () => {\n if (DEVELOPMENT) {\n // return _fakeBackend.simulateHttpError();\n return _fakeBackend.getAgents();\n // return new Promise((resolve) => {\n // setTimeout(() => resolve(_fakeBackend.getAgents()), 3000);\n // });\n }\n return $http.get(AGENTS_ENDPOINT);\n };\n\n /**\n * Fetches an agent by its ID from the backend.\n * @param {string} id\n * @return {Promise<Awaited<{data: T}>>|*}\n */\n const getAgent = (id) => {\n if (DEVELOPMENT) {\n return _fakeBackend.getAgent(id);\n }\n return $http.get(`${AGENTS_ENDPOINT}/${id}`);\n };\n\n /**\n * Creates a new agent in the backend.\n * @param {*} agent\n * @return {Promise<AgentModel>}\n */\n const createAgent = (agent) => {\n if (DEVELOPMENT) {\n return _fakeBackend.createAgent(agent);\n }\n return $http.post(AGENTS_ENDPOINT, agent);\n };\n\n /**\n * Updates the specified <code>agent</code>.\n * @param {AgentModel} agent - The agent to be updated.\n * @return {Promise<AgentModel>} A promise that resolves the updated agent.\n */\n const editAgent = (agent) => {\n if (DEVELOPMENT) {\n return _fakeBackend.editAgent(agent);\n }\n return $http.put(`${AGENTS_ENDPOINT}`, agent);\n };\n\n /**\n * Deletes an agent by its ID from the backend.\n * @param {string} id\n * @return {Promise<void>}\n */\n const deleteAgent = (id) => {\n if (DEVELOPMENT) {\n return _fakeBackend.deleteAgent(id);\n }\n return $http.delete(`${AGENTS_ENDPOINT}/${id}`);\n };\n\n /**\n * Calls backend server to fetch an explanation of how the answer was generated.\n * @param {*} data\n * @return {Promise}\n */\n const explainResponse = (data = {}) => {\n if (DEVELOPMENT) {\n return _fakeBackend.explainResponse(data);\n }\n return $http.post(EXPLAIN_RESPONSE_ENDPOINT, data);\n };\n\n /**\n * Calls the backend server to fetch the default values for an agent.\n * @return {Promise}\n */\n const getAgentDefaultValues = () => {\n if (DEVELOPMENT) {\n return _fakeBackend.getAgentDefaultValues();\n }\n return $http.get(`${AGENTS_ENDPOINT}/default`);\n };\n\n /**\n * Calls the backend server to fetch an explanation of how the agent settings were generated.\n * @param {*} data\n * @return {Promise}\n */\n const explainAgentSettings = (data) => {\n if (DEVELOPMENT) {\n return _fakeBackend.explainAgentSettings();\n }\n return $http.post(`${AGENTS_ENDPOINT}/explain`, data);\n };\n\n\n return {\n getConversation,\n renameConversation,\n exportConversation,\n askQuestion,\n continueChatRun,\n getConversations,\n deleteConversation,\n createConversation,\n getAgents,\n getAgent,\n createAgent,\n editAgent,\n deleteAgent,\n explainResponse,\n getAgentDefaultValues,\n explainAgentSettings\n };\n}\n"],"names":["ChatMessageModel","constructor","data","this","_id","id","_role","role","_message","message","_timestamp","timestamp","tokenUsageInfo","value","CHAT_MESSAGE_ROLE","USER","ASSISTANT","CREATE_AGENT_DELAY","TtygRestServiceFakeBackend","conversations","conversationList","getConversations","Promise","resolve","setTimeout","cloneDeep","getConversation","find","conversation","renameConversation","name","exportConversation","console","log","askQuestion","askRequestData","question","conversationId","agentId","Math","floor","Date","now","answer","messages","push","continueChatRun","alert","deleteConversation","filter","createConversation","length","unshift","getAgents","agentsList","getAgent","agent","createAgent","reject","status","editAgent","editedAgent","map","deleteAgent","getAgentDefaultValues","defaultAgentValues","explainAgentSettings","simulateHttpError","explainResponse","answerId","queryMethods","rawQuery","query","queryType","errorOutput","angular","module","factory","TTYGRestService","$inject","CONVERSATIONS_ENDPOINT","AGENTS_ENDPOINT","EXPLAIN_RESPONSE_ENDPOINT","DEVELOPMENT","$http","_fakeBackend","get","put","responseType","post","delete"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const __webpack_id__=98860;export const __webpack_ids__=[98860];export const __webpack_modules__={98860:()=>{PluginRegistry.add("guide.step",[{guideBlockName:"conversation-with-ttyg-agent",getSteps:(t,e)=>{const o=e.GuideUtils;t.mainAction="conversation-with-ttyg-agent";const n=t.startNewConversation,i=[];if(t.showInfo&&i.push({guideBlockName:"info-message",options:angular.extend({},{skipPoint:!0,url:"/ttyg",class:"conversation-info-guide-dialog",content:"guide.step_plugin.conversation-with-ttyg-agent.info"},t)}),n){const e=o.getGuideElementSelector("create-chat-btn"),n=[{guideBlockName:"info-message",options:angular.extend({},{url:"/ttyg",beforeShowPromise:(t,n)=>o.waitFor(e,1).then(()=>{setTimeout(()=>t.next())}).catch(()=>{const e=n.id;setTimeout(()=>t.show(e+2))})},t)},{guideBlockName:"clickable-element",options:angular.extend({},{content:"guide.step_plugin.conversation-with-ttyg-agent.start-conversation",class:"start-conversation-guide-dialog",url:"/ttyg",elementSelector:e,disableNextFlow:!0},t)}];i.push(...n)}const s=t.questions.map(t=>({guideBlockName:"ask-ttyg-agent",options:t}));return i.push(...s),i}}])}};
|
|
2
|
-
//# sourceMappingURL=98860.30ea9a212cf6e622ec36.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"98860.30ea9a212cf6e622ec36.bundle.js","mappings":"oHAAAA,eAAeC,IAAI,aAAc,CAC7B,CACIC,eAAgB,+BAChBC,SAAUA,CAACC,EAASC,KAChB,MAAMC,EAAaD,EAASC,WAC5BF,EAAQG,WAAa,+BACrB,MAAMC,EAAuBJ,EAAQI,qBAG/BC,EAAQ,GAcd,GAhBiBL,EAAQM,UAKrBD,EAAME,KAAK,CACPT,eAAgB,eAChBE,QAASQ,QAAQC,OAAO,CAAC,EAAG,CACxBC,WAAW,EACXC,IAAK,QACLC,MAAO,iCACPC,QAAS,uDACVb,KAIPI,EAAsB,CACtB,MAAMU,EAAwBZ,EAAWa,wBAAwB,mBAC3DC,EAA4B,CAC9B,CAEIlB,eAAgB,eAChBE,QAASQ,QAAQC,OAAO,CAAC,EAAG,CACxBE,IAAK,QACLM,kBAAmBA,CAACC,EAAOC,IAAgBjB,EAAWkB,QAAQN,EAAuB,GAChFO,KAAK,KAEFC,WAAW,IAAMJ,EAAMK,UAE1BC,MAAM,KACH,MAAMC,EAASN,EAAYO,GAE3BJ,WAAW,IAAMJ,EAAMS,KAAKF,EAAS,OAE9CzB,IAEP,CACIF,eAAgB,oBAChBE,QAASQ,QAAQC,OAAO,CAAC,EAAG,CACxBI,QAAS,oEACTD,MAAO,kCACPD,IAAK,QACLiB,gBAAiBd,EACjBe,iBAAiB,GAClB7B,KAGXK,EAAME,QAAQS,EAClB,CAEA,MAAMc,EAAgB9B,EAAQ+B,UAAUC,IAAKC,IAClC,CACHnC,eAAgB,iBAChBE,QAASiC,KAMjB,OAFA5B,EAAME,QAAQuB,GAEPzB,K","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/guides/steps/complex/ttyg/conversation-with-ttyg-agent/plugin.js"],"sourcesContent":["PluginRegistry.add('guide.step', [\n {\n guideBlockName: 'conversation-with-ttyg-agent',\n getSteps: (options, services) => {\n const GuideUtils = services.GuideUtils;\n options.mainAction = 'conversation-with-ttyg-agent';\n const startNewConversation = options.startNewConversation;\n const showInfo = options.showInfo;\n\n const steps = [];\n\n if (showInfo) {\n steps.push({\n guideBlockName: 'info-message',\n options: angular.extend({}, {\n skipPoint: true,\n url: '/ttyg',\n class: 'conversation-info-guide-dialog',\n content: 'guide.step_plugin.conversation-with-ttyg-agent.info',\n }, options)\n })\n }\n\n if (startNewConversation) {\n const createChatBtnSelector = GuideUtils.getGuideElementSelector('create-chat-btn')\n const newConversationStartSteps = [\n {\n // If button is not visible for some reason, skip the whole step\n guideBlockName: 'info-message',\n options: angular.extend({}, {\n url: '/ttyg',\n beforeShowPromise: (guide, currentStep) => GuideUtils.waitFor(createChatBtnSelector, 1)\n .then(() => {\n // Using a timeout because the library executes logic to show the step in a then clause which causes current and next steps to show\n setTimeout(() => guide.next())\n })\n .catch(() => {\n const stepId = currentStep.id;\n // Using a timeout because the library executes logic to show the step in a then clause which causes current and next steps to show\n setTimeout(() => guide.show(stepId + 2))\n }),\n }, options)\n },\n {\n guideBlockName: 'clickable-element',\n options: angular.extend({}, {\n content: 'guide.step_plugin.conversation-with-ttyg-agent.start-conversation',\n class: 'start-conversation-guide-dialog',\n url: '/ttyg',\n elementSelector: createChatBtnSelector,\n disableNextFlow: true\n }, options)\n }\n ]\n steps.push(...newConversationStartSteps);\n }\n\n const questionSteps = options.questions.map((questionWithOptions) => {\n return {\n guideBlockName: 'ask-ttyg-agent',\n options: questionWithOptions\n };\n });\n\n steps.push(...questionSteps);\n\n return steps;\n }\n }\n]);\n"],"names":["PluginRegistry","add","guideBlockName","getSteps","options","services","GuideUtils","mainAction","startNewConversation","steps","showInfo","push","angular","extend","skipPoint","url","class","content","createChatBtnSelector","getGuideElementSelector","newConversationStartSteps","beforeShowPromise","guide","currentStep","waitFor","then","setTimeout","next","catch","stepId","id","show","elementSelector","disableNextFlow","questionSteps","questions","map","questionWithOptions"],"sourceRoot":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as t,h as e,a as i,g as s}from"./p-I_gcXFWK.js";import{ServiceProvider as a,SecurityContextService as o,AuthenticationService as n,NavigationContextService as h,SubscriptionList as r,WindowService as d,EventService as l,EventName as b,LocalStorageSubscriptionHandlerService as c,RestrictedPages as f,getPathName as u}from"@ontotext/workbench-api";function m(e,t=300){let i;return(...s)=>{clearTimeout(i),i=setTimeout(()=>e.apply(this,s),t)}}const p={MD:768},y=p.MD,v=':host{display:block;height:100%}.wb-layout{display:grid;grid-template-columns:15rem minmax(200px, 1fr);grid-template-rows:auto 1fr auto;grid-template-areas:"nav header" "nav main" "nav footer";min-height:100vh;margin:0}.wb-layout.expanded{grid-template-columns:4.375rem 1fr}.wb-layout nav{grid-area:nav}.wb-layout header{grid-area:header}.wb-layout main{grid-area:main}.wb-layout main .main-container{margin-left:0}.wb-layout .default-slot-wrapper{display:none}.wb-layout footer{grid-area:footer}.wb-header{position:sticky;top:0;z-index:999}',w=class{constructor(e){t(this,e),this.securityContextService=a.get(o),this.authenticationService=a.get(n),this.navigationContextService=a.get(h),this.isLowResolution=!1,this.hasPermission=!0,this.showFooter=this.isAuthenticatedFully(),this.subscriptions=new r,this.isNavbarCollapsed=!1,this.windowResizeObserver=m(()=>this.windowResizeHandler(),50),d.getWindow().addEventListener("storage",this.handleStorageChange)}componentDidLoad(){this.windowResizeHandler()}connectedCallback(){this.subscribeToSecurityChanges(),this.updateVisibility(),this.subscriptions.add(this.securityContextService.onRestrictedPagesChanged(e=>this.setPermission(e))),this.subscriptions.add(a.get(l).subscribe(b.NAVIGATION_END,e=>{this.navigationContextService.updatePreviousRoute(e.oldUrl),this.setPermission(this.securityContextService.getRestrictedPages())})),this.setPermission(this.securityContextService.getRestrictedPages())}disconnectedCallback(){this.subscriptions.unsubscribeAll()}render(){return e(i,{key:"5d814f892fde4148f87848dbfb6a1297479b110d",class:"wb-layout"},e("div",{key:"3189f4fd2434630807d924b656e70e0f91aac9ec",class:"default-slot-wrapper"},e("slot",{key:"58aafe83a0ca87647bf9de541228b07f2acebdc8",name:"default"})),e("header",{key:"ee1a6fc5254f30e198b190725bdbfebf76c3932d",class:"wb-header"},this.isVisible&&e("onto-header",{key:"6eed310ab3e1707d24c4331fe70962b41e628bb9"})),e("nav",{key:"7759747f8d91d95e569e9a603b9d11c20d46a75c",class:"wb-navbar"},e("onto-navbar",{key:"08946fa871e0cb2bd84831b4ab57592ade2813b1",ref:this.assignNavbarRef(),"navbar-collapsed":this.isLowResolution})),this.hasPermission?e("div",{class:"main-slot-wrapper"},e("slot",{name:"main"})):e("onto-permission-banner",null),e("footer",{key:"c7340dc1f4f10ff700a89fe2500e63ea782b341d",class:"wb-footer"},this.isVisible&&e("onto-footer",{key:"cb8907cf8f7254be6624a1891ca3a31edaa6554c"})),e("onto-tooltip",{key:"23f587a3461d7deae856897b7ceb92e5fc1446a8"}),e("onto-toastr",{key:"8f49abb3110ba0bb92d9ab2530f95bbc7f9b019f"}))}onNavbarToggled(e){this.isNavbarCollapsed=e.detail.payload,this.isNavbarCollapsed?this.hostElement.classList.add("expanded"):this.hostElement.classList.remove("expanded")}onResize(){this.windowResizeObserver()}windowResizeHandler(){this.isLowResolution=d.getWindow().innerWidth<=y,this.isLowResolution||this.isNavbarCollapsed?this.hostElement.classList.add("expanded"):this.hostElement.classList.remove("expanded")}handleStorageChange(e){a.get(c).handleStorageChange(e)}subscribeToSecurityChanges(){const e=a.get(o);this.subscriptions.add(e.onAuthenticatedUserChanged(e=>{this.authenticatedUser=e,this.updateVisibility()})),this.subscriptions.add(e.onSecurityConfigChanged(e=>{this.securityConfig=e,this.updateVisibility()})),this.subscriptions.add(a.get(l).subscribe(b.LOGOUT,()=>{this.setNavbarItemVisibility(),this.updateVisibility(),this.securityContextService.updateRestrictedPages(new f)})),this.subscriptions.add(e.onAuthTokenChanged(()=>{this.setNavbarItemVisibility(),this.updateVisibility()}))}setPermission(e){if(e){const t=u();this.hasPermission=!e.isRestricted(t)||!this.authenticationService.hasAuthority()}else this.hasPermission=!0;const t=document.querySelector(".wb-layout main");t&&(t.style.display=this.hasPermission?"block":"none")}updateVisibility(){if(this.authenticationService.isSecurityEnabled()){const e=!!this.authenticatedUser&&!!this.securityConfig,t=this.authenticationService.isAuthenticated()||this.authenticationService.hasFreeAccess();this.isVisible=e&&t,this.showFooter=t}else this.isVisible=!0,this.showFooter=!0}isAuthenticatedFully(){const e=a.get(n);return!e.isSecurityEnabled()||e.isAuthenticated()||e.hasFreeAccess()}shouldShowMenu(e){return this.isAuthenticatedFully()&&a.get(n).hasRole(e)}assignNavbarRef(){return e=>{this.navbarRef=e,this.navbarRef.menuItems=d.getWindow().PluginRegistry.get("main.menu"),this.setNavbarItemVisibility()}}setNavbarItemVisibility(){var e,t,i;if(!(null===(e=this.navbarRef)||void 0===e?void 0:e.menuItems))return;const s=e=>{var t;e.shouldShow=this.shouldShowMenu(e.role),(null===(t=e.children)||void 0===t?void 0:t.length)&&e.children.forEach(s)};null===(i=null===(t=this.navbarRef)||void 0===t?void 0:t.menuItems)||void 0===i||i.forEach(e=>{e.items.forEach(s)}),this.navbarRef.menuItems=[...this.navbarRef.menuItems]}get hostElement(){return s(this)}};w.style=v;export{w as onto_layout};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["debounce","func","wait","timer","args","clearTimeout","setTimeout","apply","this","RESPONSIVE_BREAKPOINTS","MD","WINDOW_WIDTH_FOR_COLLAPSED_NAVBAR","ontoLayoutCss","OntoLayout","constructor","hostRef","securityContextService","ServiceProvider","get","SecurityContextService","authenticationService","AuthenticationService","navigationContextService","NavigationContextService","isLowResolution","hasPermission","showFooter","isAuthenticatedFully","subscriptions","SubscriptionList","isNavbarCollapsed","windowResizeObserver","windowResizeHandler","WindowService","getWindow","addEventListener","handleStorageChange","componentDidLoad","connectedCallback","subscribeToSecurityChanges","updateVisibility","add","onRestrictedPagesChanged","restrictedPages","setPermission","EventService","subscribe","EventName","NAVIGATION_END","navigationEndPayload","updatePreviousRoute","oldUrl","getRestrictedPages","disconnectedCallback","unsubscribeAll","render","h","Host","key","class","name","isVisible","ref","assignNavbarRef","onNavbarToggled","event","detail","payload","hostElement","classList","remove","onResize","innerWidth","service","LocalStorageSubscriptionHandlerService","onAuthenticatedUserChanged","authenticatedUser","onSecurityConfigChanged","securityConfig","LOGOUT","setNavbarItemVisibility","updateRestrictedPages","RestrictedPages","onAuthTokenChanged","permissions","path","getPathName","isRestricted","hasAuthority","mainContent","document","querySelector","style","display","isSecurityEnabled","hasAuth","isAuthenticated","hasFreeAccess","authService","shouldShowMenu","role","hasRole","navbar","navbarRef","menuItems","PluginRegistry","_a","processItem","item","shouldShow","children","length","forEach","_c","_b","plugin","items"],"sources":["src/utils/function-utils.ts","src/models/constants.ts","src/components/onto-layout/onto-layout.scss?tag=onto-layout","src/components/onto-layout/onto-layout.tsx"],"sourcesContent":["export function debounce(func, wait = 300) {\n let timer: string | number | NodeJS.Timeout;\n return (...args: any) => {\n clearTimeout(timer);\n timer = setTimeout(() => func.apply(this, args), wait);\n };\n}\n","export const RESPONSIVE_BREAKPOINTS = {\n SM: 640,\n MD: 768,\n LG: 1024,\n XL: 1280,\n XXL: 1400,\n};\n\n/**\n * The width of the window in pixels at which the navbar should collapse.\n */\nexport const WINDOW_WIDTH_FOR_COLLAPSED_NAVBAR = RESPONSIVE_BREAKPOINTS.MD;\n",":host {\n display: block;\n height: 100%;\n}\n.wb-layout {\n display: grid;\n grid-template-columns: 15rem minmax(200px, 1fr);\n grid-template-rows: auto 1fr auto;\n grid-template-areas:\n \"nav header\"\n \"nav main\"\n \"nav footer\";\n min-height: 100vh;\n margin: 0;\n\n &.expanded {\n grid-template-columns: 4.375rem 1fr;\n }\n\n nav {\n grid-area: nav;\n }\n\n header {\n grid-area: header;\n }\n\n main {\n grid-area: main;\n }\n\n main .main-container {\n /* This is a temporary solution to properly align the main container next to the sidebar until a proper layout is in place. */\n margin-left: 0;\n }\n\n .default-slot-wrapper {\n display: none;\n }\n\n footer {\n grid-area: footer;\n }\n}\n\n.wb-header {\n position: sticky;\n top: 0;\n z-index: 999;\n}\n","import {Component, Host, h, Listen, Element, State} from '@stencil/core';\nimport {NavbarToggledEvent} from \"../onto-navbar/navbar-toggled-event\";\nimport {debounce} from \"../../utils/function-utils\";\nimport {WINDOW_WIDTH_FOR_COLLAPSED_NAVBAR} from \"../../models/constants\";\nimport {\n ServiceProvider,\n LocalStorageSubscriptionHandlerService,\n SecurityContextService,\n RestrictedPages,\n EventService,\n EventName,\n SubscriptionList,\n AuthenticatedUser,\n SecurityConfig,\n Authority,\n AuthenticationService, NavigationEndPayload, NavigationContextService, getPathName, WindowService\n} from '@ontotext/workbench-api';\nimport {ExternalMenuItemModel} from '../onto-navbar/external-menu-model';\n\n@Component({\n tag: 'onto-layout',\n styleUrl: 'onto-layout.scss',\n shadow: false,\n})\nexport class OntoLayout {\n // ========================\n // Services\n // ========================\n private readonly securityContextService = ServiceProvider.get(SecurityContextService);\n private readonly authenticationService = ServiceProvider.get(AuthenticationService);\n private readonly navigationContextService = ServiceProvider.get(NavigationContextService);\n\n // ========================\n // DOM Refs\n // ========================\n @Element() hostElement: HTMLOntoLayoutElement;\n private navbarRef: HTMLOntoNavbarElement;\n\n // ========================\n // State\n // ========================\n @State() authenticatedUser: AuthenticatedUser;\n @State() authToken: string | null;\n @State() securityConfig: SecurityConfig;\n @State() isLowResolution = false;\n @State() hasPermission: boolean = true;\n @State() showFooter = this.isAuthenticatedFully();\n @State() isVisible: boolean;\n\n // ========================\n // Private\n // ========================\n /**\n * List of subscriptions to manage component lifecycle\n * */\n private readonly subscriptions: SubscriptionList = new SubscriptionList();\n private readonly windowResizeObserver: (...args: any) => void;\n private isNavbarCollapsed = false;\n\n // ========================\n // Lifecycle methods\n // ========================\n constructor() {\n this.windowResizeObserver = debounce(() => this.windowResizeHandler(), 50);\n WindowService.getWindow().addEventListener(\"storage\", this.handleStorageChange);\n }\n\n componentDidLoad() {\n this.windowResizeHandler();\n }\n\n connectedCallback() {\n this.subscribeToSecurityChanges();\n this.updateVisibility();\n // Subscribing here, because after a disconnectedCallback the connectedCallback is called, instead of componentDidLoad or constructor\n this.subscriptions.add(this.securityContextService.onRestrictedPagesChanged((restrictedPages) => this.setPermission(restrictedPages)));\n this.subscriptions.add(\n ServiceProvider.get(EventService).subscribe(EventName.NAVIGATION_END, (navigationEndPayload: NavigationEndPayload) => {\n this.navigationContextService.updatePreviousRoute(navigationEndPayload.oldUrl);\n this.setPermission(this.securityContextService.getRestrictedPages());\n }));\n this.setPermission(this.securityContextService.getRestrictedPages());\n }\n\n /**\n * Lifecycle method called when the component is about to be removed from the DOM.\n * Unsubscribes from all subscriptions to prevent memory leaks.\n */\n disconnectedCallback() {\n this.subscriptions.unsubscribeAll();\n }\n\n render() {\n return (\n <Host class=\"wb-layout\">\n {/* Default slot is explicitly defined to be able to hide the main content in the user permission check */}\n <div class=\"default-slot-wrapper\">\n <slot name=\"default\"></slot>\n </div>\n <header class=\"wb-header\">\n {this.isVisible && <onto-header></onto-header>}\n </header>\n\n <nav class=\"wb-navbar\">\n <onto-navbar ref={this.assignNavbarRef()}\n navbar-collapsed={this.isLowResolution}></onto-navbar>\n </nav>\n\n {this.hasPermission ? (\n <div class='main-slot-wrapper'>\n <slot name=\"main\"></slot></div>\n ) : (\n <onto-permission-banner></onto-permission-banner>\n )}\n <footer class=\"wb-footer\">\n {this.isVisible && <onto-footer></onto-footer>}\n </footer>\n <onto-tooltip></onto-tooltip>\n <onto-toastr></onto-toastr>\n </Host>\n );\n }\n\n // ========================\n // Event Listeners\n // ========================\n /**\n * Event listener for the navbar toggled event. The layout needs to respond properly when the navbar is toggled in\n * order to fit the content.\n * @param event\n */\n @Listen('navbarToggled')\n onNavbarToggled(event: CustomEvent<NavbarToggledEvent>) {\n this.isNavbarCollapsed = event.detail.payload;\n if (this.isNavbarCollapsed) {\n this.hostElement.classList.add('expanded');\n } else {\n this.hostElement.classList.remove('expanded');\n }\n }\n\n /**\n * Event listener for window resize event. We need to handle this in order to allow the navbar to collapse when the\n * window is resized.\n */\n @Listen('resize', {target: 'window'})\n onResize() {\n this.windowResizeObserver();\n }\n\n // ========================\n // Handlers\n // ========================\n private windowResizeHandler(): void {\n this.isLowResolution = WindowService.getWindow().innerWidth <= WINDOW_WIDTH_FOR_COLLAPSED_NAVBAR;\n if (!this.isLowResolution && !this.isNavbarCollapsed) {\n this.hostElement.classList.remove('expanded');\n } else {\n this.hostElement.classList.add('expanded');\n }\n }\n\n private handleStorageChange(event: StorageEvent) {\n const service = ServiceProvider.get(LocalStorageSubscriptionHandlerService);\n service.handleStorageChange(event);\n }\n\n // ========================\n // Security & Permissions\n // ========================\n private subscribeToSecurityChanges() {\n const securityContextService = ServiceProvider.get(SecurityContextService);\n this.subscriptions.add(\n securityContextService.onAuthenticatedUserChanged((authenticatedUser) => {\n this.authenticatedUser = authenticatedUser;\n this.updateVisibility();\n })\n );\n\n this.subscriptions.add(\n securityContextService.onSecurityConfigChanged((securityConfig) => {\n this.securityConfig = securityConfig;\n this.updateVisibility();\n })\n );\n\n this.subscriptions.add(\n ServiceProvider.get(EventService).subscribe(EventName.LOGOUT, () => {\n this.setNavbarItemVisibility();\n this.updateVisibility();\n this.securityContextService.updateRestrictedPages(new RestrictedPages());\n })\n );\n this.subscriptions.add(\n securityContextService.onAuthTokenChanged(()=>{\n this.setNavbarItemVisibility();\n this.updateVisibility();\n })\n );\n }\n\n private setPermission(permissions: RestrictedPages) {\n if (permissions) {\n const path = getPathName();\n // Delegate to legacy, when a user has authority in order to show the authority banner, which is not migrated yet\n this.hasPermission = !permissions.isRestricted(path) ? true : !this.authenticationService.hasAuthority();\n } else {\n // If the permissions are undefined, the user can access the url\n this.hasPermission = true;\n }\n\n const mainContent = document.querySelector('.wb-layout main') as HTMLElement;\n if (mainContent) {\n mainContent.style.display = this.hasPermission ? 'block' : 'none';\n }\n }\n\n private updateVisibility() {\n if (!this.authenticationService.isSecurityEnabled()) {\n this.isVisible = true;\n this.showFooter = true;\n } else {\n const hasAuth = !!this.authenticatedUser && !!this.securityConfig;\n const isAuthenticated = this.authenticationService.isAuthenticated() || this.authenticationService.hasFreeAccess();\n\n this.isVisible = hasAuth && isAuthenticated;\n this.showFooter = isAuthenticated;\n }\n }\n\n private isAuthenticatedFully() {\n const authService = ServiceProvider.get(AuthenticationService);\n return !authService.isSecurityEnabled() || authService.isAuthenticated() || authService.hasFreeAccess();\n }\n\n private shouldShowMenu(role: Authority): boolean {\n return this.isAuthenticatedFully()\n && ServiceProvider.get(AuthenticationService).hasRole(role);\n }\n\n // ========================\n // Navbar logic\n // ========================\n private assignNavbarRef() {\n return (navbar: HTMLOntoNavbarElement) => {\n this.navbarRef = navbar;\n this.navbarRef.menuItems = WindowService.getWindow().PluginRegistry.get('main.menu');\n this.setNavbarItemVisibility();\n }\n }\n\n private setNavbarItemVisibility() {\n if (!this.navbarRef?.menuItems) {\n return;\n }\n // recursively check for children and set their shouldShow property\n const processItem = (item: ExternalMenuItemModel) => {\n item.shouldShow = this.shouldShowMenu(item.role as Authority);\n if (item.children?.length) {\n item.children.forEach(processItem);\n }\n };\n\n this.navbarRef?.menuItems?.forEach(plugin => {\n plugin.items.forEach(processItem);\n });\n // Update the reference to trigger a re-render\n this.navbarRef.menuItems = [...this.navbarRef.menuItems];\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
File without changes
|
/package/dist/{main.5a06ce3271fcd9cb93e7.js.LICENSE.txt → main.fa0b99f721588e894d1d.js.LICENSE.txt}
RENAMED
|
File without changes
|