graphdb-workbench 3.2.0-TR2 → 3.2.0-TR3
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/12358.4be185f89eebea9c35bf.bundle.js +3 -0
- package/dist/12358.4be185f89eebea9c35bf.bundle.js.map +1 -0
- package/dist/{12396.9a7f2862146b6f9adcb1.bundle.js → 12396.07e90b6c97623a9fd754.bundle.js} +2 -2
- package/dist/{12396.9a7f2862146b6f9adcb1.bundle.js.map → 12396.07e90b6c97623a9fd754.bundle.js.map} +1 -1
- package/dist/{15535.7b170e17ee0a58970ab6.bundle.js → 15535.12490e9b6d305e7bd827.bundle.js} +2 -2
- package/dist/{15535.7b170e17ee0a58970ab6.bundle.js.map → 15535.12490e9b6d305e7bd827.bundle.js.map} +1 -1
- package/dist/{16162.67e7c1f5f313481b1e80.bundle.js → 16162.58804ed92b5b3ae97510.bundle.js} +2 -2
- package/dist/{16162.67e7c1f5f313481b1e80.bundle.js.map → 16162.58804ed92b5b3ae97510.bundle.js.map} +1 -1
- package/dist/19402.7f6ea977348338acc824.bundle.js +2 -0
- package/dist/19402.7f6ea977348338acc824.bundle.js.map +1 -0
- package/dist/{20287.dd5bc263fe26adf34965.bundle.js → 20287.3ce3542c50f41b8b85a3.bundle.js} +2 -2
- package/dist/{20287.dd5bc263fe26adf34965.bundle.js.map → 20287.3ce3542c50f41b8b85a3.bundle.js.map} +1 -1
- package/dist/{21136.b7efcb40fb956ff1109c.bundle.js → 21136.c6d780b6f550c0df2d2a.bundle.js} +2 -2
- package/dist/{21136.b7efcb40fb956ff1109c.bundle.js.map → 21136.c6d780b6f550c0df2d2a.bundle.js.map} +1 -1
- package/dist/21142.b48a4c497617cb2df01f.bundle.js +2 -0
- package/dist/21142.b48a4c497617cb2df01f.bundle.js.map +1 -0
- package/dist/{21170.7832554eab9eaade6ffb.bundle.js → 21170.6079e1b218a1eea085f5.bundle.js} +2 -2
- package/dist/{21170.7832554eab9eaade6ffb.bundle.js.map → 21170.6079e1b218a1eea085f5.bundle.js.map} +1 -1
- package/dist/21195.152b932628044855ef83.bundle.js +2 -0
- package/dist/21195.152b932628044855ef83.bundle.js.map +1 -0
- package/dist/{25747.c01110e23b922cdd3d9e.bundle.js → 25747.117e03f9f9ae52f13606.bundle.js} +2 -2
- package/dist/{25747.c01110e23b922cdd3d9e.bundle.js.map → 25747.117e03f9f9ae52f13606.bundle.js.map} +1 -1
- package/dist/{27580.5a421770ab66d2dedc37.bundle.js → 27580.dc966117bc0ee9eecd70.bundle.js} +2 -2
- package/dist/{27580.5a421770ab66d2dedc37.bundle.js.map → 27580.dc966117bc0ee9eecd70.bundle.js.map} +1 -1
- package/dist/29350.d2791feedf54d2e4b7b6.bundle.js +2 -0
- package/dist/29350.d2791feedf54d2e4b7b6.bundle.js.map +1 -0
- package/dist/{31636.54e2817f8ae3998a34b3.bundle.js → 31636.95fa5e5c2a521d1effd5.bundle.js} +2 -2
- package/dist/{31636.54e2817f8ae3998a34b3.bundle.js.map → 31636.95fa5e5c2a521d1effd5.bundle.js.map} +1 -1
- package/dist/{32489.f7a2dc39cd61c2cd8874.bundle.js → 32489.c5d26d5023f0e0583408.bundle.js} +2 -2
- package/dist/{32489.f7a2dc39cd61c2cd8874.bundle.js.map → 32489.c5d26d5023f0e0583408.bundle.js.map} +1 -1
- package/dist/{34495.be67c06c39909114bbe4.bundle.js → 34495.2a7b45477194d52af3e5.bundle.js} +2 -2
- package/dist/{34495.be67c06c39909114bbe4.bundle.js.map → 34495.2a7b45477194d52af3e5.bundle.js.map} +1 -1
- package/dist/36633.eba4270db7fdcf1aad4c.bundle.js +2 -0
- package/dist/36633.eba4270db7fdcf1aad4c.bundle.js.map +1 -0
- package/dist/36665.19388ed0db6a1d64ad65.bundle.js +2 -0
- package/dist/36665.19388ed0db6a1d64ad65.bundle.js.map +1 -0
- package/dist/{38360.efec913bb97c3b8588a4.bundle.js → 38360.23a88f346d3a1d92dbb1.bundle.js} +2 -2
- package/dist/{38360.efec913bb97c3b8588a4.bundle.js.map → 38360.23a88f346d3a1d92dbb1.bundle.js.map} +1 -1
- package/dist/{38644.800252af49cd67310834.bundle.js → 38644.6682aa9acc813134b85a.bundle.js} +2 -2
- package/dist/{38644.800252af49cd67310834.bundle.js.map → 38644.6682aa9acc813134b85a.bundle.js.map} +1 -1
- package/dist/{38843.29e34a5e5293cee51566.bundle.js → 38843.7cf0aca4cc512c447e29.bundle.js} +2 -2
- package/dist/{38843.29e34a5e5293cee51566.bundle.js.map → 38843.7cf0aca4cc512c447e29.bundle.js.map} +1 -1
- package/dist/{39518.0ca97879b92271d7c5e2.bundle.js → 39518.cbb394dbd1fb5c717e82.bundle.js} +2 -2
- package/dist/{39518.0ca97879b92271d7c5e2.bundle.js.map → 39518.cbb394dbd1fb5c717e82.bundle.js.map} +1 -1
- package/dist/{39539.7cea6717cc3a5ba91617.bundle.js → 39539.63178d205aa9af450438.bundle.js} +2 -2
- package/dist/{39539.7cea6717cc3a5ba91617.bundle.js.map → 39539.63178d205aa9af450438.bundle.js.map} +1 -1
- package/dist/40516.3cfaf1ff4704c038f944.bundle.js +2 -0
- package/dist/40516.3cfaf1ff4704c038f944.bundle.js.map +1 -0
- package/dist/{41453.4ae219d972a187c36bfc.bundle.js → 41453.3a71e125d59ca56c3e48.bundle.js} +2 -2
- package/dist/{41453.4ae219d972a187c36bfc.bundle.js.map → 41453.3a71e125d59ca56c3e48.bundle.js.map} +1 -1
- package/dist/{42129.0314e45b4b818b01b71f.bundle.js → 42129.6bbb7e9d5f3be5d0cb47.bundle.js} +2 -2
- package/dist/{42129.0314e45b4b818b01b71f.bundle.js.map → 42129.6bbb7e9d5f3be5d0cb47.bundle.js.map} +1 -1
- package/dist/{44444.02026ff20e2a843dc05b.bundle.js → 44444.f65e3b550875b4b6e1a8.bundle.js} +2 -2
- package/dist/{44444.02026ff20e2a843dc05b.bundle.js.map → 44444.f65e3b550875b4b6e1a8.bundle.js.map} +1 -1
- package/dist/44874.b16be286176dfe4aa766.bundle.js +2 -0
- package/dist/44874.b16be286176dfe4aa766.bundle.js.map +1 -0
- package/dist/49539.63984d5b37bc8b9a7244.bundle.js +2 -0
- package/dist/49539.63984d5b37bc8b9a7244.bundle.js.map +1 -0
- package/dist/{51087.b072d1c0e53403535283.bundle.js → 51087.1e118e7fe32a8c09d6cb.bundle.js} +2 -2
- package/dist/51087.1e118e7fe32a8c09d6cb.bundle.js.map +1 -0
- package/dist/{55862.5e8602827fbf72e60cc2.bundle.js → 55862.81278272f7885ce93baf.bundle.js} +2 -2
- package/dist/{55862.5e8602827fbf72e60cc2.bundle.js.map → 55862.81278272f7885ce93baf.bundle.js.map} +1 -1
- package/dist/{58306.94b9336f68d11bdd72f0.bundle.js → 58306.061bfe57a80e266022a1.bundle.js} +2 -2
- package/dist/{58306.94b9336f68d11bdd72f0.bundle.js.map → 58306.061bfe57a80e266022a1.bundle.js.map} +1 -1
- package/dist/60039.5f9e955234f5eaf33372.bundle.js +2 -0
- package/dist/60039.5f9e955234f5eaf33372.bundle.js.map +1 -0
- package/dist/63415.7a4dfa072b5665c5995b.bundle.js +2 -0
- package/dist/63415.7a4dfa072b5665c5995b.bundle.js.map +1 -0
- package/dist/64118.edc8ed6671017d09ff4e.bundle.js +2 -0
- package/dist/64118.edc8ed6671017d09ff4e.bundle.js.map +1 -0
- package/dist/{67888.772326168aed83cbad9c.bundle.js → 67888.6a4fedd47a2764fdb04b.bundle.js} +2 -2
- package/dist/{67888.772326168aed83cbad9c.bundle.js.map → 67888.6a4fedd47a2764fdb04b.bundle.js.map} +1 -1
- package/dist/71920.c171884910616d02e2c6.bundle.js +2 -0
- package/dist/71920.c171884910616d02e2c6.bundle.js.map +1 -0
- package/dist/{72379.8a3290df05f18f8c65bd.bundle.js → 72379.d82f665d3a8b231008a3.bundle.js} +2 -2
- package/dist/{72379.8a3290df05f18f8c65bd.bundle.js.map → 72379.d82f665d3a8b231008a3.bundle.js.map} +1 -1
- package/dist/{73667.52fdbdadddafe9e9559b.bundle.js → 73667.5a32fae13853f9158d8b.bundle.js} +2 -2
- package/dist/{73667.52fdbdadddafe9e9559b.bundle.js.map → 73667.5a32fae13853f9158d8b.bundle.js.map} +1 -1
- package/dist/{73793.7e812bab1754ddd5efb5.bundle.js → 73793.88917a280c5cbacfd4c5.bundle.js} +2 -2
- package/dist/{73793.7e812bab1754ddd5efb5.bundle.js.map → 73793.88917a280c5cbacfd4c5.bundle.js.map} +1 -1
- package/dist/73964.7a3038b5726d50c1a051.bundle.js +2 -0
- package/dist/73964.7a3038b5726d50c1a051.bundle.js.map +1 -0
- package/dist/{75282.2f97d3a7d7f3fdd7aebf.bundle.js → 75282.865c935a564591b19c85.bundle.js} +2 -2
- package/dist/{75282.2f97d3a7d7f3fdd7aebf.bundle.js.map → 75282.865c935a564591b19c85.bundle.js.map} +1 -1
- package/dist/75849.d9fcfe95fed333bad2d0.bundle.js +2 -0
- package/dist/75849.d9fcfe95fed333bad2d0.bundle.js.map +1 -0
- package/dist/{78250.73e3013c5b2ebdddbf38.bundle.js → 78250.c266986c29f5c73eb46a.bundle.js} +2 -2
- package/dist/{78250.73e3013c5b2ebdddbf38.bundle.js.map → 78250.c266986c29f5c73eb46a.bundle.js.map} +1 -1
- package/dist/7928.9ab4b363abb28bfc6bd5.bundle.js +2 -0
- package/dist/7928.9ab4b363abb28bfc6bd5.bundle.js.map +1 -0
- package/dist/{79329.3d912887ba7e96090fb4.bundle.js → 79329.8d230cc14746653003ee.bundle.js} +2 -2
- package/dist/{79329.3d912887ba7e96090fb4.bundle.js.map → 79329.8d230cc14746653003ee.bundle.js.map} +1 -1
- package/dist/{82926.93a59d42bf8d49aaac8e.bundle.js → 82926.0cb2c4faf483e67f5e7f.bundle.js} +2 -2
- package/dist/{82926.93a59d42bf8d49aaac8e.bundle.js.map → 82926.0cb2c4faf483e67f5e7f.bundle.js.map} +1 -1
- package/dist/85609.68438b4955212d5fcb84.bundle.js +2 -0
- package/dist/85609.68438b4955212d5fcb84.bundle.js.map +1 -0
- package/dist/85788.501c7244b890d519f8cf.bundle.js +2 -0
- package/dist/85788.501c7244b890d519f8cf.bundle.js.map +1 -0
- package/dist/{89695.4ee87c52d4088115c51e.bundle.js → 89695.b7e90a123bc2875ccae4.bundle.js} +2 -2
- package/dist/89695.b7e90a123bc2875ccae4.bundle.js.map +1 -0
- package/dist/{9062.3541de664710a36fdac7.bundle.js → 9062.9bb14aa1e3d51036c7fe.bundle.js} +2 -2
- package/dist/{9062.3541de664710a36fdac7.bundle.js.map → 9062.9bb14aa1e3d51036c7fe.bundle.js.map} +1 -1
- package/dist/96089.4317e132ef8cc0033f83.bundle.js +2 -0
- package/dist/96089.4317e132ef8cc0033f83.bundle.js.map +1 -0
- package/dist/{99448.384b74c734331e5f8909.bundle.js → 99448.2ecdf14415bcd9299354.bundle.js} +2 -2
- package/dist/{99448.384b74c734331e5f8909.bundle.js.map → 99448.2ecdf14415bcd9299354.bundle.js.map} +1 -1
- package/dist/css/ttyg/chat-item-details.css +1 -1
- package/dist/css/ttyg/chat-panel.css +1 -1
- package/dist/i18n/locale-en.json +3 -0
- package/dist/i18n/locale-fr.json +3 -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 +5 -5
- package/dist/js/angular/ttyg/templates/chat-list.html +2 -2
- package/dist/js/angular/ttyg/templates/chat-panel.html +12 -7
- 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 +2 -2
- 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.2bd696723af2573e8bb7.js → legacyWorkbench.ffd119cc335034d736cc.js} +3 -3
- package/dist/{legacyWorkbench.2bd696723af2573e8bb7.js.map → legacyWorkbench.ffd119cc335034d736cc.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/package.json +1 -1
- package/dist/12358.2061f29dc113149946a3.bundle.js +0 -3
- package/dist/12358.2061f29dc113149946a3.bundle.js.map +0 -1
- package/dist/19402.07424b4b7c9dd775d860.bundle.js +0 -2
- package/dist/19402.07424b4b7c9dd775d860.bundle.js.map +0 -1
- package/dist/21142.ec45fad4d52b36961d17.bundle.js +0 -2
- package/dist/21142.ec45fad4d52b36961d17.bundle.js.map +0 -1
- package/dist/21195.caae6cc33d755ad52df4.bundle.js +0 -2
- package/dist/21195.caae6cc33d755ad52df4.bundle.js.map +0 -1
- package/dist/29350.9976c09d5cdaa48ecb19.bundle.js +0 -2
- package/dist/29350.9976c09d5cdaa48ecb19.bundle.js.map +0 -1
- package/dist/36633.bd17a2028ef302870ec4.bundle.js +0 -2
- package/dist/36633.bd17a2028ef302870ec4.bundle.js.map +0 -1
- package/dist/36665.eda6cfdf545f2608a6c7.bundle.js +0 -2
- package/dist/36665.eda6cfdf545f2608a6c7.bundle.js.map +0 -1
- package/dist/40516.734b24eead67142c4045.bundle.js +0 -2
- package/dist/40516.734b24eead67142c4045.bundle.js.map +0 -1
- package/dist/44874.5854c207bbe2c4f2438e.bundle.js +0 -2
- package/dist/44874.5854c207bbe2c4f2438e.bundle.js.map +0 -1
- package/dist/49539.d253a79e8b9710776e48.bundle.js +0 -2
- package/dist/49539.d253a79e8b9710776e48.bundle.js.map +0 -1
- package/dist/51087.b072d1c0e53403535283.bundle.js.map +0 -1
- package/dist/60039.cb9262af0bc63b635c76.bundle.js +0 -2
- package/dist/60039.cb9262af0bc63b635c76.bundle.js.map +0 -1
- package/dist/63415.81af22cc29be1144e07f.bundle.js +0 -2
- package/dist/63415.81af22cc29be1144e07f.bundle.js.map +0 -1
- package/dist/64118.fb6952c8ef6fc9117f35.bundle.js +0 -2
- package/dist/64118.fb6952c8ef6fc9117f35.bundle.js.map +0 -1
- package/dist/71920.46e7b0ec1d22adcd8e55.bundle.js +0 -2
- package/dist/71920.46e7b0ec1d22adcd8e55.bundle.js.map +0 -1
- package/dist/73964.fd1ad5e7aa228ad4cbbb.bundle.js +0 -2
- package/dist/73964.fd1ad5e7aa228ad4cbbb.bundle.js.map +0 -1
- package/dist/75849.bd0bdefa903741034a71.bundle.js +0 -2
- package/dist/75849.bd0bdefa903741034a71.bundle.js.map +0 -1
- package/dist/7928.7900a3911c83495d74dd.bundle.js +0 -2
- package/dist/7928.7900a3911c83495d74dd.bundle.js.map +0 -1
- package/dist/85609.680b755726c66ea1de34.bundle.js +0 -2
- package/dist/85609.680b755726c66ea1de34.bundle.js.map +0 -1
- package/dist/85788.4e0818c48b6f29153db4.bundle.js +0 -2
- package/dist/85788.4e0818c48b6f29153db4.bundle.js.map +0 -1
- package/dist/89695.4ee87c52d4088115c51e.bundle.js.map +0 -1
- package/dist/96089.7e28823f34c450de1f7e.bundle.js +0 -2
- package/dist/96089.7e28823f34c450de1f7e.bundle.js.map +0 -1
- /package/dist/{12358.2061f29dc113149946a3.bundle.js.LICENSE.txt → 12358.4be185f89eebea9c35bf.bundle.js.LICENSE.txt} +0 -0
- /package/dist/{legacyWorkbench.2bd696723af2573e8bb7.js.LICENSE.txt → legacyWorkbench.ffd119cc335034d736cc.js.LICENSE.txt} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const __webpack_id__=29350;export const __webpack_ids__=[29350,49539,65191,70826,71920,84430];export const __webpack_modules__={29350:(e,t,n)=>{n.r(t);var a=n(69937),o=n(71920);function E(e,t,n,E,i){return{restrict:"E",templateUrl:"js/angular/ttyg/templates/agent-list.html",scope:{agentList:"=",agentListFilterModel:"="},link:(E,l,r)=>{E.selectedAgent=void 0,E.selectedAgentsFilter=void 0,E.deletingAgent=void 0,E.onEditAgent=t=>{e.emit(o.TTYGEventName.EDIT_AGENT,t)},E.onExternalIntegration=e=>{i.open(e)},E.onCloneAgent=t=>{e.emit(o.TTYGEventName.CLONE_AGENT,t)},E.onDeleteAgent=E=>{const i=n.instant("ttyg.agent.delete_agent_modal.title"),l=(0,a.Gz)(n.instant("ttyg.agent.delete_agent_modal.body",{agentName:E.name}));t.openConfirmation(i,l,()=>e.emit(o.TTYGEventName.DELETE_AGENT,E))},E.onAgentsFilterChange=e=>{E.selectedAgentsFilter=e,E.selectedAgentsFilter&&E.agentList.filterByRepository(E.selectedAgentsFilter.key)};const d=()=>{const e=E.agentListFilterModel.find(e=>e.selected);E.selectedAgentsFilter=e||E.agentListFilterModel[0],E.onAgentsFilterChange(E.selectedAgentsFilter)},s=[];s.push(E.$watch("agentListFilterModel",d)),s.push(e.subscribe(o.TTYGEventName.DELETING_AGENT,e=>{E.deletingAgent=e})),s.push(e.onSelectedAgentChanged(e=>{E.selectedAgent=e})),E.$on("$destroy",()=>{s.forEach(e=>e())}),d()}}}n(84430),angular.module("graphdb.framework.ttyg.directives.agent-list",["graphdb.framework.ttyg.services.externalIntegrationModal"]).directive("agentList",E),E.$inject=["TTYGContextService","ModalService","$translate","$uibModal","ExternalIntegrationModalService"]},65191:()=>{function e(e,t,n,a,o){e.externalIntegrationConfiguration=o.externalIntegrationConfiguration,e.difyExtension=o.difyExtensionUrl,e.queryMethods=o.queryMethodsUrl,e.agentId=o.agentId,e.agentName=o.agentName,e.close=()=>{t.dismiss({})},e.onCloseExternalIntegrationConfigurationModal=()=>{t.dismiss({})}}angular.module("graphdb.framework.ttyg.controllers.external-integration-configuration-modal",[]).controller("ExternalIntegrationConfigurationModalController",e),e.$inject=["$scope","$uibModalInstance","ModalService","$translate","dialogModel"]},70826:(e,t,n)=>{n.r(t),n.d(t,{AGENTS_FILTER_ALL_KEY:()=>o,AGENT_OPERATION:()=>E,TTYG_ERROR_MSG_LENGTH:()=>a});const a=100,o="ALL",E={CREATE:"create",EDIT:"edit",CLONE:"clone"}},71920:(e,t,n)=>{n.r(t),n.d(t,{TTYGEventName:()=>E});var a=n(98980);function o(e){let t,n,o,i,l,r={},d=!1;const s=()=>(0,a.cloneDeep)(t),g=()=>(0,a.cloneDeep)(n),T=e=>{n=(0,a.cloneDeep)(e),D(E.CHAT_LIST_UPDATED,g())},c=()=>(0,a.cloneDeep)(o),A=()=>(0,a.cloneDeep)(i),_=()=>(0,a.cloneDeep)(r),C=e=>!!r[e],S=()=>d,D=(t,n)=>{e.emitSync(t,(0,a.cloneDeep)(n))},p=(t,n)=>e.subscribeSync(t,e=>n(e));return{resetContext:()=>{t=void 0,n=void 0,o=void 0,i=void 0,r={},l=void 0,d=!1},emit:D,subscribe:p,getChats:g,updateChats:T,addChat:e=>{n.appendChat(e),T(n)},replaceChat:(e,t)=>{n.replaceChat(e,t),T(n)},onChatsListChanged:e=>(n&&angular.isFunction(e)&&e(g()),p(E.CHAT_LIST_UPDATED,t=>e(t))),getSelectedChat:c,selectChat:e=>{o&&o.id===e.id||(o=(0,a.cloneDeep)(e),D(E.SELECT_CHAT,c()))},deselectChat:()=>{o=void 0,D(E.SELECT_CHAT,c())},deleteChat:e=>{n.deleteChat(e),T(n)},onSelectedChatChanged:e=>(angular.isFunction(e)&&e(c()),p(E.SELECT_CHAT,t=>e(t))),updateSelectedChat:e=>{o&&o.id&&e&&o.id!==e.id||(o=(0,a.cloneDeep)(e),D(E.SELECTED_CHAT_UPDATED,c()))},onSelectedChatUpdated:e=>(o&&angular.isFunction(e)&&e(c()),p(E.SELECTED_CHAT_UPDATED,t=>e(t))),onLastMessageReceived:e=>(o&&angular.isFunction(e)&&e(c()),p(E.LAST_MESSAGE_RECEIVED,t=>e(t))),updateAgents:e=>{t=(0,a.cloneDeep)(e),D(E.AGENT_LIST_UPDATED,s())},onAgentsListChanged:e=>(t&&angular.isFunction(e)&&e(s()),p(E.AGENT_LIST_UPDATED,t=>e(t))),getAgents:s,getAgent:e=>{if(t)return(0,a.cloneDeep)(t.getAgent(e))},selectAgent:e=>{i=(0,a.cloneDeep)(e),D(E.AGENT_SELECTED,A())},getSelectedAgent:A,onSelectedAgentChanged:e=>(i&&angular.isFunction(e)&&e(A()),p(E.AGENT_SELECTED,t=>e(t))),getDefaultAgent:()=>(0,a.cloneDeep)(l),setDefaultAgent:e=>{l=e},setCanModifyAgent:e=>{d=(0,a.cloneDeep)(e),D(E.CAN_MODIFY_AGENT_UPDATED,S())},getCanModifyAgent:S,onCanUpdateAgentUpdated:e=>(angular.isFunction(e)&&e(S()),p(E.CAN_MODIFY_AGENT_UPDATED,t=>e(t))),hasExplainResponse:C,toggleExplainResponse:e=>{C(e)&&(r[e].expanded=!r[e].expanded,D(E.EXPLAIN_RESPONSE_CACHE_UPDATED,_()))},getExplainResponse:e=>(0,a.cloneDeep)(r[e]),addExplainResponseCache:e=>{r[e.answerId]=(0,a.cloneDeep)(e),D(E.EXPLAIN_RESPONSE_CACHE_UPDATED,_())},onExplainResponseCacheUpdated:e=>(angular.isFunction(e)&&e(_()),p(E.EXPLAIN_RESPONSE_CACHE_UPDATED,t=>e(t)))}}angular.module("graphdb.framework.ttyg.services.ttygcontext",[]).factory("TTYGContextService",o),o.$inject=["EventEmitterService","TTYGService"];const E={CREATE_CHAT:"createChat",CREATE_CHAT_SUCCESSFUL:"chatCreated",CREATE_CHAT_FAILURE:"chatCreationFailed",RENAME_CHAT:"renameChat",RENAME_CHAT_SUCCESSFUL:"chatRenamed",RENAME_CHAT_FAILURE:"chatRenamedFailure",SELECT_CHAT:"selectChat",SELECTED_CHAT_UPDATED:"selectChatUpdated",LAST_MESSAGE_RECEIVED:"lastMessageReceived",DELETING_CHAT:"deletingChat",DELETE_CHAT:"deleteChat",DELETE_CHAT_SUCCESSFUL:"chatDeleted",DELETE_CHAT_FAILURE:"chatDeletedFailure",CHAT_EXPORT:"chatExport",CHAT_EXPORT_SUCCESSFUL:"chatExportSuccess",CHAT_EXPORT_FAILURE:"chatExportFailure",CHAT_LIST_UPDATED:"chatListUpdated",ASK_QUESTION:"askQuestion",ASK_QUESTION_FAILURE:"askQuestionFailure",CONTINUE_CHAT_RUN:"continueChatRun",LOAD_CHATS:"loadChats",LOAD_CHAT_SUCCESSFUL:"loadChatSuccess",LOAD_CHAT_FAILURE:"loadChatFailure",AGENT_LIST_UPDATED:"agentListUpdated",OPEN_AGENT_SETTINGS:"openAgentSettings",EDIT_AGENT:"editAgent",CLONE_AGENT:"cloneAgent",DELETE_AGENT:"deleteAgent",AGENT_DELETED:"agentDeleted",DELETING_AGENT:"deletingAgent",AGENT_SELECTED:"agentSelected",GO_TO_CREATE_SIMILARITY_VIEW:"goToCreateSimilarityView",GO_TO_CONNECTORS_VIEW:"goToConnectorsView",GO_TO_AUTOCOMPLETE_INDEX_VIEW:"goToAutocompleteIndexView",EXPLAIN_RESPONSE:"explainResponse",EXPLAIN_RESPONSE_CACHE_UPDATED:"explainResponseCacheUpdated",GO_TO_SPARQL_EDITOR:"openQueryInSparqlEditor",CAN_MODIFY_AGENT_UPDATED:"canModifyAgentUpdated"}},84430:(e,t,n)=>{n.r(t),n(65191);var a=n(70826);function o(e,t,n){return{open:function(o){return t.getExternalUrl().then(t=>{const n=function(e,t){return{agentName:e.name,agentId:e.id,queryMethodsUrl:`${t}/rest/llm/tool/ttyg/${e.id}`,difyExtensionUrl:`${t}/rest/llm/ttyg/${e.id}/dify`}}(o,t.data);return e.open({templateUrl:"js/angular/ttyg/templates/modal/external-integration-configuration-modal.html",controller:"ExternalIntegrationConfigurationModalController",windowClass:"external-integration-configuration-modal",backdrop:"static",resolve:{dialogModel:()=>n}}).result.then(()=>{}).catch(()=>{})}).catch(e=>{n.error(getError(e,0,a.TTYG_ERROR_MSG_LENGTH))})}}}angular.module("graphdb.framework.ttyg.services.externalIntegrationModal",["graphdb.framework.ttyg.controllers.external-integration-configuration-modal"]).factory("ExternalIntegrationModalService",o),o.$inject=["$uibModal","LocationsRestService","toastr"]}};
|
|
2
|
-
//# sourceMappingURL=29350.9976c09d5cdaa48ecb19.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"29350.9976c09d5cdaa48ecb19.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/directives/agent-list.directive.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/ttyg/services/constants.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/services/ttyg-context.service.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/services/externalIntegrationModal.service.js"],"sourcesContent":["import {decodeHTML} from \"../../../../app\";\nimport {TTYGEventName} from \"../services/ttyg-context.service\";\nimport 'angular/ttyg/services/externalIntegrationModal.service';\n\nconst modules = [\n 'graphdb.framework.ttyg.services.externalIntegrationModal'\n];\n\nangular\n .module('graphdb.framework.ttyg.directives.agent-list', modules)\n .directive('agentList', AgentListComponent);\n\nAgentListComponent.$inject = ['TTYGContextService', 'ModalService', '$translate', '$uibModal', 'ExternalIntegrationModalService'];\n\nfunction AgentListComponent(TTYGContextService, ModalService, $translate, $uibModal, ExternalIntegrationModalService) {\n return {\n restrict: 'E',\n templateUrl: 'js/angular/ttyg/templates/agent-list.html',\n scope: {\n agentList: '=',\n agentListFilterModel: '='\n },\n link: ($scope, element, attrs) => {\n\n // =========================\n // Public variables\n // =========================\n\n /**\n * Selected agent.\n * @type {AgentModel|undefined}\n */\n $scope.selectedAgent = undefined;\n\n /**\n * The selected agents filter.\n * @type {{key: string, label: string}|undefined}\n */\n $scope.selectedAgentsFilter = undefined;\n\n /**\n * An event instance holding the agent to be deleted and if the progress is ongoing.\n * @type {agentId: string, inProgress: boolean}\n */\n $scope.deletingAgent = undefined;\n\n // =========================\n // Private variables\n // =========================\n\n // =========================\n // Public functions\n // =========================\n\n /**\n * Triggers the agent edit process.\n * @param {AgentModel} agent\n */\n $scope.onEditAgent = (agent) => {\n TTYGContextService.emit(TTYGEventName.EDIT_AGENT, agent);\n };\n\n /**\n * Opens a modal to copy the external integration for a given agent.\n *\n * Used when the agent is already provided.\n *\n * @function\n * @param {AgentModel} agent - The agent for which to configure the integration.\n */\n $scope.onExternalIntegration = (agent) => {\n ExternalIntegrationModalService.open(agent);\n };\n\n /**\n * Triggers the agent clone process.\n * @param {AgentModel} agent\n */\n $scope.onCloneAgent = (agent) => {\n TTYGContextService.emit(TTYGEventName.CLONE_AGENT, agent);\n };\n\n /**\n * Triggers the agent delete process.\n * @param {AgentModel} agent\n */\n $scope.onDeleteAgent = (agent) => {\n const title = $translate.instant('ttyg.agent.delete_agent_modal.title');\n const confirmDeleteMessage = decodeHTML($translate.instant('ttyg.agent.delete_agent_modal.body', {agentName: agent.name}));\n ModalService.openConfirmation(title, confirmDeleteMessage, () => TTYGContextService.emit(TTYGEventName.DELETE_AGENT, agent));\n };\n\n /**\n * Filters the agents based on the selected repository.\n * @param {AgentListFilterModel} selectedFilter\n */\n $scope.onAgentsFilterChange = (selectedFilter) => {\n $scope.selectedAgentsFilter = selectedFilter;\n if ($scope.selectedAgentsFilter) {\n $scope.agentList.filterByRepository($scope.selectedAgentsFilter.key);\n }\n };\n\n // =========================\n // Private functions\n // =========================\n\n const updateSelectedAgentsFilter = () => {\n const selectedFilter = $scope.agentListFilterModel.find((filter) => filter.selected);\n $scope.selectedAgentsFilter = selectedFilter || $scope.agentListFilterModel[0];\n $scope.onAgentsFilterChange($scope.selectedAgentsFilter);\n };\n\n /**\n * Handles the progress of deletion of an agent.\n * @param {{agentId: string, inProgress: boolean}} event\n */\n const onDeletingAgent = (event) => {\n $scope.deletingAgent = event;\n };\n\n /**\n * Handles the selection of an agent.\n * @param {AgentModel} agent\n */\n const onSelectedAgentChanged = (agent) => {\n $scope.selectedAgent = agent;\n };\n\n // =========================\n // Subscriptions\n // =========================\n\n const subscriptions = [];\n\n const removeAllSubscribers = () => {\n subscriptions.forEach((subscription) => subscription());\n };\n\n subscriptions.push($scope.$watch('agentListFilterModel', updateSelectedAgentsFilter));\n subscriptions.push(TTYGContextService.subscribe(TTYGEventName.DELETING_AGENT, onDeletingAgent));\n subscriptions.push(TTYGContextService.onSelectedAgentChanged(onSelectedAgentChanged));\n\n // Deregister the watcher when the scope/directive is destroyed\n $scope.$on('$destroy', removeAllSubscribers);\n\n // =========================\n // Initialization\n // =========================\n\n function initialize() {\n updateSelectedAgentsFilter();\n }\n initialize();\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","/**\n * The length of the message to be cut and displayed to the user from the error\n * server's response.\n * @type {number}\n */\nexport const TTYG_ERROR_MSG_LENGTH = 100;\n\n/**\n * The key to use when filtering agents indicating that all agents should be shown.\n * @type {string}\n */\nexport const AGENTS_FILTER_ALL_KEY = 'ALL';\n\n/**\n * An enum with possible agent operations. This is used in the agent settings modal.\n */\nexport const AGENT_OPERATION = {\n CREATE: 'create',\n EDIT: 'edit',\n CLONE: 'clone'\n};\n","import {cloneDeep} from 'lodash';\n\nangular\n .module('graphdb.framework.ttyg.services.ttygcontext', [])\n .factory('TTYGContextService', TTYGContextService);\n\nTTYGContextService.$inject = ['EventEmitterService', 'TTYGService'];\n\nfunction TTYGContextService(EventEmitterService) {\n\n /**\n * The list of agents.\n * @type {AgentListModel}\n * @private\n */\n let _agents = undefined;\n\n /**\n * The ChatsListModel.\n * @type {ChatsListModel}\n * @private\n */\n let _chats = undefined;\n\n /**\n * The currently selected in the UI chat which is used for conversation.\n * @type {ChatModel|undefined}\n * @private\n */\n let _selectedChat = undefined;\n\n /**\n * The currently selected in the UI agent which is used for conversation.\n * @type {AgentModel|undefined}\n * @private\n */\n let _selectedAgent = undefined;\n\n /**\n * Stores information about loaded explain responses.\n * The key is the answer ID, and the value is an instance of {@see ExplainResponseModel} that holds the explanation message.\n *\n * @type {{[key: string]: ExplainResponseModel}}\n */\n let _explainCache = {};\n\n /**\n * The default agent values.\n * @type {AgentModel|undefined}\n * @private\n */\n let _defaultAgent = undefined;\n\n let _canModifyAgent = false;\n\n const resetContext = () => {\n _agents = undefined;\n _chats = undefined;\n _selectedChat = undefined;\n _selectedAgent = undefined;\n _explainCache = {};\n _defaultAgent = undefined;\n _canModifyAgent = false;\n };\n\n /**\n * @return {Promise<AgentModel>}\n */\n const getDefaultAgent = () => {\n return cloneDeep(_defaultAgent);\n };\n\n const setDefaultAgent = (agent) => {\n _defaultAgent = agent;\n };\n\n /**\n * @return {AgentListModel}\n */\n const getAgents = () => {\n return cloneDeep(_agents);\n };\n\n const getAgent = (agentId) => {\n if (_agents) {\n return cloneDeep(_agents.getAgent(agentId));\n }\n };\n\n /**\n * @return {ChatsListModel}\n */\n const getChats = () => {\n return cloneDeep(_chats);\n };\n\n /**\n * @param {ChatsListModel} chats\n */\n const updateChats = (chats) => {\n _chats = cloneDeep(chats);\n emit(TTYGEventName.CHAT_LIST_UPDATED, getChats());\n };\n\n /**\n * Deletes the chat with the provided <code>chatId</code>.\n * @param {ChatModel} chat\n */\n const deleteChat = (chat) => {\n _chats.deleteChat(chat);\n updateChats(_chats);\n };\n\n const addChat = (newChat) => {\n _chats.appendChat(newChat);\n updateChats(_chats);\n };\n\n const replaceChat = (newChat, oldChat) => {\n _chats.replaceChat(newChat, oldChat);\n updateChats(_chats);\n };\n\n /** Subscribes to the 'chatListUpdated' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onChatsListChanged = (callback) => {\n if (_chats && angular.isFunction(callback)) {\n callback(getChats());\n }\n return subscribe(TTYGEventName.CHAT_LIST_UPDATED, (chats) => callback(chats));\n };\n\n /**\n * @return {ChatModel}\n */\n const getSelectedChat = () => {\n return cloneDeep(_selectedChat);\n };\n\n /**\n * Updates the selected chat with the provided <code>selectedChat</code> and emits the 'selectChat' event\n * to notify listeners that a new chat has been selected.\n *\n * @param {ChatModel} selectedChat - The chat object to select.\n */\n const selectChat = (selectedChat) => {\n if (!_selectedChat || _selectedChat.id !== selectedChat.id) {\n _selectedChat = cloneDeep(selectedChat);\n emit(TTYGEventName.SELECT_CHAT, getSelectedChat());\n }\n };\n\n const deselectChat = () => {\n _selectedChat = undefined;\n emit(TTYGEventName.SELECT_CHAT, getSelectedChat());\n };\n\n /**\n * Subscribes to the 'selectChat' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onSelectedChatChanged = (callback) => {\n if (angular.isFunction(callback)) {\n callback(getSelectedChat());\n }\n return subscribe(TTYGEventName.SELECT_CHAT, (selectedChat) => callback(selectedChat));\n };\n\n /**\n * Updates the selected chat and emits the 'selectChatUpdated' event to notify listeners that a property\n * of the selected chat has changed.\n *\n * If the ID of the passed chat differs from the current selected chat, no action will occur.\n *\n * The selected chat can be updated through {@link TTYGContextService#selectChat}.\n *\n * @param {ChatModel} chat - The chat object that is being updated.\n */\n const updateSelectedChat = (chat) => {\n if (!_selectedChat || !_selectedChat.id || !chat || _selectedChat.id === chat.id) {\n _selectedChat = cloneDeep(chat);\n emit(TTYGEventName.SELECTED_CHAT_UPDATED, getSelectedChat());\n }\n };\n\n /** Subscribes to the 'selectChat' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onSelectedChatUpdated = (callback) => {\n if (_selectedChat && angular.isFunction(callback)) {\n callback(getSelectedChat());\n }\n return subscribe(TTYGEventName.SELECTED_CHAT_UPDATED, (selectedChat) => callback(selectedChat));\n };\n\n /** Subscribes to the 'lastMessageReceived' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onLastMessageReceived = (callback) => {\n if (_selectedChat && angular.isFunction(callback)) {\n callback(getSelectedChat());\n }\n return subscribe(TTYGEventName.LAST_MESSAGE_RECEIVED, (selectedChat) => callback(selectedChat));\n };\n\n /**\n * @param {AgentListModel} agents\n */\n const updateAgents = (agents) => {\n _agents = cloneDeep(agents);\n emit(TTYGEventName.AGENT_LIST_UPDATED, getAgents());\n };\n\n /**\n * Subscribes to the 'agentListUpdated' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onAgentsListChanged = (callback) => {\n if (_agents && angular.isFunction(callback)) {\n callback(getAgents());\n }\n return subscribe(TTYGEventName.AGENT_LIST_UPDATED, (selectedChat) => callback(selectedChat));\n };\n\n /**\n * @return {AgentModel}\n */\n const getSelectedAgent = () => {\n return cloneDeep(_selectedAgent);\n };\n\n /**\n * Updates the selected agent with the provided <code>selectedAgent</code> and emits the 'agentSelected' event\n * to notify listeners that a new agent has been selected.\n *\n * @param {AgentModel} selectedAgent - The instance of selected agent.\n */\n const selectAgent = (selectedAgent) => {\n _selectedAgent = cloneDeep(selectedAgent);\n emit(TTYGEventName.AGENT_SELECTED, getSelectedAgent());\n };\n\n const _getExplainResponseCache = () => {\n return cloneDeep(_explainCache);\n };\n\n /**\n * Gets the explain response.\n * @param {string} answerId\n * @return {ExplainResponseModel}\n */\n const getExplainResponse = (answerId) => {\n return cloneDeep(_explainCache[answerId]);\n };\n\n /**\n * Adds the <code>explainResponse</code> into the explain response cache.\n *\n * @param {ExplainResponseModel} explainResponse\n */\n const addExplainResponseCache = (explainResponse) => {\n _explainCache[explainResponse.answerId] = cloneDeep(explainResponse);\n emit(TTYGEventName.EXPLAIN_RESPONSE_CACHE_UPDATED, _getExplainResponseCache());\n };\n\n const hasExplainResponse = (answerId) => {\n return !!_explainCache[answerId];\n };\n\n const toggleExplainResponse = (answerId) => {\n if (hasExplainResponse(answerId)) {\n _explainCache[answerId].expanded = !_explainCache[answerId].expanded;\n emit(TTYGEventName.EXPLAIN_RESPONSE_CACHE_UPDATED, _getExplainResponseCache());\n }\n };\n\n /**\n * Subscribes to the 'explainResponseCacheUpdated' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onExplainResponseCacheUpdated = (callback) => {\n if (angular.isFunction(callback)) {\n callback(_getExplainResponseCache());\n }\n return subscribe(TTYGEventName.EXPLAIN_RESPONSE_CACHE_UPDATED, (explainResponses) => callback(explainResponses));\n };\n\n /**\n * Subscribes to the 'agentSelected' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onSelectedAgentChanged = (callback) => {\n if (_selectedAgent && angular.isFunction(callback)) {\n callback(getSelectedAgent());\n }\n return subscribe(TTYGEventName.AGENT_SELECTED, (selectedChat) => callback(selectedChat));\n };\n\n /**\n * Updates the \"canModifyAgent\" flag and emits the 'canModifyAgentUpdated' event to notify listeners that the canModifyAgent flag is changed.\n *\n * @param {boolean} canModifyAgent\n */\n const setCanModifyAgent = (canModifyAgent) => {\n _canModifyAgent = cloneDeep(canModifyAgent);\n emit(TTYGEventName.CAN_MODIFY_AGENT_UPDATED, getCanModifyAgent());\n };\n\n const getCanModifyAgent = () => {\n return _canModifyAgent;\n };\n\n /**\n * Subscribes to the 'canModifyAgentUpdated' event.\n * @param {function} callback - The callback to be called when the event is fired.\n *\n * @return {function} unsubscribe function.\n */\n const onCanUpdateAgentUpdated = (callback) => {\n if (angular.isFunction(callback)) {\n callback(getCanModifyAgent());\n }\n return subscribe(TTYGEventName.CAN_MODIFY_AGENT_UPDATED, (canModifyAgent) => callback(canModifyAgent));\n };\n\n /**\n * Emits an event with a deep-cloned payload using the EventEmitterService.\n *\n * @param {string} tTYGEventName - The name of the event to emit. It must be a value from {@link TTYGEventName}.\n * @param {*} payload - The data to emit with the event. The payload is deep-cloned before emission.\n */\n const emit = (tTYGEventName, payload) => {\n EventEmitterService.emitSync(tTYGEventName, cloneDeep(payload));\n };\n\n /**\n * Subscribes to an event with the specified callback using the EventEmitterService.\n *\n * @param {string} tTYGEventName - The name of the event to subscribe to. It must be a value from {@link TTYGEventName}.\n * @param {function} callback - The function to call when the event is emitted.\n * @return {function} - Returns a function that can be called to unsubscribe from the event.\n */\n const subscribe = (tTYGEventName, callback) => {\n return EventEmitterService.subscribeSync(tTYGEventName, (payload) => callback(payload));\n };\n\n return {\n resetContext,\n emit,\n subscribe,\n // chats\n getChats,\n updateChats,\n addChat,\n replaceChat,\n onChatsListChanged,\n getSelectedChat,\n selectChat,\n deselectChat,\n deleteChat,\n onSelectedChatChanged,\n updateSelectedChat,\n onSelectedChatUpdated,\n onLastMessageReceived,\n // agents\n updateAgents,\n onAgentsListChanged,\n getAgents,\n getAgent,\n selectAgent,\n getSelectedAgent,\n onSelectedAgentChanged,\n getDefaultAgent,\n setDefaultAgent,\n setCanModifyAgent,\n getCanModifyAgent,\n onCanUpdateAgentUpdated,\n // chat explain\n hasExplainResponse,\n toggleExplainResponse,\n getExplainResponse,\n addExplainResponseCache,\n onExplainResponseCacheUpdated\n };\n}\n\nexport const TTYGEventName = {\n /**\n * Emitting the \"createChat\" event triggers a backend request to create a new chat.\n */\n CREATE_CHAT: 'createChat',\n\n /**\n * This event is emitted when a chat is successfully created.\n */\n CREATE_CHAT_SUCCESSFUL: 'chatCreated',\n\n /**\n * This event is emitted when the creation of a chat fails.\n */\n CREATE_CHAT_FAILURE: 'chatCreationFailed',\n\n RENAME_CHAT: 'renameChat',\n RENAME_CHAT_SUCCESSFUL: 'chatRenamed',\n RENAME_CHAT_FAILURE: 'chatRenamedFailure',\n\n /**\n * Emitting the \"selectChat\" event when the selected chat has been changed.\n */\n SELECT_CHAT: 'selectChat',\n\n /**\n * Emitting the \"selectChatUpdated\" event when the selected chat has been updated.\n */\n SELECTED_CHAT_UPDATED: 'selectChatUpdated',\n\n /**\n * Emitting the \"lastMessageReceived\" event when the final answer message has been received.\n */\n LAST_MESSAGE_RECEIVED: 'lastMessageReceived',\n\n /**\n * This event will be emitted when the chat delete request is in progress. The payload will contain the chat ID\n * and a boolean indicating if the deletion is in progress.\n */\n DELETING_CHAT: 'deletingChat',\n\n /**\n * This event will be emitted when the delete chat process is triggered but before the chat delete request is sent.\n */\n DELETE_CHAT: 'deleteChat',\n\n /**\n * This event will be emitted when the chat was successfully deleted.\n */\n DELETE_CHAT_SUCCESSFUL: 'chatDeleted',\n\n /**\n * This event will be emitted when the attempt to answer the question fails.\n */\n\n /**\n * This event is emitted when the deletion of a chat fails.\n */\n DELETE_CHAT_FAILURE: 'chatDeletedFailure',\n\n CHAT_EXPORT: 'chatExport',\n CHAT_EXPORT_SUCCESSFUL: 'chatExportSuccess',\n CHAT_EXPORT_FAILURE: 'chatExportFailure',\n CHAT_LIST_UPDATED: 'chatListUpdated',\n\n /**\n * Emitting the \"askQuestion\" event triggers a request to the backend to retrieve an answer to a question.\n */\n ASK_QUESTION: 'askQuestion',\n\n /**\n * This event will be emitted when the attempt to answer the question fails.\n */\n ASK_QUESTION_FAILURE: 'askQuestionFailure',\n\n /**\n * Emitting the \"continueChatRun\" event triggers a request to the backend to retrieve more remaining answers from the same chat run.\n */\n CONTINUE_CHAT_RUN: 'continueChatRun',\n\n /**\n * Emitting the \"loadChats\" event will trigger an action to loads all chats from backend server.\n */\n LOAD_CHATS: 'loadChats',\n LOAD_CHAT_SUCCESSFUL: 'loadChatSuccess',\n LOAD_CHAT_FAILURE: 'loadChatFailure',\n\n AGENT_LIST_UPDATED: 'agentListUpdated',\n\n /**\n * This event will be emitted when the create agent process is triggered through the UI but before the agent create\n * request is sent. This is used to open the agent settings dialog.\n */\n OPEN_AGENT_SETTINGS: 'openAgentSettings',\n\n /**\n * This event will be emitted when an agent needs to be edited.\n */\n EDIT_AGENT: 'editAgent',\n\n /**\n * This event will be emitted when an agent needs to be cloned.\n */\n CLONE_AGENT: 'cloneAgent',\n\n /**\n * This event will be emitted when the delete agent process is triggered but before the agent delete request is sent.\n */\n DELETE_AGENT: 'deleteAgent',\n\n /**\n * This event will be emitted when the agent was successfully deleted.\n */\n AGENT_DELETED: 'agentDeleted',\n\n /**\n * This event will be emitted when the agent delete request is in progress. The payload will contain the agent ID\n * and a boolean indicating if the deletion is in progress.\n */\n DELETING_AGENT: 'deletingAgent',\n\n /**\n * This event will be emitted when an agent is selected by the user through the UI.\n */\n AGENT_SELECTED: 'agentSelected',\n\n /**\n * This event will trigger the opening of the similarity view.\n */\n GO_TO_CREATE_SIMILARITY_VIEW: \"goToCreateSimilarityView\",\n\n /**\n * This event will trigger the opening of the connectors view.\n */\n GO_TO_CONNECTORS_VIEW: \"goToConnectorsView\",\n\n /**\n * This event will trigger the opening of the \"Autocomplete index\" view.\n */\n GO_TO_AUTOCOMPLETE_INDEX_VIEW: \"goToAutocompleteIndexView\",\n\n /**\n * This event will trigger fetching a new explanation of how the answer was generated.\n */\n EXPLAIN_RESPONSE: \"explainResponse\",\n\n /**\n * This event will be emitted when the cache with explain responses changed.\n */\n EXPLAIN_RESPONSE_CACHE_UPDATED: \"explainResponseCacheUpdated\",\n\n /**\n * This event will trigger the opening of the sparql view.\n */\n GO_TO_SPARQL_EDITOR: \"openQueryInSparqlEditor\",\n\n CAN_MODIFY_AGENT_UPDATED: \"canModifyAgentUpdated\",\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"],"names":["AgentListComponent","TTYGContextService","ModalService","$translate","$uibModal","ExternalIntegrationModalService","restrict","templateUrl","scope","agentList","agentListFilterModel","link","$scope","element","attrs","selectedAgent","undefined","selectedAgentsFilter","deletingAgent","onEditAgent","agent","emit","TTYGEventName","EDIT_AGENT","onExternalIntegration","open","onCloneAgent","CLONE_AGENT","onDeleteAgent","title","instant","confirmDeleteMessage","decodeHTML","agentName","name","openConfirmation","DELETE_AGENT","onAgentsFilterChange","selectedFilter","filterByRepository","key","updateSelectedAgentsFilter","find","filter","selected","subscriptions","push","$watch","subscribe","DELETING_AGENT","event","onSelectedAgentChanged","$on","removeAllSubscribers","forEach","subscription","angular","module","directive","$inject","ExternalIntegrationConfigurationModalController","$uibModalInstance","dialogModel","externalIntegrationConfiguration","difyExtension","difyExtensionUrl","queryMethods","queryMethodsUrl","agentId","close","dismiss","onCloseExternalIntegrationConfigurationModal","controller","TTYG_ERROR_MSG_LENGTH","AGENTS_FILTER_ALL_KEY","AGENT_OPERATION","CREATE","EDIT","CLONE","EventEmitterService","_agents","_chats","_selectedChat","_selectedAgent","_defaultAgent","_explainCache","_canModifyAgent","getAgents","cloneDeep","getChats","updateChats","chats","CHAT_LIST_UPDATED","getSelectedChat","getSelectedAgent","_getExplainResponseCache","hasExplainResponse","answerId","getCanModifyAgent","tTYGEventName","payload","emitSync","callback","subscribeSync","resetContext","addChat","newChat","appendChat","replaceChat","oldChat","onChatsListChanged","isFunction","selectChat","selectedChat","id","SELECT_CHAT","deselectChat","deleteChat","chat","onSelectedChatChanged","updateSelectedChat","SELECTED_CHAT_UPDATED","onSelectedChatUpdated","onLastMessageReceived","LAST_MESSAGE_RECEIVED","updateAgents","agents","AGENT_LIST_UPDATED","onAgentsListChanged","getAgent","selectAgent","AGENT_SELECTED","getDefaultAgent","setDefaultAgent","setCanModifyAgent","canModifyAgent","CAN_MODIFY_AGENT_UPDATED","onCanUpdateAgentUpdated","toggleExplainResponse","expanded","EXPLAIN_RESPONSE_CACHE_UPDATED","getExplainResponse","addExplainResponseCache","explainResponse","onExplainResponseCacheUpdated","explainResponses","factory","CREATE_CHAT","CREATE_CHAT_SUCCESSFUL","CREATE_CHAT_FAILURE","RENAME_CHAT","RENAME_CHAT_SUCCESSFUL","RENAME_CHAT_FAILURE","DELETING_CHAT","DELETE_CHAT","DELETE_CHAT_SUCCESSFUL","DELETE_CHAT_FAILURE","CHAT_EXPORT","CHAT_EXPORT_SUCCESSFUL","CHAT_EXPORT_FAILURE","ASK_QUESTION","ASK_QUESTION_FAILURE","CONTINUE_CHAT_RUN","LOAD_CHATS","LOAD_CHAT_SUCCESSFUL","LOAD_CHAT_FAILURE","OPEN_AGENT_SETTINGS","AGENT_DELETED","GO_TO_CREATE_SIMILARITY_VIEW","GO_TO_CONNECTORS_VIEW","GO_TO_AUTOCOMPLETE_INDEX_VIEW","EXPLAIN_RESPONSE","GO_TO_SPARQL_EDITOR","LocationsRestService","toastr","getExternalUrl","then","response","baseUrl","buildDialogModel","data","windowClass","backdrop","resolve","result","catch","error","getError"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const __webpack_id__=36633;export const __webpack_ids__=[36633];export const __webpack_modules__={36633:(e,s,t)=>{t.r(s),t.d(s,{CHAT_MESSAGE_ROLE:()=>i,ChatMessageModel:()=>_});class _{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 i={USER:"user",ASSISTANT:"assistant"}}};
|
|
2
|
-
//# sourceMappingURL=36633.bd17a2028ef302870ec4.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"36633.bd17a2028ef302870ec4.bundle.js","mappings":"wLAAO,MAAMA,EACTC,WAAAA,CAAYC,GAKRC,KAAKC,IAAMF,EAAKG,GAKhBF,KAAKG,MAAQJ,EAAKK,KAKlBJ,KAAKK,SAAWN,EAAKO,QAKrBN,KAAKO,WAA8B,IAAjBR,EAAKS,UAQvBR,KAAKS,eAAiBV,EAAKU,cAC/B,CAEA,MAAIP,GACA,OAAOF,KAAKC,GAChB,CAEA,MAAIC,CAAGQ,GACHV,KAAKC,IAAMS,CACf,CAEA,QAAIN,GACA,OAAOJ,KAAKG,KAChB,CAEA,QAAIC,CAAKM,GACLV,KAAKG,MAAQO,CACjB,CAEA,WAAIJ,GACA,OAAON,KAAKK,QAChB,CAEA,WAAIC,CAAQI,GACRV,KAAKK,SAAWK,CACpB,CAEA,aAAIF,GACA,OAAOR,KAAKO,UAChB,CAEA,aAAIC,CAAUE,GACVV,KAAKO,WAAaG,CACtB,EAGG,MAAMC,EAAoB,CAC7BC,KAAM,OACNC,UAAW,Y","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ttyg/chat-message.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"],"names":["ChatMessageModel","constructor","data","this","_id","id","_role","role","_message","message","_timestamp","timestamp","tokenUsageInfo","value","CHAT_MESSAGE_ROLE","USER","ASSISTANT"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const __webpack_id__=36665;export const __webpack_ids__=[14702,36665,45458,51490,64871,87252,89358,92561,96089];export const __webpack_modules__={14702:(t,e,s)=>{s.r(e),s.d(e,{agentInstructionsExplainMapper:()=>n});var a=s(89358);const n=t=>t?t.map(t=>new a.AgentInstructionsExplain(t)):new a.AgentInstructionsExplainList([])},19402:(t,e,s)=>{s.r(e),s.d(e,{ChatByDayModel:()=>i,ChatModel:()=>r,ChatsListModel:()=>o});var a=s(63415),n=s(93135);class r{static getEmptyChat(){const t={name:"· · ·",timestamp:Math.floor(Date.now()/1e3)};return new r(t,(0,n.md5HashGenerator)())}constructor(t,e){this.hashGenerator=e,this._id=t.id,this._name=t.name,this._timestamp=t.timestamp,this._chatHistory=t.chatHistory||new a.ChatItemsListModel,this.hash=this.generateHash()}generateHash(){return this.hashGenerator(JSON.stringify(this))}get id(){return this._id}set id(t){this._id=t}get name(){return this._name}set name(t){this.generateHash(),this._name=t}get timestamp(){return this._timestamp}set timestamp(t){this._timestamp=t}get chatHistory(){return this._chatHistory}set chatHistory(t){this._chatHistory=t||new a.ChatItemsListModel}toRenameRequestPayload(){return{name:this._name}}}class i{constructor(t){this._day=t.day,this._timestamp=t.timestamp,this._chats=t.chats}get day(){return this._day}set day(t){this._day=t}get timestamp(){return this._timestamp}set timestamp(t){this._timestamp=t}get chats(){return this._chats}set chats(t){this._chats=t}}class o{constructor(t){this._chats=t||[],this._chatsByDay=[],this.sortByTime(),this.updateChatsByDay()}sortByTime(){this._chats.sort((t,e)=>e.timestamp-t.timestamp)}updateChatTimestamp(t,e){const s=this._chats.find(e=>e.id===t);s&&(s.timestamp=e,this.sortByTime(),this.updateChatsByDay())}updateChatName(t,e){const s=this._chats.find(e=>e.id===t);s&&(s.name=e)}deleteChat(t){this._chats=this._chats.filter(e=>e.id!==t.id),this.sortByTime(),this.updateChatsByDay()}updateChatsByDay(){this._chatsByDay=[],this._chats.forEach(t=>{const e=new Date(1e3*t.timestamp).toDateString(),s=this._chatsByDay.find(t=>t.day===e);s?s.chats.push(t):this._chatsByDay.push(new i({day:e,timestamp:1e3*t.timestamp,chats:[t]}))})}appendChat(t){this._chats.push(t),this.sortByTime(),this.updateChatsByDay()}replaceChat(t,e){this._chats=this._chats.map(s=>s.id===e.id?t:s),this.sortByTime(),this.updateChatsByDay()}isEmpty(){return 0===this._chats.length}getFirstChat(){return this._chats[0]}deselectAll(){this._chats.forEach(t=>{t.selected=!1})}selectChat(t){this.deselectAll(),this._chats.forEach(e=>{e.selected=e.id===t.id})}getChat(t){return this._chats.find(e=>e.id===t)}getNonPersistedChat(){return this._chats.find(t=>!t.id)}renameChat(t){const e=this._chats.find(e=>e.id===t.id);e&&(e.name=t.name)}get chats(){return this._chats}set chats(t){this._chats=t}get chatsByDay(){return this._chatsByDay}set chatsByDay(t){this._chatsByDay=t}}},36665:(t,e,s)=>{s.r(e);var a=s(85609),n=(s(96089),s(85788)),r=s(51490),i=s(92561),o=s(14702);function h(t,e){return{getConversation:e=>t.getConversation(e).then(t=>(0,a.chatModelMapper)(t.data)),renameConversation:e=>t.renameConversation(e.id,e.toRenameRequestPayload()).then(t=>(0,a.chatModelMapper)(t.data)),exportConversation:e=>t.exportConversation(e).then(function(t){const e=t.data,s=t.headers()["content-disposition"];let a="chat-export";return s&&(a=s.split("filename=")[1],a=a.substring(0,a.length)),{data:e,filename:a}}),askQuestion:e=>t.askQuestion(e.toAskRequestPayload()).then(t=>(0,n.chatAnswerModelMapper)(t.data)),continueChatRun:e=>{const s=e.toContinueRunRequestPayload();return t.continueChatRun(s).then(t=>(0,n.chatAnswerModelMapper)(t.data))},getConversations:(e,s)=>t.getConversations().then(t=>(0,a.chatsListMapper)(t.data)),deleteConversation:e=>t.deleteConversation(e),createConversation:e=>t.createConversation(e.toCreateChatRequestPayload()).then(t=>(0,n.chatAnswerModelMapper)(t.data)),getAgents:()=>{const s=e.getLocalReadablGraphdbRepositoryIds();return t.getAgents().then(t=>(0,r.agentListMapper)(t.data,s))},getAgent:s=>{const a=e.getLocalReadablGraphdbRepositoryIds();return t.getAgent(s).then(t=>(0,r.agentModelMapper)(t.data,a))},createAgent:s=>{const a=e.getLocalReadablGraphdbRepositoryIds();return t.createAgent(s).then(t=>(0,r.agentModelMapper)(t.data,a))},editAgent:s=>{const a=e.getLocalReadablGraphdbRepositoryIds();return t.editAgent(s).then(t=>(0,r.agentModelMapper)(t.data,a))},deleteAgent:e=>t.deleteAgent(e),explainResponse:(e,s)=>t.explainResponse(e.toExplainResponsePayload(s)).then(t=>(0,i.explainResponseMapper)(t.data)),getDefaultAgent:()=>{const s=e.getLocalReadablGraphdbRepositoryIds();return t.getAgentDefaultValues().then(t=>(0,r.agentModelMapper)(t.data,s))},explainAgentSettings:e=>t.explainAgentSettings(e).then(t=>(0,o.agentInstructionsExplainMapper)(t.data))}}angular.module("graphdb.framework.core.services.ttyg-service",["graphdb.framework.rest.ttyg.service"]).factory("TTYGService",h),h.$inject=["TTYGRestService","$repositories"]},45458:(t,e,s)=>{s.r(e),s.d(e,{ChatAnswerModel:()=>a,ContinueChatRun:()=>n});class a{constructor(t={}){this._chatId=t.chatId,this._chatName=t.chatName||"",this._timestamp=t.timestamp,this._messages=t.messages||[],this._continueRunId=t.continueRunId,this.tokenUsageInfo=t.tokenUsageInfo}get chatId(){return this._chatId}set chatId(t){this._chatId=t}get chatName(){return this._chatName}set chatName(t){this._chatName=t}get timestamp(){return this._timestamp}set timestamp(t){this._timestamp=t}get messages(){return this._messages}set messages(t){this._messages=t}get continueRunId(){return this._continueRunId}set continueRunId(t){this._continueRunId=t}}class n{constructor(t,e){this._chatItem=t,this._runId=e}get chatId(){return this._chatItem.chatId}toContinueRunRequestPayload(){return{conversationId:this.chatId,runId:this._runId,agentId:this._chatItem.agentId,tzOffset:-(new Date).getTimezoneOffset()}}}},51490:(t,e,s)=>{s.r(e),s.d(e,{agentFormModelMapper:()=>h,agentListMapper:()=>u,agentModelMapper:()=>l});var a=s(28319),n=s(23283),r=s(38940),i=s(93135),o=s(70826);const h=(t,e,s)=>{if(!t)return;const r=new n.AgentFormModel;return r.id=t.id||e.id,r.name=t.name||e.name,r.repositoryId=t.repositoryId||e.repositoryId,r.model=t.model||e.model,r.contextSize=t.contextSize||e.contextSize,r.contextSizeCopy=e.contextSize,r.temperature.value=void 0!==t.temperature?t.temperature:e.temperature,r.topP.value=void 0!==t.topP?t.topP:e.topP,r.seed=t.seed||e.seed,r.instructions=d(t.instructions,e.instructions),c(r,s,e.assistantExtractionMethods,t.assistantExtractionMethods),function(t,e,s){if(!t)return;const r=t.map(s=>{let r={method:s.method||e.method,expanded:s.expanded||e.expanded};return s.method!==a.AdditionalExtractionMethod.IRI_DISCOVERY_SEARCH&&s.method!==a.AdditionalExtractionMethod.AUTOCOMPLETE_IRI_DISCOVERY_SEARCH||(r.selected=t.some(t=>t.method===s.method)),s.method===a.AdditionalExtractionMethod.AUTOCOMPLETE_IRI_DISCOVERY_SEARCH&&(r.maxNumberOfResultsPerCall=s._maxNumberOfResultsPerCall||e.maxNumberOfResultsPerCall),new n.AdditionalExtractionMethodFormModel(r)});s.additionalExtractionMethods.setAdditionalExtractionMethod(r)}(t.additionalExtractionMethods,e.additionalExtractionMethods,r),r},d=(t,e)=>{if(!t&&!e)return;const s=t&&t.systemInstruction||e.systemInstruction,a=t&&t.userInstruction||e.userInstruction;return new n.AgentInstructionsFormModel({systemInstruction:s,userInstruction:a,defaultSystemInstruction:e.systemInstruction,defaultUserInstruction:e.userInstruction})},c=(t,e,s,a=[])=>{const i=s.filter(t=>!a.some(e=>e.method===t.method)),h=s.find(t=>"sparql_search"===t.method);[...a,...i].forEach(s=>{const i=a.some(t=>t.method===s.method);let d="";i&&"sparql_search"===s.method&&(o.AGENT_OPERATION.CREATE===e?d="":s.sparqlQuery?d="sparqlQuery":s.ontologyGraph&&(d="ontologyGraph"));const c=e===o.AGENT_OPERATION.EDIT||e===o.AGENT_OPERATION.CLONE,u=new n.ExtractionMethodFormModel({selected:c&&i,method:s.method,sparqlOption:d,ontologyGraph:s.ontologyGraph||h.ontologyGraph,addMissingNamespaces:s.addMissingNamespaces,sparqlQuery:new r.TextFieldModel({value:s.sparqlQuery||h.sparqlQuery,minLength:1,maxLength:2380}),similarityIndex:s.similarityIndex,similarityIndexThreshold:s.similarityIndexThreshold&&new r.NumericRangeModel({value:s.similarityIndexThreshold,minValue:0,maxValue:1,step:.1}),maxNumberOfTriplesPerCall:0===s.maxNumberOfTriplesPerCall?null:s.maxNumberOfTriplesPerCall,queryTemplate:s.queryTemplate&&new r.TextFieldModel({value:s.queryTemplate,minLength:1,maxLength:2380}),retrievalConnectorInstance:s.retrievalConnectorInstance});t.assistantExtractionMethods.setExtractionMethod(u)})},u=(t,e)=>{if(!t)return new a.AgentListModel;const s=t.map(t=>l(t,e));return new a.AgentListModel(s)},l=(t,e)=>{if(!t)return;const s=(0,i.md5HashGenerator)();return new a.AgentModel({id:t.id,name:t.name,repositoryId:t.repositoryId,isRepositoryDeleted:!e.includes(t.repositoryId),model:t.model,contextSize:"openai-assistants"===t.api?null:t.contextSize,temperature:t.temperature,topP:t.topP,seed:t.seed,instructions:y(t.instructions),assistantExtractionMethods:p(t.assistantExtractionMethods),additionalExtractionMethods:g(t.additionalExtractionMethods),compatibility:t.compatibility},s)},p=t=>{if(t)return t.map(t=>m(t))},m=t=>{if(t)return new a.ExtractionMethodModel({method:t.method,ontologyGraph:t.ontologyGraph,addMissingNamespaces:t.addMissingNamespaces,sparqlQuery:t.sparqlQuery,similarityIndex:t.similarityIndex,similarityIndexThreshold:t.similarityIndexThreshold,maxNumberOfTriplesPerCall:t.maxNumberOfTriplesPerCall,queryTemplate:t.queryTemplate,retrievalConnectorInstance:t.retrievalConnectorInstance})},g=t=>{if(t)return t.map(t=>_(t))},_=t=>{if(t)return t.method===a.AdditionalExtractionMethod.AUTOCOMPLETE_IRI_DISCOVERY_SEARCH?new a.AdditionalExtractionMethodModel({method:t.method,maxNumberOfResultsPerCall:t.limit||0}):t.method===a.AdditionalExtractionMethod.IRI_DISCOVERY_SEARCH?new a.AdditionalExtractionMethodModel({method:t.method}):void 0},y=t=>{if(t)return new a.AgentInstructionsModel({systemInstruction:t.systemInstruction,userInstruction:t.userInstruction})}},63415:(t,e,s)=>{s.r(e),s.d(e,{ChatItemModel:()=>n,ChatItemsListModel:()=>r});var a=s(36633);class n{constructor(t,e){this._chatId=t,this._agentId=void 0,this._question=e,this._answers=[]}get chatId(){return this._chatId}set chatId(t){this._chatId=t}get agentId(){return this._agentId}set agentId(t){this._agentId=t}get question(){return this._question}set question(t){this._question=t}get answers(){return this._answers}set answers(t){this._answers=t}setQuestionMessage(t){this._question||(this._question=new a.ChatMessageModel({role:a.CHAT_MESSAGE_ROLE.USER})),this._question.message=t}getQuestionMessage(){return this._question.message}toCreateChatRequestPayload(){return{agentId:this._agentId,question:this._question.message}}toAskRequestPayload(){return{conversationId:this._chatId,agentId:this._agentId,question:this._question.message,tzOffset:-(new Date).getTimezoneOffset()}}toExplainResponsePayload(t){return{conversationId:this._chatId,answerId:t}}}class r{constructor(t=[]){this._items=t}isEmpty(){return 0===this._items.length}appendItem(t){this._items.push(t)}get items(){return this._items}set items(t){this._items=t||[]}getLast(){if(!this.isEmpty())return this._items[this._items.length-1]}}},85609:(t,e,s)=>{s.r(e),s.d(e,{chatModelMapper:()=>d,chatsListMapper:()=>h});var a=s(19402),n=s(93135),r=s(85788),i=s(63415);const o=(0,n.md5HashGenerator)(),h=t=>{if(!t)return new a.ChatsListModel;const e=t.map(t=>d(t));return new a.ChatsListModel(e)},d=t=>{if(t)return new a.ChatModel({id:t.id,name:t.name,timestamp:t.timestamp,chatHistory:t.messages&&t.messages.length?(0,r.chatItemsModelMapper)(t.messages):new i.ChatItemsListModel},o)}},85788:(t,e,s)=>{s.r(e),s.d(e,{chatAnswerModelMapper:()=>d,chatItemsModelMapper:()=>o,chatMessageModelListMapper:()=>i,chatMessageModelMapper:()=>h});var a=s(36633),n=s(63415),r=s(45458);const i=t=>t?t.map(t=>h(t)):[],o=(t=[])=>{const e=[];let s;return t.forEach(t=>{const r=t.conversationId;a.CHAT_MESSAGE_ROLE.USER===t.role?(s&&e.push(s),s=new n.ChatItemModel(r,h(t))):(s||(s=new n.ChatItemModel(r,null)),s.answers.push(h(t)),s.agentId=t.agentId)}),s&&e.push(s),new n.ChatItemsListModel(e)},h=t=>{if(t)return new a.ChatMessageModel({id:t.id,role:t.role,message:t.message,timestamp:t.timestamp,tokenUsageInfo:t.usage,data:t})},d=t=>{if(t)return new r.ChatAnswerModel({chatId:t.id,chatName:t.name,timestamp:t.timestamp,messages:i(t.messages),continueRunId:t.continueRunId,tokenUsageInfo:t.usage})}},87252:(t,e,s)=>{s.r(e),s.d(e,{ExplainQueryMethodModel:()=>r,ExplainQueryMethodsListModel:()=>n,ExplainQueryType:()=>i,ExplainResponseModel:()=>a});class a{constructor(t={}){this._chatId=t.chatId,this._answerId=t.answerId,this._queryMethods=t.queryMethods,this._expanded=void 0===t.expanded||t.expanded}get chatId(){return this._chatId}set chatId(t){this._chatId=t}get answerId(){return this._answerId}set answerId(t){this._answerId=t}get queryMethods(){return this._queryMethods}set queryMethods(t){this._queryMethods=t}get expanded(){return this._expanded}set expanded(t){this._expanded=t}}class n{constructor(t=[]){this._items=t}get items(){return this._items}set items(t){this._items=t}}class r{constructor(t={}){this._name=t.name,this._rawQuery=t.rawQuery,this._query=t.query,this._queryType=t.queryType,this._errorMessage=t.errorOutput}get name(){return this._name}set name(t){this._name=t}get rawQuery(){return this._rawQuery}set rawQuery(t){this._rawQuery=t}get query(){return this._query}set query(t){this._query=t}get queryType(){return this._queryType}set queryType(t){this._queryType=t}get errorMessage(){return this._errorMessage}set errorMessage(t){this._errorMessage=t}}const i={SPARQL:"sparql",JSON:"json",OTHER:"other"}},89358:(t,e,s)=>{s.r(e),s.d(e,{AgentInstructionsExplain:()=>a,AgentInstructionsExplainList:()=>n});class a{constructor(t){this._type=t.type,this._content=t.content,this._size=t.size}get size(){return this._size}set size(t){this._size=t}get content(){return this._content}set content(t){this._content=t}get type(){return this._type}set type(t){this._type=t}}class n{constructor(t){this._instructions=t.instructions}get instructions(){return this._instructions}set instructions(t){this._instructions=t}}},92561:(t,e,s)=>{s.r(e),s.d(e,{explainQueryMethodMapper:()=>i,explainQueryMethodsListMapper:()=>r,explainResponseMapper:()=>n});var a=s(87252);const n=t=>new a.ExplainResponseModel({chatId:t.conversationId,answerId:t.answerId,queryMethods:r(t.queryMethods)}),r=(t=[])=>new a.ExplainQueryMethodsListModel(t.map(i)),i=t=>new a.ExplainQueryMethodModel(t)},96089:(t,e,s)=>{s.r(e);var a=s(73964);angular.module("graphdb.framework.rest.ttyg.service",[]).factory("TTYGRestService",h),h.$inject=["$http"];const n="rest/chat/conversations",r="rest/chat/agents",i=`${n}/explain`,o=!1;function h(t){const e=new a.TtygRestServiceFakeBackend;return{getConversation:s=>o?e.getConversation(s):t.get(`${n}/${s}`),renameConversation:(s,a)=>o?e.renameConversation(s,a):t.put(`${n}/${s}`,a),exportConversation:s=>o?e.exportConversation(s):t.get(`${n}/export/${s}`,{responseType:"blob"}),askQuestion:s=>o?e.askQuestion(s):t.post(`${n}`,s),continueChatRun:s=>o?e.continueChatRun(s):t.post(`${n}/continue`,s),getConversations:()=>o?e.getConversations():t.get(n),deleteConversation:s=>o?e.deleteConversation(s):t.delete(`${n}/${s}`),createConversation:(s={})=>o?e.createConversation(s):t.post(n,s),getAgents:()=>o?e.getAgents():t.get(r),getAgent:s=>o?e.getAgent(s):t.get(`${r}/${s}`),createAgent:s=>o?e.createAgent(s):t.post(r,s),editAgent:s=>o?e.editAgent(s):t.put(`${r}`,s),deleteAgent:s=>o?e.deleteAgent(s):t.delete(`${r}/${s}`),explainResponse:(s={})=>o?e.explainResponse(s):t.post(i,s),getAgentDefaultValues:()=>o?e.getAgentDefaultValues():t.get(`${r}/default`),explainAgentSettings:s=>o?e.explainAgentSettings():t.post(`${r}/explain`,s)}}}};
|
|
2
|
-
//# sourceMappingURL=36665.eda6cfdf545f2608a6c7.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"36665.eda6cfdf545f2608a6c7.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/services/agent-instruction-explain.mapper.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ttyg/chats.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/core/services/ttyg.service.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ttyg/chat-answer.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/services/agents.mapper.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ttyg/chat-item.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/services/chats.mapper.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/services/chat-message.mapper.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ttyg/explain-response.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ttyg/agent-instructions-explain.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/services/explain.mapper.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/rest/ttyg.rest.service.js"],"sourcesContent":["import {AgentInstructionsExplain, AgentInstructionsExplainList} from \"../../models/ttyg/agent-instructions-explain\";\n\n/**\n * Maps the response from the backend to the AgentInstructionsExplainList model.\n * @param {*} data\n * @return {AgentInstructionsExplainList}\n */\nexport const agentInstructionsExplainMapper = (data) => {\n if (!data) {\n return new AgentInstructionsExplainList([]);\n }\n return data.map((instruction) => new AgentInstructionsExplain(instruction));\n};\n","import {ChatItemsListModel} from \"./chat-item\";\nimport {md5HashGenerator} from \"../../utils/hash-utils\";\n\nexport class ChatModel {\n static getEmptyChat() {\n const data = {\n name: \"\\u00B7 \\u00B7 \\u00B7\",\n timestamp: Math.floor(Date.now() / 1000)\n };\n return new ChatModel(data, md5HashGenerator());\n }\n\n constructor(data, hashGenerator) {\n this.hashGenerator = hashGenerator;\n\n /**\n * @type {string}\n */\n this._id = data.id;\n\n /**\n * @type {string}\n */\n this._name = data.name;\n\n /**\n * @type {number}\n */\n this._timestamp = data.timestamp;\n\n /**\n * @type {ChatItemsListModel}\n */\n this._chatHistory = data.chatHistory || new ChatItemsListModel();\n this.hash = this.generateHash();\n }\n\n generateHash() {\n return this.hashGenerator(JSON.stringify(this));\n }\n\n get id() {\n return this._id;\n }\n\n set id(value) {\n this._id = value;\n }\n\n get name() {\n return this._name;\n }\n\n set name(value) {\n this.generateHash();\n this._name = value;\n }\n\n get timestamp() {\n return this._timestamp;\n }\n\n set timestamp(value) {\n this._timestamp = value;\n }\n\n get chatHistory() {\n return this._chatHistory;\n }\n\n set chatHistory(value) {\n this._chatHistory = value || new ChatItemsListModel();\n }\n\n /**\n * Converts the instance to a rename chat request payload.\n * This request object contains the new name for renaming the chat.\n *\n * @return {{name: string}} An object representing the rename request payload.\n */\n toRenameRequestPayload() {\n return {name: this._name};\n }\n}\n\nexport class ChatByDayModel {\n constructor(data) {\n this._day = data.day;\n /**\n * @type {number}\n * @private\n */\n this._timestamp = data.timestamp;\n /**\n * @type {ChatModel[]|*}\n * @private\n */\n this._chats = data.chats;\n }\n\n get day() {\n return this._day;\n }\n\n set day(value) {\n this._day = value;\n }\n\n get timestamp() {\n return this._timestamp;\n }\n\n set timestamp(value) {\n this._timestamp = value;\n }\n\n get chats() {\n return this._chats;\n }\n\n set chats(value) {\n this._chats = value;\n }\n}\n\nexport class ChatsListModel {\n constructor(chats) {\n /**\n * @type {ChatModel[]}\n * @private\n */\n this._chats = chats || [];\n /**\n * @type {ChatByDayModel[]}\n * @private\n */\n this._chatsByDay = [];\n this.sortByTime();\n this.updateChatsByDay();\n }\n\n /**\n * Sorts the list of chats by timestamp in descending order, with the newest items on top.\n */\n sortByTime() {\n this._chats.sort((a, b) => {\n return b.timestamp - a.timestamp;\n });\n }\n\n /**\n * Updates the timestamp of a chat in the list.\n * @param {string} chatId\n * @param {number} timestamp\n */\n updateChatTimestamp(chatId, timestamp) {\n const chat = this._chats.find((c) => c.id === chatId);\n if (chat) {\n chat.timestamp = timestamp;\n this.sortByTime();\n this.updateChatsByDay();\n }\n }\n\n /**\n * Updates the name of a chat in the list.\n * @param {string} chatId\n * @param {string} name\n */\n updateChatName(chatId, name) {\n const chat = this._chats.find((c) => c.id === chatId);\n if (chat) {\n chat.name = name;\n }\n }\n\n /**\n * Deletes a chat from the chat list.\n * @param {ChatModel} chatToBeDeleted\n */\n deleteChat(chatToBeDeleted) {\n this._chats = this._chats.filter((chat) => chat.id !== chatToBeDeleted.id);\n this.sortByTime();\n this.updateChatsByDay();\n }\n\n updateChatsByDay() {\n this._chatsByDay = [];\n // group chats by day\n this._chats.forEach((chat) => {\n const day = new Date(chat.timestamp * 1000).toDateString();\n const dayModel = this._chatsByDay.find((d) => d.day === day);\n if (dayModel) {\n dayModel.chats.push(chat);\n } else {\n this._chatsByDay.push(new ChatByDayModel({day: day, timestamp: chat.timestamp * 1000, chats: [chat]}));\n }\n });\n }\n\n appendChat(chat) {\n this._chats.push(chat);\n this.sortByTime();\n this.updateChatsByDay();\n }\n\n replaceChat(newChat, oldChat) {\n this._chats = this._chats.map((chat) => {\n if (chat.id === oldChat.id) {\n return newChat;\n }\n return chat;\n });\n this.sortByTime();\n this.updateChatsByDay();\n }\n\n /**\n * Checks if the chat list is empty.\n * @return {boolean}\n */\n isEmpty() {\n return this._chats.length === 0;\n }\n\n /**\n * Returns the first chat from the list.\n * @return {ChatModel|undefined}\n */\n getFirstChat() {\n return this._chats[0];\n }\n\n /**\n * Deselects all chats.\n */\n deselectAll() {\n this._chats.forEach((c) => {\n c.selected = false;\n });\n }\n\n /**\n * Selects a chat.\n * @param {ChatModel} chat\n */\n selectChat(chat) {\n this.deselectAll();\n this._chats.forEach((c) => {\n c.selected = c.id === chat.id;\n });\n }\n\n getChat(id) {\n return this._chats.find((c) => c.id === id);\n }\n\n getNonPersistedChat() {\n return this._chats.find((chat) => !chat.id);\n }\n\n renameChat(renamedChat) {\n const chat = this._chats.find((c) => c.id === renamedChat.id);\n if (chat) {\n chat.name = renamedChat.name;\n }\n }\n\n /**\n * @return {ChatModel[]}\n */\n get chats() {\n return this._chats;\n }\n\n /**\n * @param {ChatModel[]} value\n */\n set chats(value) {\n this._chats = value;\n }\n\n get chatsByDay() {\n return this._chatsByDay;\n }\n\n set chatsByDay(value) {\n this._chatsByDay = value;\n }\n}\n","import {chatModelMapper, chatsListMapper} from \"../../ttyg/services/chats.mapper\";\nimport 'angular/rest/ttyg.rest.service';\nimport {chatAnswerModelMapper} from \"../../ttyg/services/chat-message.mapper\";\nimport {agentListMapper, agentModelMapper} from \"../../ttyg/services/agents.mapper\";\nimport {explainResponseMapper} from \"../../ttyg/services/explain.mapper\";\nimport {agentInstructionsExplainMapper} from \"../../ttyg/services/agent-instruction-explain.mapper\";\n\nconst modules = ['graphdb.framework.rest.ttyg.service'];\n\nangular\n .module('graphdb.framework.core.services.ttyg-service', modules)\n .factory('TTYGService', TTYGService);\n\nTTYGService.$inject = ['TTYGRestService', '$repositories'];\n\nfunction TTYGService(TTYGRestService, $repositories) {\n\n const getConversations = (savedQueryName, owner) => {\n return TTYGRestService.getConversations()\n .then((response) => chatsListMapper(response.data));\n };\n\n /**\n * Loads a conversation by its ID.\n * @param {string} id\n * @return {Promise<ChatModel>}\n */\n const getConversation = (id) => {\n return TTYGRestService.getConversation(id)\n .then((response) => chatModelMapper(response.data));\n };\n\n /**\n * Renames the conversation (<code>chart</code>).\n * @param {ChatModel} chat - the conversation to be renamed.\n * @return {*}\n */\n const renameConversation = (chat) => {\n return TTYGRestService.renameConversation(chat.id, chat.toRenameRequestPayload())\n .then((response) => chatModelMapper(response.data));\n };\n\n /**\n * Exports the conversation (<code>chart</code>).\n * @param {string} id - the conversation to be exported.\n * @return {Promise<{Blob, string}>} Returns the conversation as a Blob and the filename wrapped in a Promise\n * */\n const exportConversation = (id) => {\n return TTYGRestService.exportConversation(id)\n .then(function (res) {\n const data = res.data;\n const headers = res.headers();\n const contentDispositionHeader = headers['content-disposition'];\n let filename = 'chat-export';\n if (contentDispositionHeader) {\n filename = contentDispositionHeader.split('filename=')[1];\n filename = filename.substring(0, filename.length);\n }\n return {data, filename};\n });\n };\n\n /**\n * Asks a question.\n * @param {ChatItemModel} chatItem .\n * @return {Promise<ChatAnswerModel>} the answer of the question.\n */\n const askQuestion = (chatItem) => {\n return TTYGRestService.askQuestion(chatItem.toAskRequestPayload())\n .then((response) => chatAnswerModelMapper(response.data));\n };\n\n /**\n * Continues a chat run. In essence continue means \"fetch more answers\".\n * @param {ContinueChatRun} continueData .\n * @return {Promise<ChatAnswerModel>} the next answer in the run.\n */\n const continueChatRun = (continueData) => {\n const payload = continueData.toContinueRunRequestPayload();\n return TTYGRestService.continueChatRun(payload)\n .then((response) => chatAnswerModelMapper(response.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 return TTYGRestService.deleteConversation(id);\n };\n\n /**\n * Creates a new conversation. The creation of a chat and asking a question share the same endpoint. If the request payload\n * doesn't contain the chat ID, the backend will create a new chat and return the answer, which includes the ID of the created chat.\n *\n * @param {ChatItemModel} chatItem - The conversation data.\n * @return {Promise<ChatAnswerModel>} The answer of the question.\n */\n const createConversation = (chatItem) => {\n return TTYGRestService.createConversation(chatItem.toCreateChatRequestPayload())\n .then((response) => chatAnswerModelMapper(response.data));\n };\n\n /**\n * Loads all agents from the server and converts the response to a list of AgentModels.\n * @return {Promise<AgentListModel>}\n */\n const getAgents = () => {\n const localRepositories = $repositories.getLocalReadablGraphdbRepositoryIds();\n return TTYGRestService.getAgents()\n .then((response) => {\n return agentListMapper(response.data, localRepositories);\n });\n };\n\n /**\n * Loads an agent by its ID.\n * @param {string} id\n * @return {Promise<AgentModel|undefined>}\n */\n const getAgent = (id) => {\n const localRepositories = $repositories.getLocalReadablGraphdbRepositoryIds();\n return TTYGRestService.getAgent(id)\n .then((response) => agentModelMapper(response.data, localRepositories));\n };\n\n /**\n * Creates a new agent.\n * @param {*} payload - the agent data\n * @return {Promise<AgentModel>} created agent;\n */\n const createAgent = (payload) => {\n const localRepositories = $repositories.getLocalReadablGraphdbRepositoryIds();\n return TTYGRestService.createAgent(payload)\n .then((response) => {\n return agentModelMapper(response.data, localRepositories);\n });\n };\n\n /**\n * Updates the agent with the provided <code>payload</code>.\n * @param {*} payload - The data for updating the agent.\n * @return {Promise<AgentModel>} A promise that resolves to the updated agent.\n */\n const editAgent = (payload) => {\n const localRepositories = $repositories.getLocalReadablGraphdbRepositoryIds();\n return TTYGRestService.editAgent(payload)\n .then((response) => {\n return agentModelMapper(response.data, localRepositories);\n });\n };\n\n /**\n * Deletes an agent by its ID.\n * @param {string} id\n * @return {Promise<void>|*}\n */\n const deleteAgent = (id) => {\n return TTYGRestService.deleteAgent(id);\n };\n\n /**\n * Returns an explanation of how the answer was generated.\n * @param {ChatItemModel} chatItem\n * @param {string} answerId\n * @return {ExplainResponseModel}\n */\n const explainResponse = (chatItem, answerId) => {\n return TTYGRestService.explainResponse(chatItem.toExplainResponsePayload(answerId))\n .then((response) => {\n return explainResponseMapper(response.data);\n });\n };\n\n /**\n * Get the default agent values from server.\n * @return {Promise<AgentModel>}\n */\n const getDefaultAgent = () => {\n const localRepositories = $repositories.getLocalReadablGraphdbRepositoryIds();\n return TTYGRestService.getAgentDefaultValues()\n .then((response) => {\n return agentModelMapper(response.data, localRepositories);\n });\n };\n\n /**\n * Calls the backend server to fetch an explanation of how the agent settings were generated.\n * @param {*} payload - payload generated by the agent settings form model.\n * @return {Promise<unknown>}\n */\n const explainAgentSettings = (payload) => {\n return TTYGRestService.explainAgentSettings(payload)\n .then((response) => {\n return agentInstructionsExplainMapper(response.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 getDefaultAgent,\n explainAgentSettings\n };\n}\n","export class ChatAnswerModel {\n constructor(data = {}) {\n /**\n * @type {string | undefined}\n */\n this._chatId = data.chatId;\n\n /**\n * @type {string}\n */\n this._chatName = data.chatName || '';\n\n /**\n * @type {number}\n */\n this._timestamp = data.timestamp;\n\n /**\n * @type {ChatMessageModel[]}\n */\n this._messages = data.messages || [];\n\n /**\n * @type {string}\n */\n this._continueRunId = data.continueRunId;\n\n /**\n * Holds information about the number of tokens used for this answer, including prompt and completion tokens.\n *\n * @type {TokenUsageInfo}\n */\n this.tokenUsageInfo = data.tokenUsageInfo;\n }\n\n get chatId() {\n return this._chatId;\n }\n\n set chatId(value) {\n this._chatId = value;\n }\n\n get chatName() {\n return this._chatName;\n }\n\n set chatName(value) {\n this._chatName = value;\n }\n\n get timestamp() {\n return this._timestamp;\n }\n\n set timestamp(value) {\n this._timestamp = value;\n }\n\n get messages() {\n return this._messages;\n }\n\n set messages(value) {\n this._messages = value;\n }\n\n get continueRunId() {\n return this._continueRunId;\n }\n\n set continueRunId(value) {\n this._continueRunId = value;\n }\n}\n\n/**\n * Represents information on continuing the chat run, i.e., fetching answers iteratively after\n * asking until the last answer is received.\n */\nexport class ContinueChatRun {\n constructor(chatItem, runId) {\n this._chatItem = chatItem;\n this._runId = runId;\n }\n\n get chatId() {\n return this._chatItem.chatId;\n }\n\n toContinueRunRequestPayload() {\n return {\n conversationId: this.chatId,\n runId: this._runId,\n agentId: this._chatItem.agentId,\n tzOffset: -new Date().getTimezoneOffset() // offsets are reversed here hence the minus\n };\n }\n}\n","import {\n AdditionalExtractionMethod,\n AdditionalExtractionMethodModel,\n AgentInstructionsModel,\n AgentListModel,\n AgentModel,\n ExtractionMethodModel\n} from '../../models/ttyg/agents';\nimport {\n AdditionalExtractionMethodFormModel,\n AgentFormModel,\n AgentInstructionsFormModel,\n ExtractionMethodFormModel\n} from '../../models/ttyg/agent-form';\nimport {NumericRangeModel, TextFieldModel} from '../../models/form-fields';\nimport {md5HashGenerator} from '../../utils/hash-utils';\nimport {AGENT_OPERATION} from \"./constants\";\n\n/**\n * Converts an agent model to an agent form model.\n * @param {AgentModel} agentModel\n * @param {AgentModel} defaultAgentModel\n * @param {string} operation\n * @return {AgentFormModel}\n */\nexport const agentFormModelMapper = (agentModel, defaultAgentModel, operation ) => {\n if (!agentModel) {\n return;\n }\n const agentFormModel = new AgentFormModel();\n agentFormModel.id = agentModel.id || defaultAgentModel.id;\n agentFormModel.name = agentModel.name || defaultAgentModel.name;\n agentFormModel.repositoryId = agentModel.repositoryId || defaultAgentModel.repositoryId;\n agentFormModel.model = agentModel.model || defaultAgentModel.model;\n agentFormModel.contextSize = agentModel.contextSize || defaultAgentModel.contextSize;\n agentFormModel.contextSizeCopy = defaultAgentModel.contextSize;\n agentFormModel.temperature.value = agentModel.temperature !== undefined ? agentModel.temperature : defaultAgentModel.temperature;\n agentFormModel.topP.value = agentModel.topP !== undefined ? agentModel.topP : defaultAgentModel.topP;\n agentFormModel.seed = agentModel.seed || defaultAgentModel.seed;\n agentFormModel.instructions = agentInstructionsFormMapper(agentModel.instructions, defaultAgentModel.instructions);\n extractionMethodsFormMapper(agentFormModel, operation, defaultAgentModel.assistantExtractionMethods, agentModel.assistantExtractionMethods);\n // Select additional methods if they are present in the list returned from the backend (BE).\n additionalExtractionMethodsFormMapper(agentModel.additionalExtractionMethods, defaultAgentModel.additionalExtractionMethods, agentFormModel);\n return agentFormModel;\n};\n\n/**\n * @param {AgentInstructionsModel} currentAgentModelInstructions\n * @param {AgentInstructionsModel} defaultInstructions\n * @return {AgentInstructionsFormModel}\n */\nconst agentInstructionsFormMapper = (currentAgentModelInstructions, defaultInstructions) => {\n if (!currentAgentModelInstructions && !defaultInstructions) {\n return;\n }\n const systemInstruction = currentAgentModelInstructions && currentAgentModelInstructions.systemInstruction || defaultInstructions.systemInstruction;\n const userInstruction = currentAgentModelInstructions && currentAgentModelInstructions.userInstruction || defaultInstructions.userInstruction;\n return new AgentInstructionsFormModel({\n systemInstruction: systemInstruction,\n userInstruction: userInstruction,\n defaultSystemInstruction: defaultInstructions.systemInstruction,\n defaultUserInstruction: defaultInstructions.userInstruction\n });\n};\n\n/**\n * @param {AgentFormModel} agentFormModel\n * @param {string} operation\n * @param {ExtractionMethodModel[]} defaultData\n * @param {ExtractionMethodModel[]} data\n */\nconst extractionMethodsFormMapper = (agentFormModel, operation, defaultData, data = []) => {\n const defaultExtractionMethods = defaultData.filter((defaultExtractionMethod) => !data.some((agentMethod) => agentMethod.method === defaultExtractionMethod.method));\n const defaultSparqlMethodValues = defaultData.find((defaultExtractionMethod) => defaultExtractionMethod.method === 'sparql_search');\n const extractionMethods = [...data, ...defaultExtractionMethods];\n extractionMethods.forEach((extractionMethod) => {\n const isMethodSelected = data.some((method) => method.method === extractionMethod.method);\n // The sparqlOption is applicable only for the sparql_search method.\n let sparqlOption = '';\n if (isMethodSelected && extractionMethod.method === 'sparql_search') {\n if (AGENT_OPERATION.CREATE === operation) {\n sparqlOption = '';\n } else if (extractionMethod.sparqlQuery) {\n sparqlOption = 'sparqlQuery';\n } else if (extractionMethod.ontologyGraph) {\n sparqlOption = 'ontologyGraph';\n }\n }\n // In edit and clone operations we have an existing agent instance, so we should show the selected methods from it.\n const shouldShowSelectedMethods = operation === AGENT_OPERATION.EDIT || operation === AGENT_OPERATION.CLONE;\n const existingMethod = new ExtractionMethodFormModel({\n selected: shouldShowSelectedMethods && isMethodSelected,\n method: extractionMethod.method,\n sparqlOption: sparqlOption,\n ontologyGraph: extractionMethod.ontologyGraph || defaultSparqlMethodValues.ontologyGraph,\n addMissingNamespaces: extractionMethod.addMissingNamespaces,\n sparqlQuery: new TextFieldModel({\n value: extractionMethod.sparqlQuery || defaultSparqlMethodValues.sparqlQuery,\n minLength: 1,\n maxLength: 2380\n }),\n similarityIndex: extractionMethod.similarityIndex,\n similarityIndexThreshold: extractionMethod.similarityIndexThreshold && new NumericRangeModel({\n value: extractionMethod.similarityIndexThreshold,\n minValue: 0,\n maxValue: 1,\n step: 0.1\n }),\n // In case backend returns 0 as a default value this means that there is no limit, so we set the null in order\n // to show the placeholder in the input field.\n maxNumberOfTriplesPerCall: extractionMethod.maxNumberOfTriplesPerCall === 0 ? null : extractionMethod.maxNumberOfTriplesPerCall,\n queryTemplate: extractionMethod.queryTemplate && new TextFieldModel({\n value: extractionMethod.queryTemplate,\n minLength: 1,\n maxLength: 2380\n }),\n retrievalConnectorInstance: extractionMethod.retrievalConnectorInstance\n });\n agentFormModel.assistantExtractionMethods.setExtractionMethod(existingMethod);\n });\n};\n\n/**\n * @param {AdditionalExtractionMethodsModel} additionalExtractionMethodsResponse\n * @param {AdditionalExtractionMethodsModel} defaultAdditionalExtractionMethodData\n * @param {AgentFormModel} agentFormModel\n */\nfunction additionalExtractionMethodsFormMapper(additionalExtractionMethodsResponse, defaultAdditionalExtractionMethodData, agentFormModel) {\n // No Additional extraction methods on new agent creation\n if (!additionalExtractionMethodsResponse) {\n return;\n }\n const additionalExtractionMethods = additionalExtractionMethodsResponse.map(method => {\n let data = {\n method: method.method || defaultAdditionalExtractionMethodData.method,\n expanded: method.expanded || defaultAdditionalExtractionMethodData.expanded,\n };\n if (method.method === AdditionalExtractionMethod.IRI_DISCOVERY_SEARCH || method.method === AdditionalExtractionMethod.AUTOCOMPLETE_IRI_DISCOVERY_SEARCH) {\n data.selected = additionalExtractionMethodsResponse.some((agentMethod) => agentMethod.method === method.method);\n }\n\n if (method.method === AdditionalExtractionMethod.AUTOCOMPLETE_IRI_DISCOVERY_SEARCH) {\n data.maxNumberOfResultsPerCall = method._maxNumberOfResultsPerCall || defaultAdditionalExtractionMethodData.maxNumberOfResultsPerCall;\n }\n return new AdditionalExtractionMethodFormModel(data);\n });\n agentFormModel.additionalExtractionMethods.setAdditionalExtractionMethod(additionalExtractionMethods);\n}\n\n/**\n * Converts the response from the server to a list of AgentModel.\n * @param {*[]} data\n * @param {string[]} localRepositoryIds\n * @return {AgentListModel}\n */\nexport const agentListMapper = (data, localRepositoryIds) => {\n if (!data) {\n return new AgentListModel();\n }\n const agentModels = data\n .map((agent) => agentModelMapper(agent, localRepositoryIds));\n return new AgentListModel(agentModels);\n};\n\nexport const agentModelMapper = (data, localRepositoryIds) => {\n if (!data) {\n return;\n }\n const hashGenerator = md5HashGenerator();\n return new AgentModel({\n id: data.id,\n name: data.name,\n repositoryId: data.repositoryId,\n // Sets the isRepositoryDeleted flag based on whether the repository ID is not in the list of repositories.\n isRepositoryDeleted: !localRepositoryIds.includes(data.repositoryId),\n model: data.model,\n contextSize: data.api === 'openai-assistants' ? null : data.contextSize,\n temperature: data.temperature,\n topP: data.topP,\n seed: data.seed,\n instructions: agentInstructionsMapper(data.instructions),\n assistantExtractionMethods: extractionMethodsMapper(data.assistantExtractionMethods),\n additionalExtractionMethods: additionalExtractionMethodsMapper(data.additionalExtractionMethods),\n compatibility: data.compatibility,\n }, hashGenerator);\n};\n\nconst extractionMethodsMapper = (data) => {\n if (!data) {\n return;\n }\n return data.map((extractionMethod) => extractionMethodMapper(extractionMethod));\n};\n\nconst extractionMethodMapper = (data) => {\n if (!data) {\n return;\n }\n return new ExtractionMethodModel({\n method: data.method,\n ontologyGraph: data.ontologyGraph,\n addMissingNamespaces: data.addMissingNamespaces,\n sparqlQuery: data.sparqlQuery,\n similarityIndex: data.similarityIndex,\n similarityIndexThreshold: data.similarityIndexThreshold,\n maxNumberOfTriplesPerCall: data.maxNumberOfTriplesPerCall,\n queryTemplate: data.queryTemplate,\n retrievalConnectorInstance: data.retrievalConnectorInstance\n });\n};\n\nconst additionalExtractionMethodsMapper = (data) => {\n if (!data) {\n return;\n }\n return data.map((additionalExtractionMethod) => additionalExtractionMethodMapper(additionalExtractionMethod));\n};\n\nconst additionalExtractionMethodMapper = (data) => {\n if (!data) {\n return;\n }\n if (data.method === AdditionalExtractionMethod.AUTOCOMPLETE_IRI_DISCOVERY_SEARCH) {\n return new AdditionalExtractionMethodModel({\n method: data.method,\n maxNumberOfResultsPerCall: data.limit || 0\n });\n } else if (data.method === AdditionalExtractionMethod.IRI_DISCOVERY_SEARCH) {\n return new AdditionalExtractionMethodModel({\n method: data.method\n });\n }\n};\n\nconst agentInstructionsMapper = (data) => {\n if (!data) {\n return;\n }\n return new AgentInstructionsModel({\n systemInstruction: data.systemInstruction,\n userInstruction: data.userInstruction\n });\n};\n","import {CHAT_MESSAGE_ROLE, ChatMessageModel} from \"./chat-message\";\n\n/**\n *\n * Represents a model that holds a question and the answer of it in a chat.\n *\n */\nexport class ChatItemModel {\n\n /**\n * Creates an instance of ChatItemModel.\n *\n * @param {string} chatId - The unique identifier for the chat associated with this instance.\n * @param {ChatMessageModel} question - The message object representing the question.\n */\n constructor(chatId, question) {\n\n /**\n * @type {string | undefined}\n * @private\n */\n this._chatId = chatId;\n\n /**\n * @type {string | undefined}\n * @private\n */\n this._agentId = undefined;\n\n /**\n * @type {ChatMessageModel}\n * @private\n */\n this._question = question;\n\n /**\n *\n * @type {ChatMessageModel[] | undefined}\n * @private\n */\n this._answers = [];\n }\n\n get chatId() {\n return this._chatId;\n }\n\n set chatId(value) {\n this._chatId = value;\n }\n\n get agentId() {\n return this._agentId;\n }\n\n set agentId(value) {\n this._agentId = value;\n }\n\n get question() {\n return this._question;\n }\n\n set question(value) {\n this._question = value;\n }\n\n get answers() {\n return this._answers;\n }\n\n /**\n *\n * @param {ChatMessageModel[]} value\n */\n set answers(value) {\n this._answers = value;\n }\n\n /**\n * Sets the message for the user's question.\n *\n * @param {string} message - The message content for the user's question.\n */\n setQuestionMessage(message) {\n if (!this._question) {\n this._question = new ChatMessageModel({role: CHAT_MESSAGE_ROLE.USER});\n }\n this._question.message = message;\n }\n\n /**\n * Retrieves the message of the user's question.\n *\n * @return {string} - The message content of the user's question.\n */\n getQuestionMessage() {\n return this._question.message;\n }\n\n /**\n * Converts the instance to a create chat request payload.\n *\n * @return {{agentId: string, question: string}} An object representing the create request payload.\n */\n toCreateChatRequestPayload() {\n return {\n agentId: this._agentId,\n question: this._question.message\n };\n }\n\n /**\n * Converts the instance to an ask request payload.\n *\n * @return {{conversationId: string, agentId: string, question: string}} An object representing the ask request payload.\n */\n toAskRequestPayload() {\n return {\n conversationId: this._chatId,\n agentId: this._agentId,\n question: this._question.message,\n tzOffset: -new Date().getTimezoneOffset() // offsets are reversed here hence the minus\n };\n }\n\n toExplainResponsePayload(answerId) {\n return {\n conversationId: this._chatId,\n answerId\n };\n }\n}\n\nexport class ChatItemsListModel {\n\n /**\n * @param {ChatItemModel[]} items\n */\n constructor(items = []) {\n this._items = items;\n }\n\n isEmpty() {\n return this._items.length === 0;\n }\n\n /**\n * @param {ChatItemModel} chatItem\n */\n appendItem(chatItem) {\n this._items.push(chatItem);\n }\n\n get items() {\n return this._items;\n }\n\n set items(value) {\n this._items = value || [];\n }\n\n getLast() {\n if (!this.isEmpty()) {\n return this._items[this._items.length - 1];\n }\n }\n}\n","import {ChatsListModel, ChatModel} from \"../../models/ttyg/chats\";\nimport {md5HashGenerator} from \"../../utils/hash-utils\";\nimport {chatItemsModelMapper} from \"./chat-message.mapper\";\nimport {ChatItemsListModel} from \"../../models/ttyg/chat-item\";\n\nconst hashGenerator = md5HashGenerator();\n\n/**\n * Converts the response from the server to a list of ChatModels.\n * @param {*[]} data\n * @return {ChatsListModel}\n */\nexport const chatsListMapper = (data) => {\n if (!data) {\n return new ChatsListModel();\n }\n const chatModels = data.map((chat) => chatModelMapper(chat));\n return new ChatsListModel(chatModels);\n};\n\n/**\n * Converts the response from the server to a ChatModel.\n * @param {*} data\n * @return {ChatModel|undefined}\n */\nexport const chatModelMapper = (data) => {\n if (!data) {\n return;\n }\n return new ChatModel({\n id: data.id,\n name: data.name,\n timestamp: data.timestamp,\n chatHistory: data.messages && data.messages.length ? chatItemsModelMapper(data.messages) : new ChatItemsListModel()\n }, hashGenerator);\n};\n","import {CHAT_MESSAGE_ROLE, ChatMessageModel} from \"../../models/ttyg/chat-message\";\nimport {ChatItemModel, ChatItemsListModel} from \"../../models/ttyg/chat-item\";\nimport {ChatAnswerModel} from \"../../models/ttyg/chat-answer\";\n\n/**\n * Converts the response from the server to a list of ChatMessageModel array.\n * @param {*[]} data\n * @return {ChatMessageModel[]}\n */\nexport const chatMessageModelListMapper = (data) => {\n if (!data) {\n return [];\n }\n return data.map((chatMessage) => chatMessageModelMapper(chatMessage));\n};\n\n/**\n * Maps a list of chat messages into an instance of {@see ChatItemsListModel}, which contains a list of `ChatItemModel` objects. Each object represents a question (from the user) and its corresponding answer (from the agent).\n * The backend returns messages as individual entries, and this function transforms those entries into objects that pair each question with its answer.\n *\n * @param {Array<Object>} data - An array of message objects, where each message contains details such as the role (user or assistant) and the message content.\n * @return {ChatItemsListModel} An instance of `ChatItemsListModel` containing a list of `ChatItemModel` objects, where each object holds a question and its corresponding answer.\n *\n * @example\n * // Example message data from the backend\n * const data = [\n * { role: 'user', conversationId: '123', agentId: 'agent-1', message: 'What is the weather?', timestamp: 1628876583 },\n * { role: 'assistant', conversationId: '123', agentId: 'agent-1', message: 'The weather is sunny.', timestamp: 1628876590 }\n * ];\n *\n * // Example of the resulting ChatItemsListModel array\n * const items = [\n * {\n * conversationId: '123',\n * agentId: 'agent-1',\n * question: {\n * role: 'user',\n * message: 'What is the weather?',\n * timestamp: 1628876583\n * },\n * answer: {\n * role: 'assistant',\n * message: 'The weather is sunny.',\n * timestamp: 1628876590\n * }\n * }]\n */\nexport const chatItemsModelMapper = (data = []) => {\n const items = [];\n let currentItem;\n data.forEach((message) => {\n // NOTE: The backend chat model doesn't have a ChatItemModel object,\n // i.e. it doesn't group user + assistant messages together.\n // In essence, there may be multiple consecutive user messages as well as\n // multiple consecutive assistant messages.\n const chatId = message.conversationId;\n if (CHAT_MESSAGE_ROLE.USER === message.role) {\n if (currentItem) {\n items.push(currentItem);\n }\n currentItem = new ChatItemModel(chatId, chatMessageModelMapper(message));\n } else {\n if (!currentItem) {\n currentItem = new ChatItemModel(chatId, null);\n }\n currentItem.answers.push(chatMessageModelMapper(message));\n currentItem.agentId = message.agentId;\n }\n });\n if (currentItem) {\n items.push(currentItem);\n }\n return new ChatItemsListModel(items);\n};\n\n/**\n * Converts the response from the server to a ChatMessageModel.\n * @param {*} data\n * @return {ChatMessageModel|undefined}\n */\nexport const chatMessageModelMapper = (data) => {\n if (!data) {\n return;\n }\n return new ChatMessageModel({\n id: data.id,\n role: data.role,\n message: data.message,\n timestamp: data.timestamp,\n tokenUsageInfo: data.usage,\n data: data\n });\n};\n\n/**\n * Converts the response from the server to a ChatAnswerModel instance.\n * @param {*} data\n * @return {ChatAnswerModel|undefined}\n */\nexport const chatAnswerModelMapper = (data) => {\n if (!data) {\n return;\n }\n return new ChatAnswerModel({\n chatId: data.id,\n chatName: data.name,\n timestamp: data.timestamp,\n messages: chatMessageModelListMapper(data.messages),\n continueRunId: data.continueRunId,\n tokenUsageInfo: data.usage\n });\n};\n","export class ExplainResponseModel {\n constructor(data = {}) {\n\n /**\n * @type {string}\n */\n this._chatId = data.chatId;\n\n /**\n * @type {string}\n */\n this._answerId = data.answerId;\n\n /**\n * @type {ExplainQueryMethodsListModel}\n */\n this._queryMethods = data.queryMethods;\n\n this._expanded = data.expanded !== undefined ? data.expanded : true;\n }\n\n get chatId() {\n return this._chatId;\n }\n\n set chatId(value) {\n this._chatId = value;\n }\n\n get answerId() {\n return this._answerId;\n }\n\n set answerId(value) {\n this._answerId = value;\n }\n\n get queryMethods() {\n return this._queryMethods;\n }\n\n set queryMethods(value) {\n this._queryMethods = value;\n }\n\n get expanded() {\n return this._expanded;\n }\n\n set expanded(value) {\n this._expanded = value;\n }\n}\n\nexport class ExplainQueryMethodsListModel {\n constructor(data = []) {\n this._items = data;\n }\n\n get items() {\n return this._items;\n }\n\n set items(value) {\n this._items = value;\n }\n}\n\nexport class ExplainQueryMethodModel {\n constructor(data = {}) {\n /**\n * @type {ExtractionMethod.FTS_SEARCH | ExtractionMethod.RETRIEVAL | ExtractionMethod.SPARQL | ExtractionMethod.SIMILARITY}\n */\n this._name = data.name;\n\n /**\n * @type {string}\n */\n this._rawQuery = data.rawQuery;\n\n /**\n * @type {string}\n */\n this._query = data.query;\n\n /**\n * @Type {ExplainQueryType}\n * @private\n */\n this._queryType = data.queryType;\n\n /**\n * @type {string | null}\n * @private\n */\n this._errorMessage = data.errorOutput;\n }\n\n get name() {\n return this._name;\n }\n\n set name(value) {\n this._name = value;\n }\n\n get rawQuery() {\n return this._rawQuery;\n }\n\n set rawQuery(value) {\n this._rawQuery = value;\n }\n\n get query() {\n return this._query;\n }\n\n set query(value) {\n this._query = value;\n }\n\n get queryType() {\n return this._queryType;\n }\n\n set queryType(value) {\n this._queryType = value;\n }\n\n get errorMessage() {\n return this._errorMessage;\n }\n\n set errorMessage(value) {\n this._errorMessage = value;\n }\n}\n\nexport const ExplainQueryType = {\n SPARQL: 'sparql',\n JSON: 'json',\n OTHER: 'other'\n};\n","export class AgentInstructionsExplain {\n constructor(data) {\n /**\n * @type {string}\n * @private\n */\n this._type = data.type;\n /**\n * @type {string}\n * @private\n */\n this._content = data.content;\n /**\n * @type {number}\n * @private\n */\n this._size = data.size;\n }\n\n get size() {\n return this._size;\n }\n\n set size(value) {\n this._size = value;\n }\n get content() {\n return this._content;\n }\n\n set content(value) {\n this._content = value;\n }\n get type() {\n return this._type;\n }\n\n set type(value) {\n this._type = value;\n }\n}\n\nexport class AgentInstructionsExplainList {\n constructor(data) {\n /**\n * @type {AgentInstructionsExplain[]}\n * @private\n */\n this._instructions = data.instructions;\n }\n\n get instructions() {\n return this._instructions;\n }\n\n set instructions(value) {\n this._instructions = value;\n }\n}\n","import {\n ExplainQueryMethodModel,\n ExplainQueryMethodsListModel,\n ExplainResponseModel\n} from \"../../models/ttyg/explain-response\";\n\n/**\n * Converts the response from the server to a ExplainResponseModel.\n *\n * @param {*} data\n * @return {ExplainResponseModel}\n */\nexport const explainResponseMapper = (data) => {\n return new ExplainResponseModel({\n chatId: data.conversationId,\n answerId: data.answerId,\n queryMethods: explainQueryMethodsListMapper(data.queryMethods)\n });\n};\n\n/**\n * Converts the response from the server to a ExplainQueryMethodsListModel.\n *\n * @param {*} data\n * @return {ExplainQueryMethodsListModel}\n */\nexport const explainQueryMethodsListMapper = (data = []) => {\n return new ExplainQueryMethodsListModel(data.map(explainQueryMethodMapper));\n};\n\n/**\n * Converts the response from the server to a ExplainQueryMethodModel.\n *\n * @param {*} data\n * @return {ExplainQueryMethodModel}\n */\nexport const explainQueryMethodMapper = (data) => {\n return new ExplainQueryMethodModel(data);\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":["agentInstructionsExplainMapper","data","map","instruction","AgentInstructionsExplain","AgentInstructionsExplainList","ChatModel","getEmptyChat","name","timestamp","Math","floor","Date","now","md5HashGenerator","constructor","hashGenerator","this","_id","id","_name","_timestamp","_chatHistory","chatHistory","ChatItemsListModel","hash","generateHash","JSON","stringify","value","toRenameRequestPayload","ChatByDayModel","_day","day","_chats","chats","ChatsListModel","_chatsByDay","sortByTime","updateChatsByDay","sort","a","b","updateChatTimestamp","chatId","chat","find","c","updateChatName","deleteChat","chatToBeDeleted","filter","forEach","toDateString","dayModel","d","push","appendChat","replaceChat","newChat","oldChat","isEmpty","length","getFirstChat","deselectAll","selected","selectChat","getChat","getNonPersistedChat","renameChat","renamedChat","chatsByDay","TTYGService","TTYGRestService","$repositories","getConversation","then","response","chatModelMapper","renameConversation","exportConversation","res","contentDispositionHeader","headers","filename","split","substring","askQuestion","chatItem","toAskRequestPayload","chatAnswerModelMapper","continueChatRun","continueData","payload","toContinueRunRequestPayload","getConversations","savedQueryName","owner","chatsListMapper","deleteConversation","createConversation","toCreateChatRequestPayload","getAgents","localRepositories","getLocalReadablGraphdbRepositoryIds","agentListMapper","getAgent","agentModelMapper","createAgent","editAgent","deleteAgent","explainResponse","answerId","toExplainResponsePayload","explainResponseMapper","getDefaultAgent","getAgentDefaultValues","explainAgentSettings","angular","module","factory","$inject","ChatAnswerModel","_chatId","_chatName","chatName","_messages","messages","_continueRunId","continueRunId","tokenUsageInfo","ContinueChatRun","runId","_chatItem","_runId","conversationId","agentId","tzOffset","getTimezoneOffset","agentFormModelMapper","agentModel","defaultAgentModel","operation","agentFormModel","AgentFormModel","repositoryId","model","contextSize","contextSizeCopy","temperature","undefined","topP","seed","instructions","agentInstructionsFormMapper","extractionMethodsFormMapper","assistantExtractionMethods","additionalExtractionMethodsResponse","defaultAdditionalExtractionMethodData","additionalExtractionMethods","method","expanded","AdditionalExtractionMethod","IRI_DISCOVERY_SEARCH","AUTOCOMPLETE_IRI_DISCOVERY_SEARCH","some","agentMethod","maxNumberOfResultsPerCall","_maxNumberOfResultsPerCall","AdditionalExtractionMethodFormModel","setAdditionalExtractionMethod","additionalExtractionMethodsFormMapper","currentAgentModelInstructions","defaultInstructions","systemInstruction","userInstruction","AgentInstructionsFormModel","defaultSystemInstruction","defaultUserInstruction","defaultData","defaultExtractionMethods","defaultExtractionMethod","defaultSparqlMethodValues","extractionMethod","isMethodSelected","sparqlOption","AGENT_OPERATION","CREATE","sparqlQuery","ontologyGraph","shouldShowSelectedMethods","EDIT","CLONE","existingMethod","ExtractionMethodFormModel","addMissingNamespaces","TextFieldModel","minLength","maxLength","similarityIndex","similarityIndexThreshold","NumericRangeModel","minValue","maxValue","step","maxNumberOfTriplesPerCall","queryTemplate","retrievalConnectorInstance","setExtractionMethod","localRepositoryIds","AgentListModel","agentModels","agent","AgentModel","isRepositoryDeleted","includes","api","agentInstructionsMapper","extractionMethodsMapper","additionalExtractionMethodsMapper","compatibility","extractionMethodMapper","ExtractionMethodModel","additionalExtractionMethod","additionalExtractionMethodMapper","AdditionalExtractionMethodModel","limit","AgentInstructionsModel","ChatItemModel","question","_agentId","_question","_answers","answers","setQuestionMessage","message","ChatMessageModel","role","CHAT_MESSAGE_ROLE","USER","getQuestionMessage","items","_items","appendItem","getLast","chatModels","chatItemsModelMapper","chatMessageModelListMapper","chatMessage","chatMessageModelMapper","currentItem","usage","ExplainResponseModel","_answerId","_queryMethods","queryMethods","_expanded","ExplainQueryMethodsListModel","ExplainQueryMethodModel","_rawQuery","rawQuery","_query","query","_queryType","queryType","_errorMessage","errorOutput","errorMessage","ExplainQueryType","SPARQL","OTHER","_type","type","_content","content","_size","size","_instructions","explainQueryMethodsListMapper","explainQueryMethodMapper","CONVERSATIONS_ENDPOINT","AGENTS_ENDPOINT","EXPLAIN_RESPONSE_ENDPOINT","DEVELOPMENT","$http","_fakeBackend","TtygRestServiceFakeBackend","get","put","responseType","post","delete"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const __webpack_id__=40516;export const __webpack_ids__=[3909,19402,36633,40516,63415,64871,87252];export const __webpack_modules__={3909:()=>{function t(){return{restrict:"E",require:"ngModel",scope:{ngModel:"=",ngDisabled:"=",placeholder:"@"},templateUrl:"js/angular/core/templates/editable-content/editable-content.html",link:function(t,e,s,a){const i=e.find("div"),h=()=>{t.ngDisabled||t.$apply(()=>{i.html().length&&!i.text().trim().length&&i.empty(),a.$setViewValue(i[0].innerText)})};a.$render=()=>{i.html(a.$viewValue||"")};const n=t=>{t.preventDefault();const e=(t.originalEvent||t).clipboardData.getData("text/plain"),s=window.getSelection();if(!s.rangeCount)return;s.deleteFromDocument();const a=s.getRangeAt(0),i=document.createDocumentFragment(),h=e.split("\n");h.forEach((t,e)=>{i.appendChild(document.createTextNode(t)),e<h.length-1&&i.appendChild(document.createElement("br"))}),a.insertNode(i),s.collapseToEnd()};t.$on("$destroy",()=>{i.off("blur keyup change input",h),i.off("paste",n)}),i.on("blur keyup change input",h),i.on("paste",n)}}}angular.module("graphdb.framework.core.directives.editable-content",[]).directive("editableContent",t),t.$inject=[]},13815:(t,e,s)=>{s.r(e),s(64118),s(3909);var a=s(71920),i=s(36633),h=s(63415),n=s(98980),r=s(69937),o=s(19402);function d(t,e,s,d){return{restrict:"E",templateUrl:"js/angular/ttyg/templates/chat-panel.html",link:(t,d,c)=>{t.chat=void 0,t.selectedAgent=void 0,t.chatItem=void 0,t.askingChatItem=void 0,t.waitingForLastMessage=!1,t.loadingChat=!0,t.ask=()=>{t.chatItem.question.timestamp=Date.now(),t.askingChatItem=(0,n.cloneDeep)(t.chatItem),t.chatItem.chatId?u(t.chatItem):m(),t.chatItem=_(),p(),l()},t.regenerateQuestion=e=>{const s=_();s.setQuestionMessage(e.getQuestionMessage()),s.question.timestamp=Date.now(),t.askingChatItem=s,u(s),p()},t.onKeypressOnInput=e=>{t.askingChatItem||"Enter"!==e.key||e.shiftKey||e.ctrlKey||t.ask()},t.onAskHowDeliveredAnswer=()=>{const s=_();s.setQuestionMessage(e.instant("ttyg.chat_panel.btn.derive_answer.label")),s.question.timestamp=Date.now(),t.askingChatItem=(0,n.cloneDeep)(s),u(s),p()},t.getAgentName=t=>{const a=s.getAgent(t);return a?a.name:(0,r.Gz)(e.instant("ttyg.chat_panel.deleted_agent"))};const m=()=>{t.waitingForLastMessage=!0,s.emit(a.TTYGEventName.CREATE_CHAT,t.chatItem)},u=e=>{t.waitingForLastMessage=!0,s.emit(a.TTYGEventName.ASK_QUESTION,e)},g=()=>{t.chatItem=(0,n.cloneDeep)(t.askingChatItem),t.askingChatItem=void 0,t.waitingForLastMessage=!1},_=()=>{const e=new h.ChatItemModel;return e.question=new i.ChatMessageModel({role:i.CHAT_MESSAGE_ROLE.USER}),t.chat&&(e.chatId=t.chat.id),t.selectedAgent&&(e.agentId=t.selectedAgent.id),e},l=()=>{setTimeout(()=>{let t=document.querySelector(".question-input");t&&t.focus()})},p=()=>{setTimeout(()=>{const t=d.find(".chat-details")[0];t&&(t.scrollTop=t.scrollHeight)})},y=()=>{t.chat=o.ChatModel.getEmptyChat(),t.loadingChat=!1,t.chatItem=_(),t.askingChatItem=void 0,t.waitingForLastMessage=!1,l()},I=[];I.push(t.$watchCollection("chat.chatHistory.items",p)),I.push(s.onSelectedChatUpdated(e=>{if(t.chat=e,!e||!e.id&&t.askingChatItem)return;t.loadingChat=!1;let a=t.chatItem.question.message;if(t.chatItem=_(),t.chatItem.question.message=a,t.askingChatItem=void 0,t.chat){const e=t.chat.chatHistory.getLast();e&&e.agentId&&s.selectAgent(s.getAgent(e.agentId))}l()})),I.push(s.onLastMessageReceived(()=>{t.waitingForLastMessage=!1})),I.push(s.onSelectedAgentChanged(e=>{t.selectedAgent=e,t.selectedAgent&&t.chatItem&&(t.chatItem.agentId=t.selectedAgent.id),l()})),I.push(s.onSelectedChatChanged(e=>{e?(t.loadingChat=e&&e.id,t.chatItem=_(),l()):y()})),I.push(s.subscribe(a.TTYGEventName.LOAD_CHAT_FAILURE,()=>{t.loadingChat=!1,t.chatItem=_(),l()})),I.push(s.subscribe(a.TTYGEventName.ASK_QUESTION_FAILURE,g)),I.push(s.subscribe(a.TTYGEventName.CREATE_CHAT_FAILURE,g)),I.push(s.subscribe(a.TTYGEventName.DELETE_CHAT_SUCCESSFUL,e=>{t.chat&&e.id===t.chat.id&&y()})),t.$on("$destroy",()=>{I.forEach(t=>t())}),t.chat=o.ChatModel.getEmptyChat(),t.chatItem=_(),l()}}}angular.module("graphdb.framework.ttyg.directives.chat-panel",["graphdb.framework.ttyg.directives.chat-item-detail","graphdb.framework.core.directives.editable-content"]).directive("chatPanel",d),d.$inject=["toastr","$translate","TTYGContextService","$timeout"]},19402:(t,e,s)=>{s.r(e),s.d(e,{ChatByDayModel:()=>n,ChatModel:()=>h,ChatsListModel:()=>r});var a=s(63415),i=s(93135);class h{static getEmptyChat(){const t={name:"· · ·",timestamp:Math.floor(Date.now()/1e3)};return new h(t,(0,i.md5HashGenerator)())}constructor(t,e){this.hashGenerator=e,this._id=t.id,this._name=t.name,this._timestamp=t.timestamp,this._chatHistory=t.chatHistory||new a.ChatItemsListModel,this.hash=this.generateHash()}generateHash(){return this.hashGenerator(JSON.stringify(this))}get id(){return this._id}set id(t){this._id=t}get name(){return this._name}set name(t){this.generateHash(),this._name=t}get timestamp(){return this._timestamp}set timestamp(t){this._timestamp=t}get chatHistory(){return this._chatHistory}set chatHistory(t){this._chatHistory=t||new a.ChatItemsListModel}toRenameRequestPayload(){return{name:this._name}}}class n{constructor(t){this._day=t.day,this._timestamp=t.timestamp,this._chats=t.chats}get day(){return this._day}set day(t){this._day=t}get timestamp(){return this._timestamp}set timestamp(t){this._timestamp=t}get chats(){return this._chats}set chats(t){this._chats=t}}class r{constructor(t){this._chats=t||[],this._chatsByDay=[],this.sortByTime(),this.updateChatsByDay()}sortByTime(){this._chats.sort((t,e)=>e.timestamp-t.timestamp)}updateChatTimestamp(t,e){const s=this._chats.find(e=>e.id===t);s&&(s.timestamp=e,this.sortByTime(),this.updateChatsByDay())}updateChatName(t,e){const s=this._chats.find(e=>e.id===t);s&&(s.name=e)}deleteChat(t){this._chats=this._chats.filter(e=>e.id!==t.id),this.sortByTime(),this.updateChatsByDay()}updateChatsByDay(){this._chatsByDay=[],this._chats.forEach(t=>{const e=new Date(1e3*t.timestamp).toDateString(),s=this._chatsByDay.find(t=>t.day===e);s?s.chats.push(t):this._chatsByDay.push(new n({day:e,timestamp:1e3*t.timestamp,chats:[t]}))})}appendChat(t){this._chats.push(t),this.sortByTime(),this.updateChatsByDay()}replaceChat(t,e){this._chats=this._chats.map(s=>s.id===e.id?t:s),this.sortByTime(),this.updateChatsByDay()}isEmpty(){return 0===this._chats.length}getFirstChat(){return this._chats[0]}deselectAll(){this._chats.forEach(t=>{t.selected=!1})}selectChat(t){this.deselectAll(),this._chats.forEach(e=>{e.selected=e.id===t.id})}getChat(t){return this._chats.find(e=>e.id===t)}getNonPersistedChat(){return this._chats.find(t=>!t.id)}renameChat(t){const e=this._chats.find(e=>e.id===t.id);e&&(e.name=t.name)}get chats(){return this._chats}set chats(t){this._chats=t}get chatsByDay(){return this._chatsByDay}set chatsByDay(t){this._chatsByDay=t}}},36633:(t,e,s)=>{s.r(e),s.d(e,{CHAT_MESSAGE_ROLE:()=>i,ChatMessageModel:()=>a});class a{constructor(t){this._id=t.id,this._role=t.role,this._message=t.message,this._timestamp=1e3*t.timestamp,this.tokenUsageInfo=t.tokenUsageInfo}get id(){return this._id}set id(t){this._id=t}get role(){return this._role}set role(t){this._role=t}get message(){return this._message}set message(t){this._message=t}get timestamp(){return this._timestamp}set timestamp(t){this._timestamp=t}}const i={USER:"user",ASSISTANT:"assistant"}},63415:(t,e,s)=>{s.r(e),s.d(e,{ChatItemModel:()=>i,ChatItemsListModel:()=>h});var a=s(36633);class i{constructor(t,e){this._chatId=t,this._agentId=void 0,this._question=e,this._answers=[]}get chatId(){return this._chatId}set chatId(t){this._chatId=t}get agentId(){return this._agentId}set agentId(t){this._agentId=t}get question(){return this._question}set question(t){this._question=t}get answers(){return this._answers}set answers(t){this._answers=t}setQuestionMessage(t){this._question||(this._question=new a.ChatMessageModel({role:a.CHAT_MESSAGE_ROLE.USER})),this._question.message=t}getQuestionMessage(){return this._question.message}toCreateChatRequestPayload(){return{agentId:this._agentId,question:this._question.message}}toAskRequestPayload(){return{conversationId:this._chatId,agentId:this._agentId,question:this._question.message,tzOffset:-(new Date).getTimezoneOffset()}}toExplainResponsePayload(t){return{conversationId:this._chatId,answerId:t}}}class h{constructor(t=[]){this._items=t}isEmpty(){return 0===this._items.length}appendItem(t){this._items.push(t)}get items(){return this._items}set items(t){this._items=t||[]}getLast(){if(!this.isEmpty())return this._items[this._items.length-1]}}},87252:(t,e,s)=>{s.r(e),s.d(e,{ExplainQueryMethodModel:()=>h,ExplainQueryMethodsListModel:()=>i,ExplainQueryType:()=>n,ExplainResponseModel:()=>a});class a{constructor(t={}){this._chatId=t.chatId,this._answerId=t.answerId,this._queryMethods=t.queryMethods,this._expanded=void 0===t.expanded||t.expanded}get chatId(){return this._chatId}set chatId(t){this._chatId=t}get answerId(){return this._answerId}set answerId(t){this._answerId=t}get queryMethods(){return this._queryMethods}set queryMethods(t){this._queryMethods=t}get expanded(){return this._expanded}set expanded(t){this._expanded=t}}class i{constructor(t=[]){this._items=t}get items(){return this._items}set items(t){this._items=t}}class h{constructor(t={}){this._name=t.name,this._rawQuery=t.rawQuery,this._query=t.query,this._queryType=t.queryType,this._errorMessage=t.errorOutput}get name(){return this._name}set name(t){this._name=t}get rawQuery(){return this._rawQuery}set rawQuery(t){this._rawQuery=t}get query(){return this._query}set query(t){this._query=t}get queryType(){return this._queryType}set queryType(t){this._queryType=t}get errorMessage(){return this._errorMessage}set errorMessage(t){this._errorMessage=t}}const n={SPARQL:"sparql",JSON:"json",OTHER:"other"}}};
|
|
2
|
-
//# sourceMappingURL=40516.734b24eead67142c4045.bundle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"40516.734b24eead67142c4045.bundle.js","mappings":"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","sources":["webpack://root-config/./packages/legacy-workbench/src/js/angular/core/directives/editable-content/editable-content.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/ttyg/directives/chat-panel.directive.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ttyg/chats.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ttyg/chat-message.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ttyg/chat-item.js","webpack://root-config/./packages/legacy-workbench/src/js/angular/models/ttyg/explain-response.js"],"sourcesContent":["/**\n * @ngdoc directive\n * @name editableContent\n * @module graphdb.framework.core.directives.editable-content\n * @restrict E\n * @description\n * A reusable contenteditable directive bound to an ngModel. It allows editable plain-text input and supports disabling and placeholder text.\n *\n * @param {string} ngModel - The model to bind contenteditable input to.\n * @param {boolean=} ngDisabled - Disables the contenteditable field when true.\n * @param {string=} placeholder - Placeholder text to show when input is empty.\n */\nconst modules = [];\n\nangular\n .module('graphdb.framework.core.directives.editable-content', modules)\n .directive('editableContent', editableContent);\n\neditableContent.$inject = [];\n\nfunction editableContent() {\n return {\n restrict: 'E',\n require: 'ngModel',\n scope: {\n ngModel: '=',\n ngDisabled: '=',\n placeholder: '@'\n },\n templateUrl: 'js/angular/core/templates/editable-content/editable-content.html',\n link: function(scope, element, attrs, ngModelCtrl) {\n\n // =========================\n // Private variables\n // =========================\n\n const editableDiv = element.find('div');\n\n // =========================\n // Private functions\n // =========================\n\n /**\n * Updates the bound ngModel with the current contenteditable value.\n * Also clears invalid HTML when only whitespace remains.\n */\n const updateModelValue = () => {\n if (!scope.ngDisabled) {\n scope.$apply(() => {\n if (editableDiv.html().length && !editableDiv.text().trim().length) {\n // Fixes a problem with the placeholder when type some word and delete it.\n editableDiv.empty();\n }\n ngModelCtrl.$setViewValue(editableDiv[0].innerText);\n });\n }\n };\n\n /**\n * Renders the model value into the contenteditable element.\n */\n ngModelCtrl.$render = () => {\n editableDiv.html(ngModelCtrl.$viewValue || '');\n };\n\n /**\n * Handles paste events in the contenteditable element by inserting plain text only.\n * Prevents the default paste behavior and manually inserts the clipboard text as plain text,\n * preserving line breaks by converting them to <br> elements.\n *\n * @param {Event} event - The paste event object containing clipboard data.\n */\n const pasteHandler = (event) => {\n event.preventDefault();\n\n const text = (event.originalEvent || event).clipboardData.getData('text/plain');\n const selection = window.getSelection();\n\n if (!selection.rangeCount) return;\n\n selection.deleteFromDocument();\n const range = selection.getRangeAt(0);\n const fragment = document.createDocumentFragment();\n const lines = text.split('\\n');\n\n lines.forEach((line, index) => {\n fragment.appendChild(document.createTextNode(line));\n if (index < lines.length - 1) {\n fragment.appendChild(document.createElement('br'));\n }\n });\n\n range.insertNode(fragment);\n selection.collapseToEnd();\n }\n\n // =========================\n // Subscriptions\n // =========================\n\n /**\n * Unsubscribes from all watchers and event listeners to prevent memory leaks.\n */\n const removeAllSubscribers = () => {\n editableDiv.off('blur keyup change input', updateModelValue);\n editableDiv.off('paste', pasteHandler);\n };\n\n scope.$on('$destroy', removeAllSubscribers);\n editableDiv.on('blur keyup change input', updateModelValue);\n editableDiv.on('paste', pasteHandler)\n }\n };\n}\n","import './chat-item-detail.directive';\nimport 'angular/core/directives/editable-content/editable-content';\nimport {TTYGEventName} from \"../services/ttyg-context.service\";\nimport {CHAT_MESSAGE_ROLE, ChatMessageModel} from \"../../models/ttyg/chat-message\";\nimport {ChatItemModel} from \"../../models/ttyg/chat-item\";\nimport {cloneDeep} from \"lodash\";\nimport {decodeHTML} from \"../../../../app\";\nimport {ChatModel} from \"../../models/ttyg/chats\";\n\nconst modules = [\n 'graphdb.framework.ttyg.directives.chat-item-detail',\n 'graphdb.framework.core.directives.editable-content'\n];\n\nangular\n .module('graphdb.framework.ttyg.directives.chat-panel', modules)\n .directive('chatPanel', ChatPanelComponent);\n\nChatPanelComponent.$inject = ['toastr', '$translate', 'TTYGContextService', '$timeout'];\n\n/**\n * @ngdoc directive\n * @name graphdb.framework.ttyg.directives.chat-panel:chatPanel\n * @restrict E\n * @description\n *\n * This directive represents a chat panel component that allows users to interact with a chat. It provides functionality for asking questions,\n * regenerating chat content, and other interactive features.\n *\n * It encapsulates the logic and presentation for displaying and managing chat-related interactions.\n *\n * @example\n * <chat-panel></chat-panel>\n */\nfunction ChatPanelComponent(toastr, $translate, TTYGContextService, $timeout) {\n return {\n restrict: 'E',\n templateUrl: 'js/angular/ttyg/templates/chat-panel.html',\n link: ($scope, element, attrs) => {\n\n // =========================\n // Public variables\n // =========================\n\n /**\n * @type {ChatModel}\n */\n $scope.chat = undefined;\n\n /**\n * @type {AgentModel}\n */\n $scope.selectedAgent = undefined;\n\n /**\n * @type {ChatItemModel}\n */\n $scope.chatItem = undefined;\n\n /**\n * @type {ChatItemModel}\n */\n $scope.askingChatItem = undefined;\n\n /**\n * True while a question is being handled. It may involve multiple requests until it turns back to false.\n * @type {boolean}\n */\n $scope.waitingForLastMessage = false;\n\n /**\n * Flag that indicates that the chat is about to be changed.\n * @type {boolean}\n */\n $scope.loadingChat = true;\n\n // =========================\n // Private variables\n // =========================\n\n // =========================\n // Public functions\n // =========================\n\n /**\n * Handles the ask question action.\n */\n $scope.ask = () => {\n $scope.chatItem.question.timestamp = Date.now();\n $scope.askingChatItem = cloneDeep($scope.chatItem);\n if (!$scope.chatItem.chatId) {\n createNewChat();\n } else {\n askQuestion($scope.chatItem);\n }\n $scope.chatItem = getEmptyChatItem();\n scrollToBottom();\n focusQuestionInput();\n };\n\n /**\n * Regenerates the answer for the provided chat item.\n *\n * @param {ChatItemModel} chatItem - The chat item that contains the question to be regenerated.\n */\n $scope.regenerateQuestion = (chatItem) => {\n const regenerateChatItem = getEmptyChatItem();\n regenerateChatItem.setQuestionMessage(chatItem.getQuestionMessage());\n regenerateChatItem.question.timestamp = Date.now();\n $scope.askingChatItem = regenerateChatItem;\n askQuestion(regenerateChatItem);\n scrollToBottom();\n };\n\n /**\n * Handles pressing the Enter key in the question input.\n * Will not trigger if `Shift` or `Ctrl` keys are pressed, or if Ask button is disabled.\n *\n * @param {KeyboardEvent} $event - The keyboard event triggered by the user interaction.\n */\n $scope.onKeypressOnInput = ($event) => {\n if (!$scope.askingChatItem && $event.key === 'Enter' && !$event.shiftKey && !$event.ctrlKey) {\n $scope.ask();\n }\n };\n\n $scope.onAskHowDeliveredAnswer = () => {\n const askHowDerivedAnswerChatItem = getEmptyChatItem();\n askHowDerivedAnswerChatItem.setQuestionMessage($translate.instant('ttyg.chat_panel.btn.derive_answer.label'));\n askHowDerivedAnswerChatItem.question.timestamp = Date.now();\n $scope.askingChatItem = cloneDeep(askHowDerivedAnswerChatItem);\n askQuestion(askHowDerivedAnswerChatItem);\n scrollToBottom();\n };\n\n /**\n * Finds out if agent with such id exists and returns its name or a default message for deleted agent.\n * @param {string} agentId\n * @return {string}\n */\n $scope.getAgentName = (agentId) => {\n const agent = TTYGContextService.getAgent(agentId);\n return agent ? agent.name : decodeHTML($translate.instant('ttyg.chat_panel.deleted_agent'));\n };\n\n // =========================\n // Private functions\n // =========================\n\n const createNewChat = () => {\n $scope.waitingForLastMessage = true;\n TTYGContextService.emit(TTYGEventName.CREATE_CHAT, $scope.chatItem);\n };\n\n const askQuestion = (chatItem) => {\n $scope.waitingForLastMessage = true;\n TTYGContextService.emit(TTYGEventName.ASK_QUESTION, chatItem);\n };\n\n /**\n * Handles the update of the selected chat.\n * @param {ChatModel} chat - the new selected chat.\n */\n const onSelectedChatUpdated = (chat) => {\n $scope.chat = chat;\n if (!chat || !chat.id && $scope.askingChatItem) {\n // Do nothing if the chat is new (dummy) and a question is currently being asked.\n return;\n }\n $scope.loadingChat = false;\n let message = $scope.chatItem.question.message;\n $scope.chatItem = getEmptyChatItem();\n $scope.chatItem.question.message = message;\n $scope.askingChatItem = undefined;\n if ($scope.chat) {\n // TODO: Why on earth this is here? The chat changed handler is in the ttyg.view. Why doesn't it handle this\n // but we need to go through 2 more events to achieve the same result?\n const lastChatItem = $scope.chat.chatHistory.getLast();\n if (lastChatItem && lastChatItem.agentId) {\n TTYGContextService.selectAgent(TTYGContextService.getAgent(lastChatItem.agentId));\n }\n }\n focusQuestionInput();\n };\n\n const onLastMessageReceived = () => {\n $scope.waitingForLastMessage = false;\n };\n\n /**\n * Handles the failure of loading the chat and the server returns 404. This might happen if the chat does\n * not exist anymore because it was deleted by another user for example.\n */\n const onLoadChatFailure = () => {\n $scope.loadingChat = false;\n $scope.chatItem = getEmptyChatItem();\n focusQuestionInput();\n };\n\n const onSelectedChatChanged = (chat) => {\n if (chat) {\n // Skip the loading indication if it is a new (dummy) chat that has not been created yet.\n $scope.loadingChat = chat && chat.id;\n $scope.chatItem = getEmptyChatItem();\n focusQuestionInput();\n } else {\n reset();\n }\n };\n\n const onQuestionFailure = () => {\n $scope.chatItem = cloneDeep($scope.askingChatItem);\n $scope.askingChatItem = undefined;\n $scope.waitingForLastMessage = false;\n };\n\n /**\n * Handles the change of the selected agent.\n * @param {AgentModel} agent - the new selected agent.\n */\n const onSelectedAgentChanged = (agent) => {\n $scope.selectedAgent = agent;\n if ($scope.selectedAgent && $scope.chatItem) {\n $scope.chatItem.agentId = $scope.selectedAgent.id;\n }\n focusQuestionInput();\n };\n\n const onChatDeleted = (deletedChat) => {\n if ($scope.chat && deletedChat.id === $scope.chat.id) {\n reset();\n }\n };\n\n const getEmptyChatItem = () => {\n const chatItem = new ChatItemModel();\n chatItem.question = new ChatMessageModel({role: CHAT_MESSAGE_ROLE.USER});\n\n if ($scope.chat) {\n chatItem.chatId = $scope.chat.id;\n }\n\n if ($scope.selectedAgent) {\n chatItem.agentId = $scope.selectedAgent.id;\n }\n\n return chatItem;\n };\n\n const focusQuestionInput = () => {\n // Moving focus to the end of the JS call stack with a timeout, because on first Agent select,\n // the dropdown .agent-option steals the focus, or the browser assigns it to the document <body>.\n setTimeout(() => {\n let inputElement = document.querySelector('.question-input');\n if (inputElement) {\n inputElement.focus();\n }\n });\n }\n\n const scrollToBottom = () => {\n // Call it in a timeout to ensure that Angular's digest cycle is finished and all elements are displayed.\n setTimeout(() => {\n const chatDetailsElement = element.find(\".chat-details\")[0];\n if (chatDetailsElement) {\n chatDetailsElement.scrollTop = chatDetailsElement.scrollHeight;\n }\n });\n };\n\n const reset = () => {\n $scope.chat = ChatModel.getEmptyChat();\n $scope.loadingChat = false;\n $scope.chatItem = getEmptyChatItem();\n $scope.askingChatItem = undefined;\n $scope.waitingForLastMessage = false;\n focusQuestionInput();\n };\n\n const init = () => {\n $scope.chat = ChatModel.getEmptyChat();\n $scope.chatItem = getEmptyChatItem();\n focusQuestionInput();\n };\n\n // =========================\n // Subscriptions\n // =========================\n const subscriptions = [];\n\n const removeAllSubscribers = () => {\n subscriptions.forEach((subscription) => subscription());\n };\n\n subscriptions.push($scope.$watchCollection('chat.chatHistory.items', scrollToBottom));\n subscriptions.push(TTYGContextService.onSelectedChatUpdated(onSelectedChatUpdated));\n subscriptions.push(TTYGContextService.onLastMessageReceived(onLastMessageReceived));\n subscriptions.push(TTYGContextService.onSelectedAgentChanged(onSelectedAgentChanged));\n subscriptions.push(TTYGContextService.onSelectedChatChanged(onSelectedChatChanged));\n subscriptions.push(TTYGContextService.subscribe(TTYGEventName.LOAD_CHAT_FAILURE, onLoadChatFailure));\n subscriptions.push(TTYGContextService.subscribe(TTYGEventName.ASK_QUESTION_FAILURE, onQuestionFailure));\n subscriptions.push(TTYGContextService.subscribe(TTYGEventName.CREATE_CHAT_FAILURE, onQuestionFailure));\n subscriptions.push(TTYGContextService.subscribe(TTYGEventName.DELETE_CHAT_SUCCESSFUL, onChatDeleted));\n\n // Deregister the watcher when the scope/directive is destroyed\n $scope.$on('$destroy', removeAllSubscribers);\n\n // =========================\n // Initialization\n // =========================\n init();\n }\n };\n}\n","import {ChatItemsListModel} from \"./chat-item\";\nimport {md5HashGenerator} from \"../../utils/hash-utils\";\n\nexport class ChatModel {\n static getEmptyChat() {\n const data = {\n name: \"\\u00B7 \\u00B7 \\u00B7\",\n timestamp: Math.floor(Date.now() / 1000)\n };\n return new ChatModel(data, md5HashGenerator());\n }\n\n constructor(data, hashGenerator) {\n this.hashGenerator = hashGenerator;\n\n /**\n * @type {string}\n */\n this._id = data.id;\n\n /**\n * @type {string}\n */\n this._name = data.name;\n\n /**\n * @type {number}\n */\n this._timestamp = data.timestamp;\n\n /**\n * @type {ChatItemsListModel}\n */\n this._chatHistory = data.chatHistory || new ChatItemsListModel();\n this.hash = this.generateHash();\n }\n\n generateHash() {\n return this.hashGenerator(JSON.stringify(this));\n }\n\n get id() {\n return this._id;\n }\n\n set id(value) {\n this._id = value;\n }\n\n get name() {\n return this._name;\n }\n\n set name(value) {\n this.generateHash();\n this._name = value;\n }\n\n get timestamp() {\n return this._timestamp;\n }\n\n set timestamp(value) {\n this._timestamp = value;\n }\n\n get chatHistory() {\n return this._chatHistory;\n }\n\n set chatHistory(value) {\n this._chatHistory = value || new ChatItemsListModel();\n }\n\n /**\n * Converts the instance to a rename chat request payload.\n * This request object contains the new name for renaming the chat.\n *\n * @return {{name: string}} An object representing the rename request payload.\n */\n toRenameRequestPayload() {\n return {name: this._name};\n }\n}\n\nexport class ChatByDayModel {\n constructor(data) {\n this._day = data.day;\n /**\n * @type {number}\n * @private\n */\n this._timestamp = data.timestamp;\n /**\n * @type {ChatModel[]|*}\n * @private\n */\n this._chats = data.chats;\n }\n\n get day() {\n return this._day;\n }\n\n set day(value) {\n this._day = value;\n }\n\n get timestamp() {\n return this._timestamp;\n }\n\n set timestamp(value) {\n this._timestamp = value;\n }\n\n get chats() {\n return this._chats;\n }\n\n set chats(value) {\n this._chats = value;\n }\n}\n\nexport class ChatsListModel {\n constructor(chats) {\n /**\n * @type {ChatModel[]}\n * @private\n */\n this._chats = chats || [];\n /**\n * @type {ChatByDayModel[]}\n * @private\n */\n this._chatsByDay = [];\n this.sortByTime();\n this.updateChatsByDay();\n }\n\n /**\n * Sorts the list of chats by timestamp in descending order, with the newest items on top.\n */\n sortByTime() {\n this._chats.sort((a, b) => {\n return b.timestamp - a.timestamp;\n });\n }\n\n /**\n * Updates the timestamp of a chat in the list.\n * @param {string} chatId\n * @param {number} timestamp\n */\n updateChatTimestamp(chatId, timestamp) {\n const chat = this._chats.find((c) => c.id === chatId);\n if (chat) {\n chat.timestamp = timestamp;\n this.sortByTime();\n this.updateChatsByDay();\n }\n }\n\n /**\n * Updates the name of a chat in the list.\n * @param {string} chatId\n * @param {string} name\n */\n updateChatName(chatId, name) {\n const chat = this._chats.find((c) => c.id === chatId);\n if (chat) {\n chat.name = name;\n }\n }\n\n /**\n * Deletes a chat from the chat list.\n * @param {ChatModel} chatToBeDeleted\n */\n deleteChat(chatToBeDeleted) {\n this._chats = this._chats.filter((chat) => chat.id !== chatToBeDeleted.id);\n this.sortByTime();\n this.updateChatsByDay();\n }\n\n updateChatsByDay() {\n this._chatsByDay = [];\n // group chats by day\n this._chats.forEach((chat) => {\n const day = new Date(chat.timestamp * 1000).toDateString();\n const dayModel = this._chatsByDay.find((d) => d.day === day);\n if (dayModel) {\n dayModel.chats.push(chat);\n } else {\n this._chatsByDay.push(new ChatByDayModel({day: day, timestamp: chat.timestamp * 1000, chats: [chat]}));\n }\n });\n }\n\n appendChat(chat) {\n this._chats.push(chat);\n this.sortByTime();\n this.updateChatsByDay();\n }\n\n replaceChat(newChat, oldChat) {\n this._chats = this._chats.map((chat) => {\n if (chat.id === oldChat.id) {\n return newChat;\n }\n return chat;\n });\n this.sortByTime();\n this.updateChatsByDay();\n }\n\n /**\n * Checks if the chat list is empty.\n * @return {boolean}\n */\n isEmpty() {\n return this._chats.length === 0;\n }\n\n /**\n * Returns the first chat from the list.\n * @return {ChatModel|undefined}\n */\n getFirstChat() {\n return this._chats[0];\n }\n\n /**\n * Deselects all chats.\n */\n deselectAll() {\n this._chats.forEach((c) => {\n c.selected = false;\n });\n }\n\n /**\n * Selects a chat.\n * @param {ChatModel} chat\n */\n selectChat(chat) {\n this.deselectAll();\n this._chats.forEach((c) => {\n c.selected = c.id === chat.id;\n });\n }\n\n getChat(id) {\n return this._chats.find((c) => c.id === id);\n }\n\n getNonPersistedChat() {\n return this._chats.find((chat) => !chat.id);\n }\n\n renameChat(renamedChat) {\n const chat = this._chats.find((c) => c.id === renamedChat.id);\n if (chat) {\n chat.name = renamedChat.name;\n }\n }\n\n /**\n * @return {ChatModel[]}\n */\n get chats() {\n return this._chats;\n }\n\n /**\n * @param {ChatModel[]} value\n */\n set chats(value) {\n this._chats = value;\n }\n\n get chatsByDay() {\n return this._chatsByDay;\n }\n\n set chatsByDay(value) {\n this._chatsByDay = value;\n }\n}\n","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 {CHAT_MESSAGE_ROLE, ChatMessageModel} from \"./chat-message\";\n\n/**\n *\n * Represents a model that holds a question and the answer of it in a chat.\n *\n */\nexport class ChatItemModel {\n\n /**\n * Creates an instance of ChatItemModel.\n *\n * @param {string} chatId - The unique identifier for the chat associated with this instance.\n * @param {ChatMessageModel} question - The message object representing the question.\n */\n constructor(chatId, question) {\n\n /**\n * @type {string | undefined}\n * @private\n */\n this._chatId = chatId;\n\n /**\n * @type {string | undefined}\n * @private\n */\n this._agentId = undefined;\n\n /**\n * @type {ChatMessageModel}\n * @private\n */\n this._question = question;\n\n /**\n *\n * @type {ChatMessageModel[] | undefined}\n * @private\n */\n this._answers = [];\n }\n\n get chatId() {\n return this._chatId;\n }\n\n set chatId(value) {\n this._chatId = value;\n }\n\n get agentId() {\n return this._agentId;\n }\n\n set agentId(value) {\n this._agentId = value;\n }\n\n get question() {\n return this._question;\n }\n\n set question(value) {\n this._question = value;\n }\n\n get answers() {\n return this._answers;\n }\n\n /**\n *\n * @param {ChatMessageModel[]} value\n */\n set answers(value) {\n this._answers = value;\n }\n\n /**\n * Sets the message for the user's question.\n *\n * @param {string} message - The message content for the user's question.\n */\n setQuestionMessage(message) {\n if (!this._question) {\n this._question = new ChatMessageModel({role: CHAT_MESSAGE_ROLE.USER});\n }\n this._question.message = message;\n }\n\n /**\n * Retrieves the message of the user's question.\n *\n * @return {string} - The message content of the user's question.\n */\n getQuestionMessage() {\n return this._question.message;\n }\n\n /**\n * Converts the instance to a create chat request payload.\n *\n * @return {{agentId: string, question: string}} An object representing the create request payload.\n */\n toCreateChatRequestPayload() {\n return {\n agentId: this._agentId,\n question: this._question.message\n };\n }\n\n /**\n * Converts the instance to an ask request payload.\n *\n * @return {{conversationId: string, agentId: string, question: string}} An object representing the ask request payload.\n */\n toAskRequestPayload() {\n return {\n conversationId: this._chatId,\n agentId: this._agentId,\n question: this._question.message,\n tzOffset: -new Date().getTimezoneOffset() // offsets are reversed here hence the minus\n };\n }\n\n toExplainResponsePayload(answerId) {\n return {\n conversationId: this._chatId,\n answerId\n };\n }\n}\n\nexport class ChatItemsListModel {\n\n /**\n * @param {ChatItemModel[]} items\n */\n constructor(items = []) {\n this._items = items;\n }\n\n isEmpty() {\n return this._items.length === 0;\n }\n\n /**\n * @param {ChatItemModel} chatItem\n */\n appendItem(chatItem) {\n this._items.push(chatItem);\n }\n\n get items() {\n return this._items;\n }\n\n set items(value) {\n this._items = value || [];\n }\n\n getLast() {\n if (!this.isEmpty()) {\n return this._items[this._items.length - 1];\n }\n }\n}\n","export class ExplainResponseModel {\n constructor(data = {}) {\n\n /**\n * @type {string}\n */\n this._chatId = data.chatId;\n\n /**\n * @type {string}\n */\n this._answerId = data.answerId;\n\n /**\n * @type {ExplainQueryMethodsListModel}\n */\n this._queryMethods = data.queryMethods;\n\n this._expanded = data.expanded !== undefined ? data.expanded : true;\n }\n\n get chatId() {\n return this._chatId;\n }\n\n set chatId(value) {\n this._chatId = value;\n }\n\n get answerId() {\n return this._answerId;\n }\n\n set answerId(value) {\n this._answerId = value;\n }\n\n get queryMethods() {\n return this._queryMethods;\n }\n\n set queryMethods(value) {\n this._queryMethods = value;\n }\n\n get expanded() {\n return this._expanded;\n }\n\n set expanded(value) {\n this._expanded = value;\n }\n}\n\nexport class ExplainQueryMethodsListModel {\n constructor(data = []) {\n this._items = data;\n }\n\n get items() {\n return this._items;\n }\n\n set items(value) {\n this._items = value;\n }\n}\n\nexport class ExplainQueryMethodModel {\n constructor(data = {}) {\n /**\n * @type {ExtractionMethod.FTS_SEARCH | ExtractionMethod.RETRIEVAL | ExtractionMethod.SPARQL | ExtractionMethod.SIMILARITY}\n */\n this._name = data.name;\n\n /**\n * @type {string}\n */\n this._rawQuery = data.rawQuery;\n\n /**\n * @type {string}\n */\n this._query = data.query;\n\n /**\n * @Type {ExplainQueryType}\n * @private\n */\n this._queryType = data.queryType;\n\n /**\n * @type {string | null}\n * @private\n */\n this._errorMessage = data.errorOutput;\n }\n\n get name() {\n return this._name;\n }\n\n set name(value) {\n this._name = value;\n }\n\n get rawQuery() {\n return this._rawQuery;\n }\n\n set rawQuery(value) {\n this._rawQuery = value;\n }\n\n get query() {\n return this._query;\n }\n\n set query(value) {\n this._query = value;\n }\n\n get queryType() {\n return this._queryType;\n }\n\n set queryType(value) {\n this._queryType = value;\n }\n\n get errorMessage() {\n return this._errorMessage;\n }\n\n set errorMessage(value) {\n this._errorMessage = value;\n }\n}\n\nexport const ExplainQueryType = {\n SPARQL: 'sparql',\n JSON: 'json',\n OTHER: 'other'\n};\n"],"names":["editableContent","restrict","require","scope","ngModel","ngDisabled","placeholder","templateUrl","link","element","attrs","ngModelCtrl","editableDiv","find","updateModelValue","$apply","html","length","text","trim","empty","$setViewValue","innerText","$render","$viewValue","pasteHandler","event","preventDefault","originalEvent","clipboardData","getData","selection","window","getSelection","rangeCount","deleteFromDocument","range","getRangeAt","fragment","document","createDocumentFragment","lines","split","forEach","line","index","appendChild","createTextNode","createElement","insertNode","collapseToEnd","$on","removeAllSubscribers","off","on","angular","module","directive","$inject","ChatPanelComponent","toastr","$translate","TTYGContextService","$timeout","$scope","chat","undefined","selectedAgent","chatItem","askingChatItem","waitingForLastMessage","loadingChat","ask","question","timestamp","Date","now","cloneDeep","chatId","askQuestion","createNewChat","getEmptyChatItem","scrollToBottom","focusQuestionInput","regenerateQuestion","regenerateChatItem","setQuestionMessage","getQuestionMessage","onKeypressOnInput","$event","key","shiftKey","ctrlKey","onAskHowDeliveredAnswer","askHowDerivedAnswerChatItem","instant","getAgentName","agentId","agent","getAgent","name","decodeHTML","emit","TTYGEventName","CREATE_CHAT","ASK_QUESTION","onQuestionFailure","ChatItemModel","ChatMessageModel","role","CHAT_MESSAGE_ROLE","USER","id","setTimeout","inputElement","querySelector","focus","chatDetailsElement","scrollTop","scrollHeight","reset","ChatModel","getEmptyChat","subscriptions","push","$watchCollection","onSelectedChatUpdated","message","lastChatItem","chatHistory","getLast","selectAgent","onLastMessageReceived","onSelectedAgentChanged","onSelectedChatChanged","subscribe","LOAD_CHAT_FAILURE","onLoadChatFailure","ASK_QUESTION_FAILURE","CREATE_CHAT_FAILURE","DELETE_CHAT_SUCCESSFUL","deletedChat","subscription","data","Math","floor","md5HashGenerator","constructor","hashGenerator","this","_id","_name","_timestamp","_chatHistory","ChatItemsListModel","hash","generateHash","JSON","stringify","value","toRenameRequestPayload","ChatByDayModel","_day","day","_chats","chats","ChatsListModel","_chatsByDay","sortByTime","updateChatsByDay","sort","a","b","updateChatTimestamp","c","updateChatName","deleteChat","chatToBeDeleted","filter","toDateString","dayModel","d","appendChat","replaceChat","newChat","oldChat","map","isEmpty","getFirstChat","deselectAll","selected","selectChat","getChat","getNonPersistedChat","renameChat","renamedChat","chatsByDay","_role","_message","tokenUsageInfo","ASSISTANT","_chatId","_agentId","_question","_answers","answers","toCreateChatRequestPayload","toAskRequestPayload","conversationId","tzOffset","getTimezoneOffset","toExplainResponsePayload","answerId","items","_items","appendItem","ExplainResponseModel","_answerId","_queryMethods","queryMethods","_expanded","expanded","ExplainQueryMethodsListModel","ExplainQueryMethodModel","_rawQuery","rawQuery","_query","query","_queryType","queryType","_errorMessage","errorOutput","errorMessage","ExplainQueryType","SPARQL","OTHER"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const __webpack_id__=44874;export const __webpack_ids__=[44874,49539,71920];export const __webpack_modules__={44874:(e,t,n)=>{n.r(t);var a=n(38940),E=n(71920);function A(e,t,n,A,o){return{restrict:"E",templateUrl:"js/angular/ttyg/templates/agent-select-menu.html",scope:{},link:n=>{n.agentOptionsList=[],n.selectedAgent=void 0,n.onAgentSelected=(a,s)=>{if(!s.isCompatible)return a.stopPropagation(),void a.preventDefault();if(_(s),o.saveAgent(s),n.selectedAgent=s,e.selectAgent(s),s.isRepositoryDeleted){const n=t.instant("ttyg.agent.agent_select_menu.configure_agent_modal.title"),a=t.instant("ttyg.agent.agent_select_menu.configure_agent_modal.body");A.openConfirmation(n,a,()=>e.emit(E.TTYGEventName.EDIT_AGENT,s))}};const _=e=>{n.agentOptionsList.forEach(t=>{t.selected=t.data.agent===e})},s=e=>{_(e),n.selectedAgent=e},i=[];i.push(e.onAgentsListChanged(t=>{var E;E=t,n.agentOptionsList=E.agents.map(e=>new a.SelectMenuOptionsModel({value:e.id,label:e.name,data:{agent:e}})),(()=>{let t;const a=o.getAgentId();a&&n.agentOptionsList.forEach(e=>{e.data.agent.id===a&&(t=e.data.agent)}),!t&&n.agentOptionsList[0]&&(t=n.agentOptionsList[0].data.agent),s(t),e.selectAgent(t)})()})),i.push(e.subscribe(E.TTYGEventName.AGENT_DELETED,t=>{n.selectedAgent&&n.selectedAgent.id===t.id&&(n.selectedAgent.isDeleted=!0,e.selectAgent(n.selectedAgent))})),i.push(e.onSelectedAgentChanged(s)),n.$on("$destroy",()=>{i.forEach(e=>e())})}}}angular.module("graphdb.framework.ttyg.directives.agent-select-menu",[]).directive("agentSelectMenu",A),A.$inject=["TTYGContextService","$translate","$sce","ModalService","TTYGStorageService"]},71920:(e,t,n)=>{n.r(t),n.d(t,{TTYGEventName:()=>A});var a=n(98980);function E(e){let t,n,E,o,_,s={},i=!1;const T=()=>(0,a.cloneDeep)(t),c=()=>(0,a.cloneDeep)(n),d=e=>{n=(0,a.cloneDeep)(e),p(A.CHAT_LIST_UPDATED,c())},l=()=>(0,a.cloneDeep)(E),C=()=>(0,a.cloneDeep)(o),g=()=>(0,a.cloneDeep)(s),r=e=>!!s[e],D=()=>i,p=(t,n)=>{e.emitSync(t,(0,a.cloneDeep)(n))},S=(t,n)=>e.subscribeSync(t,e=>n(e));return{resetContext:()=>{t=void 0,n=void 0,E=void 0,o=void 0,s={},_=void 0,i=!1},emit:p,subscribe:S,getChats:c,updateChats:d,addChat:e=>{n.appendChat(e),d(n)},replaceChat:(e,t)=>{n.replaceChat(e,t),d(n)},onChatsListChanged:e=>(n&&angular.isFunction(e)&&e(c()),S(A.CHAT_LIST_UPDATED,t=>e(t))),getSelectedChat:l,selectChat:e=>{E&&E.id===e.id||(E=(0,a.cloneDeep)(e),p(A.SELECT_CHAT,l()))},deselectChat:()=>{E=void 0,p(A.SELECT_CHAT,l())},deleteChat:e=>{n.deleteChat(e),d(n)},onSelectedChatChanged:e=>(angular.isFunction(e)&&e(l()),S(A.SELECT_CHAT,t=>e(t))),updateSelectedChat:e=>{E&&E.id&&e&&E.id!==e.id||(E=(0,a.cloneDeep)(e),p(A.SELECTED_CHAT_UPDATED,l()))},onSelectedChatUpdated:e=>(E&&angular.isFunction(e)&&e(l()),S(A.SELECTED_CHAT_UPDATED,t=>e(t))),onLastMessageReceived:e=>(E&&angular.isFunction(e)&&e(l()),S(A.LAST_MESSAGE_RECEIVED,t=>e(t))),updateAgents:e=>{t=(0,a.cloneDeep)(e),p(A.AGENT_LIST_UPDATED,T())},onAgentsListChanged:e=>(t&&angular.isFunction(e)&&e(T()),S(A.AGENT_LIST_UPDATED,t=>e(t))),getAgents:T,getAgent:e=>{if(t)return(0,a.cloneDeep)(t.getAgent(e))},selectAgent:e=>{o=(0,a.cloneDeep)(e),p(A.AGENT_SELECTED,C())},getSelectedAgent:C,onSelectedAgentChanged:e=>(o&&angular.isFunction(e)&&e(C()),S(A.AGENT_SELECTED,t=>e(t))),getDefaultAgent:()=>(0,a.cloneDeep)(_),setDefaultAgent:e=>{_=e},setCanModifyAgent:e=>{i=(0,a.cloneDeep)(e),p(A.CAN_MODIFY_AGENT_UPDATED,D())},getCanModifyAgent:D,onCanUpdateAgentUpdated:e=>(angular.isFunction(e)&&e(D()),S(A.CAN_MODIFY_AGENT_UPDATED,t=>e(t))),hasExplainResponse:r,toggleExplainResponse:e=>{r(e)&&(s[e].expanded=!s[e].expanded,p(A.EXPLAIN_RESPONSE_CACHE_UPDATED,g()))},getExplainResponse:e=>(0,a.cloneDeep)(s[e]),addExplainResponseCache:e=>{s[e.answerId]=(0,a.cloneDeep)(e),p(A.EXPLAIN_RESPONSE_CACHE_UPDATED,g())},onExplainResponseCacheUpdated:e=>(angular.isFunction(e)&&e(g()),S(A.EXPLAIN_RESPONSE_CACHE_UPDATED,t=>e(t)))}}angular.module("graphdb.framework.ttyg.services.ttygcontext",[]).factory("TTYGContextService",E),E.$inject=["EventEmitterService","TTYGService"];const A={CREATE_CHAT:"createChat",CREATE_CHAT_SUCCESSFUL:"chatCreated",CREATE_CHAT_FAILURE:"chatCreationFailed",RENAME_CHAT:"renameChat",RENAME_CHAT_SUCCESSFUL:"chatRenamed",RENAME_CHAT_FAILURE:"chatRenamedFailure",SELECT_CHAT:"selectChat",SELECTED_CHAT_UPDATED:"selectChatUpdated",LAST_MESSAGE_RECEIVED:"lastMessageReceived",DELETING_CHAT:"deletingChat",DELETE_CHAT:"deleteChat",DELETE_CHAT_SUCCESSFUL:"chatDeleted",DELETE_CHAT_FAILURE:"chatDeletedFailure",CHAT_EXPORT:"chatExport",CHAT_EXPORT_SUCCESSFUL:"chatExportSuccess",CHAT_EXPORT_FAILURE:"chatExportFailure",CHAT_LIST_UPDATED:"chatListUpdated",ASK_QUESTION:"askQuestion",ASK_QUESTION_FAILURE:"askQuestionFailure",CONTINUE_CHAT_RUN:"continueChatRun",LOAD_CHATS:"loadChats",LOAD_CHAT_SUCCESSFUL:"loadChatSuccess",LOAD_CHAT_FAILURE:"loadChatFailure",AGENT_LIST_UPDATED:"agentListUpdated",OPEN_AGENT_SETTINGS:"openAgentSettings",EDIT_AGENT:"editAgent",CLONE_AGENT:"cloneAgent",DELETE_AGENT:"deleteAgent",AGENT_DELETED:"agentDeleted",DELETING_AGENT:"deletingAgent",AGENT_SELECTED:"agentSelected",GO_TO_CREATE_SIMILARITY_VIEW:"goToCreateSimilarityView",GO_TO_CONNECTORS_VIEW:"goToConnectorsView",GO_TO_AUTOCOMPLETE_INDEX_VIEW:"goToAutocompleteIndexView",EXPLAIN_RESPONSE:"explainResponse",EXPLAIN_RESPONSE_CACHE_UPDATED:"explainResponseCacheUpdated",GO_TO_SPARQL_EDITOR:"openQueryInSparqlEditor",CAN_MODIFY_AGENT_UPDATED:"canModifyAgentUpdated"}}};
|
|
2
|
-
//# sourceMappingURL=44874.5854c207bbe2c4f2438e.bundle.js.map
|