@gnar-engine/cli 1.0.3 → 1.0.5
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/bootstrap/deploy.localdev.yml +44 -30
- package/bootstrap/secrets.localdev.yml +20 -14
- package/bootstrap/services/control/src/config.js +4 -0
- package/bootstrap/services/{agent → page}/Dockerfile +3 -3
- package/bootstrap/services/page/package.json +16 -0
- package/bootstrap/services/page/src/app.js +50 -0
- package/bootstrap/services/page/src/commands/block.handler.js +94 -0
- package/bootstrap/services/page/src/commands/page.handler.js +167 -0
- package/bootstrap/services/page/src/config.js +62 -0
- package/bootstrap/services/page/src/controllers/block.http.controller.js +87 -0
- package/bootstrap/services/page/src/controllers/message.controller.js +51 -0
- package/bootstrap/services/page/src/controllers/page.http.controller.js +89 -0
- package/bootstrap/services/page/src/policies/block.policy.js +50 -0
- package/bootstrap/services/page/src/policies/page.policy.js +49 -0
- package/bootstrap/services/page/src/schema/page.schema.js +139 -0
- package/bootstrap/services/page/src/services/block.service.js +83 -0
- package/bootstrap/services/page/src/services/page.service.js +83 -0
- package/bootstrap/services/portal/Dockerfile +7 -10
- package/bootstrap/services/portal/README.md +66 -15
- package/bootstrap/services/portal/index.html +13 -0
- package/bootstrap/services/portal/nginx.conf +5 -12
- package/bootstrap/services/portal/package.json +27 -53
- package/bootstrap/services/portal/public/vite.svg +1 -0
- package/bootstrap/services/portal/react-router.config.js +7 -0
- package/bootstrap/services/portal/src/App.jsx +16 -0
- package/bootstrap/services/portal/src/assets/gnar-engine-white-logo.svg +9 -0
- package/bootstrap/services/portal/src/assets/icon-agent.svg +6 -0
- package/bootstrap/services/portal/src/assets/icon-cog.svg +4 -0
- package/bootstrap/services/portal/src/assets/icon-delete.svg +3 -0
- package/bootstrap/services/portal/src/assets/icon-home.svg +3 -0
- package/bootstrap/services/portal/src/assets/icon-padlock.svg +3 -0
- package/bootstrap/services/portal/src/assets/icon-page.svg +6 -0
- package/bootstrap/services/portal/src/assets/icon-reports.svg +3 -0
- package/bootstrap/services/portal/src/assets/icon-user.svg +3 -0
- package/bootstrap/services/portal/src/assets/icon-users.svg +3 -0
- package/bootstrap/services/portal/src/assets/login-green-rad-back-1.jpg +0 -0
- package/bootstrap/services/portal/src/assets/react.svg +1 -0
- package/bootstrap/services/portal/src/components/CrudList/CrudList.jsx +85 -0
- package/bootstrap/services/portal/src/components/CrudList/CrudList.less +59 -0
- package/bootstrap/services/portal/src/{ui/customSelect → components/CustomSelect}/CustomSelect.jsx +21 -3
- package/bootstrap/services/portal/src/components/LoginForm/LoginForm.jsx +58 -0
- package/bootstrap/services/portal/src/components/PageBlockSwitch/PageBlockSwitch.jsx +129 -0
- package/bootstrap/services/portal/src/components/Sidebar/Sidebar.jsx +33 -0
- package/bootstrap/services/portal/src/components/Sidebar/Sidebar.less +37 -0
- package/bootstrap/services/portal/src/components/Topbar/Topbar.jsx +19 -0
- package/bootstrap/services/portal/src/components/Topbar/Topbar.less +22 -0
- package/bootstrap/services/portal/src/components/UserInfo/UserInfo.jsx +33 -0
- package/bootstrap/services/portal/src/components/UserInfo/UserInfo.less +21 -0
- package/bootstrap/services/portal/src/css/style.css +446 -742
- package/bootstrap/services/portal/src/data/pages.data.js +10 -0
- package/bootstrap/services/portal/src/elements/CustomSelect/CustomSelect.jsx +65 -0
- package/bootstrap/services/portal/src/{ui/customSelect/customSelect.less → elements/CustomSelect/CustomSelect.less} +17 -7
- package/bootstrap/services/portal/src/elements/ImageInput/ImageInput.jsx +115 -0
- package/bootstrap/services/portal/src/elements/ImageInput/ImageInput.less +43 -0
- package/bootstrap/services/portal/src/elements/ImageMultiInput/ImageMultiInput.jsx +124 -0
- package/bootstrap/services/portal/src/elements/ImageMultiInput/ImageMultiInput.less +0 -0
- package/bootstrap/services/portal/src/elements/Repeater/Repeater.jsx +52 -0
- package/bootstrap/services/portal/src/elements/Repeater/Repeater.less +70 -0
- package/bootstrap/services/portal/src/elements/RichTextInput/RichTextInput.jsx +18 -0
- package/bootstrap/services/portal/src/elements/RichTextInput/RichTextInput.less +37 -0
- package/bootstrap/services/portal/src/elements/SaveButton/SaveButton.jsx +45 -0
- package/bootstrap/services/portal/src/elements/SelectRepeater/SelectRepeater.jsx +63 -0
- package/bootstrap/services/portal/src/elements/SelectRepeater/SelectRepeater.less +23 -0
- package/bootstrap/services/portal/src/elements/TextInput/TextInput.jsx +17 -0
- package/bootstrap/services/portal/src/layouts/Card/Card.jsx +15 -0
- package/bootstrap/services/portal/src/layouts/PortalLayout/PortalLayout.jsx +29 -0
- package/bootstrap/services/portal/src/layouts/PortalLayout/PortalLayout.less +49 -0
- package/bootstrap/services/portal/src/main.jsx +51 -0
- package/bootstrap/services/portal/src/pages/BlockSinglePage/BlockSinglePage.jsx +277 -0
- package/bootstrap/services/portal/src/pages/BlocksPage/BlocksPage.jsx +23 -0
- package/bootstrap/services/portal/src/pages/DashboardPage/DashboardPage.jsx +11 -0
- package/bootstrap/services/portal/src/pages/DashboardPage/DashboardPage.less +0 -0
- package/bootstrap/services/portal/src/pages/LoginPage/LoginPage.jsx +21 -0
- package/bootstrap/services/portal/src/pages/LoginPage/LoginPage.less +51 -0
- package/bootstrap/services/portal/src/pages/PageSinglePage/PageSinglePage.jsx +338 -0
- package/bootstrap/services/portal/src/pages/PagesPage/PagesPage.jsx +23 -0
- package/bootstrap/services/portal/src/pages/UserSinglePage/UserSinglePage.jsx +9 -0
- package/bootstrap/services/portal/src/pages/UserSinglePage/UserSinglePage.less +0 -0
- package/bootstrap/services/portal/src/pages/UsersPage/UsersPage.jsx +25 -0
- package/bootstrap/services/portal/src/pages/UsersPage/UsersPage.less +0 -0
- package/bootstrap/services/portal/src/services/block.js +28 -0
- package/bootstrap/services/portal/src/services/client.js +67 -0
- package/bootstrap/services/portal/src/services/gravatar.js +14 -0
- package/bootstrap/services/portal/src/services/page.js +28 -0
- package/bootstrap/services/portal/src/services/storage.js +62 -0
- package/bootstrap/services/portal/src/services/user.js +41 -0
- package/bootstrap/services/portal/src/slices/authSlice.js +44 -14
- package/bootstrap/services/portal/src/store/configureStore.js +1 -3
- package/bootstrap/services/portal/src/style/cards.less +57 -0
- package/bootstrap/services/portal/src/{styles → style}/global.less +90 -45
- package/bootstrap/services/portal/src/style/icons.less +21 -0
- package/bootstrap/services/portal/src/style/inputs.less +52 -0
- package/bootstrap/services/portal/src/style/main.less +28 -0
- package/bootstrap/services/portal/src/utils/utils.js +9 -0
- package/bootstrap/services/portal/vite.config.js +12 -0
- package/bootstrap/services/user/Dockerfile +1 -1
- package/bootstrap/services/user/src/app.js +6 -1
- package/bootstrap/services/user/src/commands/user.handler.js +0 -3
- package/bootstrap/services/user/src/config.js +5 -1
- package/bootstrap/services/user/src/policies/user.policy.js +3 -1
- package/bootstrap/services/user/src/tests/commands/user.test.js +22 -0
- package/install-from-clone.sh +30 -0
- package/package.json +1 -1
- package/src/cli.js +8 -0
- package/src/config.js +2 -1
- package/src/dev/commands.js +10 -2
- package/src/dev/dev.service.js +167 -52
- package/src/provisioner/Dockerfile +27 -0
- package/src/provisioner/package.json +19 -0
- package/src/provisioner/src/app.js +56 -0
- package/src/provisioner/src/services/mongodb.js +58 -0
- package/src/provisioner/src/services/mysql.js +51 -0
- package/src/provisioner/src/services/secrets.js +84 -0
- package/src/scaffolder/commands.js +12 -5
- package/src/scaffolder/scaffolder.handler.js +256 -58
- package/templates/service/Dockerfile.hbs +4 -1
- package/templates/service/package.json.hbs +14 -16
- package/templates/service/src/app.js.hbs +53 -0
- package/templates/service/{commands → src/commands}/{{serviceName}}.handler.js.hbs +2 -3
- package/templates/service/src/mongodb.config.js.hbs +49 -0
- package/templates/service/{config.js.hbs → src/mysql.config.js.hbs} +10 -0
- package/{bootstrap/services/agent/src/schema/Agent.schema.js → templates/service/src/schema/{{serviceName}}.schema.js.hbs} +3 -3
- package/templates/service/src/services/mongodb.{{serviceName}}.service.js.hbs +70 -0
- package/bootstrap/services/agent/notes.md +0 -28
- package/bootstrap/services/agent/package.json +0 -16
- package/bootstrap/services/agent/src/app.js +0 -52
- package/bootstrap/services/agent/src/commands/agent.handler.js +0 -104
- package/bootstrap/services/agent/src/config.js +0 -52
- package/bootstrap/services/agent/src/controllers/http.controller.js +0 -44
- package/bootstrap/services/agent/src/controllers/message.controller.js +0 -51
- package/bootstrap/services/agent/src/db/migrations/01-init.js +0 -50
- package/bootstrap/services/agent/src/db/migrations/02-agent-service-init.js +0 -36
- package/bootstrap/services/agent/src/policies/agent.policy.js +0 -13
- package/bootstrap/services/agent/src/services/agent.service.js +0 -259
- package/bootstrap/services/agent/src/services/chatgpt.service.js +0 -46
- package/bootstrap/services/agent/src/services/manifest.service.js +0 -21
- package/bootstrap/services/portal/Dockerfile.remote +0 -40
- package/bootstrap/services/portal/public/favicon.ico +0 -0
- package/bootstrap/services/portal/public/gnar-white.png +0 -0
- package/bootstrap/services/portal/public/gnarengine-logo-black.png +0 -0
- package/bootstrap/services/portal/public/index.html +0 -43
- package/bootstrap/services/portal/public/logo192.png +0 -0
- package/bootstrap/services/portal/public/logo512.png +0 -0
- package/bootstrap/services/portal/public/manifest.json +0 -25
- package/bootstrap/services/portal/public/robots.txt +0 -3
- package/bootstrap/services/portal/src/App.js +0 -56
- package/bootstrap/services/portal/src/assets/Logo_Anchord_Black.svg +0 -1
- package/bootstrap/services/portal/src/assets/Logo_Anchord_Black_Green.svg +0 -1
- package/bootstrap/services/portal/src/assets/Logo_Anchord_White_Green.svg +0 -1
- package/bootstrap/services/portal/src/assets/activity.svg +0 -3
- package/bootstrap/services/portal/src/assets/arrow.svg +0 -3
- package/bootstrap/services/portal/src/assets/bin-white.svg +0 -3
- package/bootstrap/services/portal/src/assets/bin.svg +0 -3
- package/bootstrap/services/portal/src/assets/check.svg +0 -3
- package/bootstrap/services/portal/src/assets/chevron.svg +0 -3
- package/bootstrap/services/portal/src/assets/contact.svg +0 -3
- package/bootstrap/services/portal/src/assets/dots-vertical.svg +0 -5
- package/bootstrap/services/portal/src/assets/eye-off.svg +0 -3
- package/bootstrap/services/portal/src/assets/eye.svg +0 -4
- package/bootstrap/services/portal/src/assets/gnar-engine-black.svg +0 -47
- package/bootstrap/services/portal/src/assets/gnar-engine-white.svg +0 -47
- package/bootstrap/services/portal/src/assets/gnar_engine.svg +0 -3
- package/bootstrap/services/portal/src/assets/gnarengine-logo-black.png +0 -0
- package/bootstrap/services/portal/src/assets/home.svg +0 -3
- package/bootstrap/services/portal/src/assets/link.svg +0 -3
- package/bootstrap/services/portal/src/assets/lock.svg +0 -3
- package/bootstrap/services/portal/src/assets/package.svg +0 -4
- package/bootstrap/services/portal/src/assets/raffle.svg +0 -3
- package/bootstrap/services/portal/src/assets/settings.svg +0 -4
- package/bootstrap/services/portal/src/assets/shopping-bag.svg +0 -3
- package/bootstrap/services/portal/src/assets/user-black.svg +0 -3
- package/bootstrap/services/portal/src/assets/user.svg +0 -3
- package/bootstrap/services/portal/src/assets/users.svg +0 -3
- package/bootstrap/services/portal/src/assets/wallet.svg +0 -3
- package/bootstrap/services/portal/src/data/data.js +0 -70
- package/bootstrap/services/portal/src/features/attributeFormRow/AttributeFormRow.jsx +0 -32
- package/bootstrap/services/portal/src/features/billingShipping/BillingShipping.jsx +0 -160
- package/bootstrap/services/portal/src/features/crud/crudEdit.less +0 -230
- package/bootstrap/services/portal/src/features/crud/crudList.less +0 -134
- package/bootstrap/services/portal/src/features/crud/crudPage.less +0 -31
- package/bootstrap/services/portal/src/features/crudContact/CrudContactList.jsx +0 -108
- package/bootstrap/services/portal/src/features/crudContact/CrudContactSingle.jsx +0 -243
- package/bootstrap/services/portal/src/features/crudOrder/CrudOrderList.jsx +0 -109
- package/bootstrap/services/portal/src/features/crudOrder/CrudOrderSingle.jsx +0 -315
- package/bootstrap/services/portal/src/features/crudProducts/CrudProductList.jsx +0 -104
- package/bootstrap/services/portal/src/features/crudProducts/CrudProductSingle.jsx +0 -388
- package/bootstrap/services/portal/src/features/crudRaffles/CrudRafflesList.jsx +0 -104
- package/bootstrap/services/portal/src/features/crudRaffles/CrudRafflesSingle.jsx +0 -208
- package/bootstrap/services/portal/src/features/crudSubscription/CrudSubscriptionList.jsx +0 -110
- package/bootstrap/services/portal/src/features/crudSubscription/CrudSubscriptionSingle.jsx +0 -261
- package/bootstrap/services/portal/src/features/crudUser/CrudUserList.jsx +0 -107
- package/bootstrap/services/portal/src/features/crudUser/CrudUserSingle.jsx +0 -402
- package/bootstrap/services/portal/src/features/inventoryFormRow/InventoryFormRow.jsx +0 -30
- package/bootstrap/services/portal/src/features/lineItems/LineItems.jsx +0 -113
- package/bootstrap/services/portal/src/features/loginForm/LoginForm.jsx +0 -56
- package/bootstrap/services/portal/src/features/loginForm/loginForm.less +0 -56
- package/bootstrap/services/portal/src/features/notes/Notes.jsx +0 -18
- package/bootstrap/services/portal/src/features/passwordReset/PasswordResetForm.jsx +0 -96
- package/bootstrap/services/portal/src/features/passwordReset/PasswordResetRequestForm.jsx +0 -74
- package/bootstrap/services/portal/src/features/priceFormRow/PriceFormRow.jsx +0 -102
- package/bootstrap/services/portal/src/features/priceFormRow/priceFormRow.less +0 -24
- package/bootstrap/services/portal/src/features/raffleEntriesList/RaffleEntriesList.jsx +0 -99
- package/bootstrap/services/portal/src/features/raffleProductFormRow/RaffleProductFormRow.jsx +0 -46
- package/bootstrap/services/portal/src/features/sidebar/Sidebar.jsx +0 -64
- package/bootstrap/services/portal/src/features/sidebar/sidebar.less +0 -49
- package/bootstrap/services/portal/src/features/skus/Skus.jsx +0 -109
- package/bootstrap/services/portal/src/features/subscriptionSchedule/SubscriptionSchedule.jsx +0 -44
- package/bootstrap/services/portal/src/features/taxonomyFormRow/TaxonomyFormRow.jsx +0 -32
- package/bootstrap/services/portal/src/features/user/User.jsx +0 -54
- package/bootstrap/services/portal/src/features/user/user.less +0 -57
- package/bootstrap/services/portal/src/includes/utilities.js +0 -259
- package/bootstrap/services/portal/src/index.js +0 -14
- package/bootstrap/services/portal/src/layouts/CrudLayout.jsx +0 -50
- package/bootstrap/services/portal/src/layouts/LoginLayout.jsx +0 -17
- package/bootstrap/services/portal/src/layouts/PortalLayout.jsx +0 -48
- package/bootstrap/services/portal/src/layouts/loginLayout.less +0 -33
- package/bootstrap/services/portal/src/layouts/portalLayout.less +0 -67
- package/bootstrap/services/portal/src/pages/contacts/Contacts.jsx +0 -199
- package/bootstrap/services/portal/src/pages/dashboard/Dashboard.jsx +0 -17
- package/bootstrap/services/portal/src/pages/integrations/Integrations.jsx +0 -10
- package/bootstrap/services/portal/src/pages/login/Login.jsx +0 -15
- package/bootstrap/services/portal/src/pages/login/login.less +0 -10
- package/bootstrap/services/portal/src/pages/orders/Orders.jsx +0 -199
- package/bootstrap/services/portal/src/pages/passwordReset/PasswordResetPage.jsx +0 -15
- package/bootstrap/services/portal/src/pages/passwordResetRequest/PasswordResetRequestPage.jsx +0 -15
- package/bootstrap/services/portal/src/pages/payments/Payments.jsx +0 -10
- package/bootstrap/services/portal/src/pages/portal/Portal.jsx +0 -43
- package/bootstrap/services/portal/src/pages/products/Products.jsx +0 -212
- package/bootstrap/services/portal/src/pages/raffleEntries/RaffleEntries.jsx +0 -124
- package/bootstrap/services/portal/src/pages/raffles/Raffles.jsx +0 -186
- package/bootstrap/services/portal/src/pages/reports/Reports.jsx +0 -10
- package/bootstrap/services/portal/src/pages/settings/Settings.jsx +0 -10
- package/bootstrap/services/portal/src/pages/subscriptions/Subscriptions.jsx +0 -199
- package/bootstrap/services/portal/src/pages/users/Users.jsx +0 -193
- package/bootstrap/services/portal/src/pages/users/users.less +0 -25
- package/bootstrap/services/portal/src/styles/inputs.less +0 -157
- package/bootstrap/services/portal/src/styles/main.less +0 -26
- package/bootstrap/services/portal/src/ui/collapsible/Collapsible.jsx +0 -97
- package/bootstrap/services/portal/src/ui/collapsible/collapsible.less +0 -23
- package/bootstrap/services/portal/src/ui/customCheckbox/CustomCheckbox.jsx +0 -17
- package/bootstrap/services/portal/src/ui/customCheckbox/customCheckbox.less +0 -42
- package/bootstrap/services/portal/src/ui/customMultiSelect/CustomMultiSelect.jsx +0 -63
- package/bootstrap/services/portal/src/ui/customMultiSelect/CustomMultiSelectPeriod.jsx +0 -63
- package/bootstrap/services/portal/src/ui/goBack/GoBack.jsx +0 -19
- package/bootstrap/services/portal/src/ui/loader/Loader.jsx +0 -12
- package/bootstrap/services/portal/src/ui/pagination/Pagination.jsx +0 -23
- package/bootstrap/services/portal/src/ui/repeater/Repeater.jsx +0 -29
- package/bootstrap/services/portal/src/ui/saveButton/SaveButton.jsx +0 -69
- package/bootstrap/services/user/src/db/seeders/development/02-portal-admin-user.js +0 -27
- package/bootstrap/services/user/src/tests/user.test.js +0 -126
- package/templates/service/app.js.hbs +0 -38
- package/templates/service/schema/{{serviceName}}.schema.js.hbs +0 -14
- /package/bootstrap/services/portal/src/{ui/saveButton/saveButton.less → components/CustomSelect/CustomSelect.less} +0 -0
- /package/templates/service/{controllers → src/controllers}/http.controller.js.hbs +0 -0
- /package/templates/service/{controllers → src/controllers}/message.controller.js.hbs +0 -0
- /package/templates/service/{db → src/mysql.db}/migrations/01-init.js.hbs +0 -0
- /package/templates/service/{db → src/mysql.db}/migrations/02-{{lowerCase serviceName}}-service-init.js.hbs +0 -0
- /package/templates/service/{policies → src/policies}/{{serviceName}}.policy.js.hbs +0 -0
- /package/templates/service/{services/{{serviceName}}.service.js.hbs → src/services/mysql.{{serviceName}}.service.js.hbs} +0 -0
|
@@ -1,259 +0,0 @@
|
|
|
1
|
-
import { db, logger, utils } from '@gnar-engine/core';
|
|
2
|
-
import { config } from '../config.js';
|
|
3
|
-
import { chatGptAgent } from '../services/chatgpt.service.js';
|
|
4
|
-
|
|
5
|
-
export const Agent = {
|
|
6
|
-
|
|
7
|
-
client: {},
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Initialise LLM agent
|
|
11
|
-
*
|
|
12
|
-
* @returns {string} response
|
|
13
|
-
*/
|
|
14
|
-
init: async function () {
|
|
15
|
-
switch (config.agent) {
|
|
16
|
-
case 'chatgpt':
|
|
17
|
-
this.client = await chatGptAgent.init()
|
|
18
|
-
break;
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Plan prompt preparation
|
|
24
|
-
*
|
|
25
|
-
* @param {*} inputText
|
|
26
|
-
* @returns {string} preparedPlanInput
|
|
27
|
-
*/
|
|
28
|
-
prepareGatherFactsPrompt: function ({inputText, manifests}) {
|
|
29
|
-
const commandLists = [];
|
|
30
|
-
const schemaLists = [];
|
|
31
|
-
|
|
32
|
-
manifests.manifests.forEach((manifest) => {
|
|
33
|
-
if (manifest.manifest.commandList?.[0] && manifest.manifest.commandList[0].includes('agentService')) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
commandLists.push(manifest.manifest.commandList);
|
|
38
|
-
schemaLists.push(manifest.manifest.schemas);
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
const preparedPlanInput = JSON.stringify({
|
|
42
|
-
clientPrompt: inputText,
|
|
43
|
-
systemInstructions: "Respond to the clientPrompt in the format of the responseStructure JSON. Your sole aim is to confirm (using the commandsRequired response property) which commands described in the manifest you will need more information on (command signature), in order to be able to invoke the commands to fulfill the request provided in the clientPrompt. Simillarly, please ensure that you request all required information as per the schema manifest from the user in the responseText. If there aren't suitable commands, explain that you can't with no further options. If it is not yet clear, please request clarification. The responseText will be shown to the customer so ensure that responses are non-technical and don't go into detail about the rest of the response.",
|
|
44
|
-
responseStructure: {
|
|
45
|
-
responseText: "Customer facing message reply here",
|
|
46
|
-
commandsRequired: [
|
|
47
|
-
'e.g. userService.create',
|
|
48
|
-
'userService.update'
|
|
49
|
-
]
|
|
50
|
-
},
|
|
51
|
-
commandManifest: commandLists,
|
|
52
|
-
schemaManifest: schemaLists
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
logger.info(preparedPlanInput);
|
|
56
|
-
|
|
57
|
-
return preparedPlanInput;
|
|
58
|
-
},
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Plan prompt preparation
|
|
62
|
-
*
|
|
63
|
-
* @param {*} inputText
|
|
64
|
-
* @returns {string} preparedPlanInput
|
|
65
|
-
*/
|
|
66
|
-
preparePlanPrompt: function ({inputText, manifests}) {
|
|
67
|
-
const commandLists = [];
|
|
68
|
-
const schemaLists = [];
|
|
69
|
-
|
|
70
|
-
manifests.manifests.forEach((manifest) => {
|
|
71
|
-
if (manifest.manifest.commandList?.[0] && manifest.manifest.commandList[0].includes('agentService')) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
commandLists.push(manifest.manifest.commandList);
|
|
76
|
-
schemaLists.push(manifest.manifest.schema);
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
const preparedPlanInput = JSON.stringify({
|
|
80
|
-
clientPrompt: inputText,
|
|
81
|
-
systemInstructions: "Respond to the clientPrompt in the format of the responseStructure JSON. Your sole aim is to confirm using the commandsRequired response property, which commands described in the manifest you will need more information, in order to be able to invoke the commands to fulfill the request provided in the clientPrompt. If there aren't suitable commands, explain that you can't with no further options. If it is not yet clear, please request clarification. The responseText will be shown to the customer so ensure that responses are non-technical and don't go into detail about the rest of the response.",
|
|
82
|
-
responseStructure: {
|
|
83
|
-
responseText: "Customer facing message reply here",
|
|
84
|
-
actionPlan: [
|
|
85
|
-
{
|
|
86
|
-
planDesc: "Fetch the user ID using the email address provided",
|
|
87
|
-
commandName: "userService.getSingle"
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
planDesc: "update the users first name as requested",
|
|
91
|
-
commandName: "userService.update"
|
|
92
|
-
}
|
|
93
|
-
],
|
|
94
|
-
commandsRequired: [
|
|
95
|
-
'e.g. userService.create',
|
|
96
|
-
'userService.update'
|
|
97
|
-
]
|
|
98
|
-
},
|
|
99
|
-
commandManifest: commandLists,
|
|
100
|
-
schemaManifest: schemaLists
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
logger.info(preparedPlanInput);
|
|
104
|
-
|
|
105
|
-
return preparedPlanInput;
|
|
106
|
-
},
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* Action plan step prompt preparation
|
|
111
|
-
*
|
|
112
|
-
* @param {*} inputText
|
|
113
|
-
* @returns {string} preparedActionPlanStepPrompt
|
|
114
|
-
*/
|
|
115
|
-
preparedActionPlanStepPrompt: function ({actionPlanStepDesc, manifest}) {
|
|
116
|
-
|
|
117
|
-
},
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Prompt augmentation for the agent
|
|
121
|
-
*
|
|
122
|
-
* @param {*} inputText
|
|
123
|
-
* @returns {string} preparedInput
|
|
124
|
-
*/
|
|
125
|
-
preparePrompt: function ({inputText}) {
|
|
126
|
-
const preparedInput = JSON.stringify({
|
|
127
|
-
clientPrompt: inputText,
|
|
128
|
-
systemInstructions: "Respond to the clientPrompt in the the format of the responseStructure JSON. If there is an appropriate flow of actions to take based on the actions described in the registeredServices you should respond with a command otherwise don't. You should always include a customer facing message requesting clarifications or the action taken.",
|
|
129
|
-
responseStructure: {
|
|
130
|
-
responseText: "Your message here",
|
|
131
|
-
action: {
|
|
132
|
-
commandName: "e.g. userService.update",
|
|
133
|
-
payload: {
|
|
134
|
-
userId: "12345",
|
|
135
|
-
data: {}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
},
|
|
139
|
-
registeredServices: [
|
|
140
|
-
{
|
|
141
|
-
serviceName: "userService",
|
|
142
|
-
actions: [
|
|
143
|
-
{
|
|
144
|
-
name: "update",
|
|
145
|
-
description: "Update user information",
|
|
146
|
-
parameters: {
|
|
147
|
-
userId: "string",
|
|
148
|
-
data: "object"
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
]
|
|
152
|
-
}
|
|
153
|
-
]
|
|
154
|
-
})
|
|
155
|
-
|
|
156
|
-
return preparedInput;
|
|
157
|
-
},
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* Create a new chat session
|
|
161
|
-
*
|
|
162
|
-
* @param {string} userId
|
|
163
|
-
* @param {string} title
|
|
164
|
-
* @param {string} sessionKey
|
|
165
|
-
* @returns {string} chatId
|
|
166
|
-
*/
|
|
167
|
-
createChat: async function ({userId, title, sessionKey}) {
|
|
168
|
-
const chatId = utils.uuid();
|
|
169
|
-
|
|
170
|
-
await db.query(
|
|
171
|
-
'INSERT INTO agent_chats (id, user_id, title) VALUES (?, ?, ?)',
|
|
172
|
-
[chatId, userId, title]
|
|
173
|
-
);
|
|
174
|
-
|
|
175
|
-
return chatId;
|
|
176
|
-
},
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Get a chat (with all messages)
|
|
180
|
-
*
|
|
181
|
-
* @param {string} chatId
|
|
182
|
-
* @returns {object} chat
|
|
183
|
-
*/
|
|
184
|
-
getChat: async function ({chatId}) {
|
|
185
|
-
try {
|
|
186
|
-
// Fetch the chat
|
|
187
|
-
const chatResult = await db.query(
|
|
188
|
-
'SELECT * FROM agent_chats WHERE id = ?',
|
|
189
|
-
[chatId]
|
|
190
|
-
);
|
|
191
|
-
|
|
192
|
-
if (!chatResult || chatResult.length === 0) {
|
|
193
|
-
throw new Error(`Chat with ID ${chatId} not found`);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
const chat = chatResult[0][0];
|
|
197
|
-
|
|
198
|
-
// Fetch messages for the chat
|
|
199
|
-
const chatMessageResult = await db.query(
|
|
200
|
-
'SELECT id, chat_id, user_name, context, created_at FROM agent_chat_messages WHERE chat_id = ? ORDER BY created_at ASC',
|
|
201
|
-
[chatId]
|
|
202
|
-
);
|
|
203
|
-
|
|
204
|
-
if (!chatMessageResult || chatMessageResult.length === 0) {
|
|
205
|
-
throw new Error('No chat messages found');
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
chat.messages = chatMessageResult[0];
|
|
209
|
-
|
|
210
|
-
return chat;
|
|
211
|
-
} catch (err) {
|
|
212
|
-
logger.error(`Error fetching chat ${chatId}: ${err.message}`);
|
|
213
|
-
throw err;
|
|
214
|
-
}
|
|
215
|
-
},
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* Create a new chat message
|
|
219
|
-
*
|
|
220
|
-
* @param {string} chatId
|
|
221
|
-
* @param {string} userName
|
|
222
|
-
* @param {object} context
|
|
223
|
-
*/
|
|
224
|
-
createChatMessage: async function ({chatId, userName, context}) {
|
|
225
|
-
try {
|
|
226
|
-
const messageId = utils.uuid();
|
|
227
|
-
context = JSON.stringify(context);
|
|
228
|
-
|
|
229
|
-
logger.info('storing context: ' + context);
|
|
230
|
-
|
|
231
|
-
await db.query(
|
|
232
|
-
'INSERT INTO agent_chat_messages (id, chat_id, user_name, context) VALUES (?, ?, ?, ?)',
|
|
233
|
-
[messageId, chatId, userName, context]
|
|
234
|
-
);
|
|
235
|
-
} catch (err) {
|
|
236
|
-
logger.error('Error creating chat message: ' + err.message);
|
|
237
|
-
}
|
|
238
|
-
},
|
|
239
|
-
|
|
240
|
-
/**
|
|
241
|
-
* Infer LLM agent
|
|
242
|
-
*
|
|
243
|
-
* @param {string} preparedInput
|
|
244
|
-
* @returns {string} response
|
|
245
|
-
*/
|
|
246
|
-
infer: async function ({preparedInput}) {
|
|
247
|
-
|
|
248
|
-
let response;
|
|
249
|
-
|
|
250
|
-
switch (config.agent) {
|
|
251
|
-
case 'chatgpt':
|
|
252
|
-
response = await chatGptAgent.getResponse(preparedInput)
|
|
253
|
-
break;
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
return response;
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
};
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import OpenAI from "openai";
|
|
2
|
-
import { logger } from "@gnar-engine/core";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export const chatGptAgent = {
|
|
6
|
-
|
|
7
|
-
client: null,
|
|
8
|
-
|
|
9
|
-
init: function () {
|
|
10
|
-
if (this.client) {
|
|
11
|
-
return this.client;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
return this.client = new OpenAI({
|
|
15
|
-
apiKey: process.env.OPENAI_API_KEY,
|
|
16
|
-
baseURL: process.env.OPENAI_API_BASE_URL || 'https://api.openai.com/v1',
|
|
17
|
-
});
|
|
18
|
-
},
|
|
19
|
-
|
|
20
|
-
getResponse: async function (preparedInput) {
|
|
21
|
-
try {
|
|
22
|
-
logger.info('LLM request sending...');
|
|
23
|
-
const response = await this.client.chat.completions.create({
|
|
24
|
-
model: "gpt-5-mini",
|
|
25
|
-
messages: [
|
|
26
|
-
{
|
|
27
|
-
role: "user",
|
|
28
|
-
content: [
|
|
29
|
-
{
|
|
30
|
-
type: "text",
|
|
31
|
-
text: preparedInput
|
|
32
|
-
}
|
|
33
|
-
],
|
|
34
|
-
},
|
|
35
|
-
],
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
logger.info('LLM response returned');
|
|
39
|
-
|
|
40
|
-
return response.choices[0].message.content;
|
|
41
|
-
} catch (error) {
|
|
42
|
-
logger.error("ChatGPT agent error:" + error);
|
|
43
|
-
throw error;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { commands, logger } from '@gnar-engine/core';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export const manifestService = {
|
|
5
|
-
|
|
6
|
-
commandList: {},
|
|
7
|
-
schemaList: {},
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Generate service manifests
|
|
11
|
-
*/
|
|
12
|
-
generateServiceManifests: async () => {
|
|
13
|
-
logger.info('Generating command manifest...');
|
|
14
|
-
|
|
15
|
-
// Get services from control service
|
|
16
|
-
const manifests = await commands.execute('controlService.getManifests');
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# Step 1: Build the application
|
|
2
|
-
FROM node:20-alpine AS build
|
|
3
|
-
|
|
4
|
-
# Set working directory
|
|
5
|
-
WORKDIR /usr/gnar_engine/app
|
|
6
|
-
|
|
7
|
-
# Copy package.json and package-lock.json
|
|
8
|
-
COPY ./services/portal/package*.json ./
|
|
9
|
-
|
|
10
|
-
# Copy local Lib packages
|
|
11
|
-
COPY ./Lib ./Lib
|
|
12
|
-
|
|
13
|
-
# Copy the rest of the application code
|
|
14
|
-
COPY ./services/portal/src ./src
|
|
15
|
-
COPY ./services/portal/public ./public
|
|
16
|
-
|
|
17
|
-
# Copy front-end environment variables
|
|
18
|
-
ARG ENV_ENV=production
|
|
19
|
-
COPY .env.public.${ENV_ENV} ./.env
|
|
20
|
-
|
|
21
|
-
# Install app dependencies
|
|
22
|
-
RUN npm install
|
|
23
|
-
|
|
24
|
-
# Build the React application
|
|
25
|
-
RUN npm run build
|
|
26
|
-
|
|
27
|
-
# Step 2: Serve the application with Nginx
|
|
28
|
-
FROM nginx:alpine
|
|
29
|
-
|
|
30
|
-
# Copy custom Nginx config
|
|
31
|
-
COPY ./services/portal/nginx.conf /etc/nginx/conf.d/default.conf
|
|
32
|
-
|
|
33
|
-
# Copy the built assets from the build step
|
|
34
|
-
COPY --from=build /usr/gnar_engine/app/build /usr/share/nginx/html
|
|
35
|
-
|
|
36
|
-
# Expose the port for the web server
|
|
37
|
-
EXPOSE 3000
|
|
38
|
-
|
|
39
|
-
# Start the Nginx server to serve the app
|
|
40
|
-
CMD ["nginx", "-g", "daemon off;"]
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8" />
|
|
5
|
-
<link rel="icon" href="#" />
|
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
|
-
<meta name="theme-color" content="#000000" />
|
|
8
|
-
<title>GNAR Engine</title>
|
|
9
|
-
<meta
|
|
10
|
-
name="description"
|
|
11
|
-
content="Gnar Engine."
|
|
12
|
-
/>
|
|
13
|
-
<link rel="apple-touch-icon" href="#" />
|
|
14
|
-
<!--
|
|
15
|
-
manifest.json provides metadata used when your web app is installed on a
|
|
16
|
-
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
|
|
17
|
-
-->
|
|
18
|
-
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
|
|
19
|
-
<!--
|
|
20
|
-
Notice the use of %PUBLIC_URL% in the tags above.
|
|
21
|
-
It will be replaced with the URL of the `public` folder during the build.
|
|
22
|
-
Only files inside the `public` folder can be referenced from the HTML.
|
|
23
|
-
|
|
24
|
-
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
|
|
25
|
-
work correctly both with client-side routing and a non-root public URL.
|
|
26
|
-
Learn how to configure a non-root public URL by running `npm run build`.
|
|
27
|
-
-->
|
|
28
|
-
</head>
|
|
29
|
-
<body>
|
|
30
|
-
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
31
|
-
<div id="root"></div>
|
|
32
|
-
<!--
|
|
33
|
-
This HTML file is a template.
|
|
34
|
-
If you open it directly in the browser, you will see an empty page.
|
|
35
|
-
|
|
36
|
-
You can add webfonts, meta tags, or analytics to this file.
|
|
37
|
-
The build step will place the bundled scripts into the <body> tag.
|
|
38
|
-
|
|
39
|
-
To begin the development, run `npm start` or `yarn start`.
|
|
40
|
-
To create a production bundle, use `npm run build` or `yarn build`.
|
|
41
|
-
-->
|
|
42
|
-
</body>
|
|
43
|
-
</html>
|
|
Binary file
|
|
Binary file
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"short_name": "React App",
|
|
3
|
-
"name": "Create React App Sample",
|
|
4
|
-
"icons": [
|
|
5
|
-
{
|
|
6
|
-
"src": "favicon.ico",
|
|
7
|
-
"sizes": "64x64 32x32 24x24 16x16",
|
|
8
|
-
"type": "image/x-icon"
|
|
9
|
-
},
|
|
10
|
-
{
|
|
11
|
-
"src": "logo192.png",
|
|
12
|
-
"type": "image/png",
|
|
13
|
-
"sizes": "192x192"
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
"src": "logo512.png",
|
|
17
|
-
"type": "image/png",
|
|
18
|
-
"sizes": "512x512"
|
|
19
|
-
}
|
|
20
|
-
],
|
|
21
|
-
"start_url": ".",
|
|
22
|
-
"display": "standalone",
|
|
23
|
-
"theme_color": "#000000",
|
|
24
|
-
"background_color": "#ffffff"
|
|
25
|
-
}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import React, { useEffect} from 'react';
|
|
2
|
-
import { BrowserRouter as Router } from 'react-router-dom';
|
|
3
|
-
import { useDispatch } from 'react-redux';
|
|
4
|
-
import { Routes, Route } from 'react-router-dom';
|
|
5
|
-
import LoginPage from './pages/login/Login';
|
|
6
|
-
import Portal from './pages/portal/Portal';
|
|
7
|
-
import './css/style.css';
|
|
8
|
-
import PasswordResetPage from './pages/passwordReset/PasswordResetPage';
|
|
9
|
-
import PasswordResetRequestPage from './pages/passwordResetRequest/PasswordResetRequestPage';
|
|
10
|
-
import client, { initialiseGnarSdk } from '@gnar-engine/js-client/src/client';
|
|
11
|
-
import { getAuthToken, getAuthUser } from '@gnar-engine/js-client/src/storage';
|
|
12
|
-
// import NotFound from './pages/notFound/NotFound';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
function App() {
|
|
16
|
-
|
|
17
|
-
const dispatch = useDispatch();
|
|
18
|
-
|
|
19
|
-
useEffect(() => {
|
|
20
|
-
|
|
21
|
-
// redirect to login if not logged in
|
|
22
|
-
if (!window.location.pathname.includes('/login')) {
|
|
23
|
-
let AuthToken = getAuthToken();
|
|
24
|
-
let AuthUser = getAuthUser();
|
|
25
|
-
|
|
26
|
-
if (!AuthToken || !AuthUser) {
|
|
27
|
-
window.location.href = '/login';
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
}, []);
|
|
32
|
-
|
|
33
|
-
useEffect(() => {
|
|
34
|
-
initialiseGnarSdk({
|
|
35
|
-
baseApiUrl: client.defaults.baseURL,
|
|
36
|
-
});
|
|
37
|
-
}, []);
|
|
38
|
-
|
|
39
|
-
return (
|
|
40
|
-
<>
|
|
41
|
-
{/* {authLoading ? <Loader /> : */}
|
|
42
|
-
<Router>
|
|
43
|
-
<Routes>
|
|
44
|
-
<Route path="/login/password-reset/:token" element={<PasswordResetPage />} key="password-reset"/>
|
|
45
|
-
<Route path="/login/forgotten-password" element={<PasswordResetRequestPage />} key="forgotten-password"/>
|
|
46
|
-
<Route path="/login" element={<LoginPage />} key="login"/>
|
|
47
|
-
<Route path="/portal/*" element={<Portal />} key="portal"/>
|
|
48
|
-
{/* <Route path="*" element={<NotFound />} /> */}
|
|
49
|
-
</Routes>
|
|
50
|
-
</Router>
|
|
51
|
-
{/* } */}
|
|
52
|
-
</>
|
|
53
|
-
);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
export default App;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?><svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1800 300"><path d="M115.8,56.63L30.58,243.37h51.48l16.6-36.29,91.57-44.53,36.91,80.82h53.26L195.18,56.63h-79.38ZM118.98,162.54l30.55-66.89h10.15l30.55,66.89h-71.24Z"/><polygon points="469.85 175.09 463.51 175.09 371.7 56.63 301.96 56.63 301.96 243.37 352.68 243.37 352.68 124.91 359.02 124.91 450.83 243.37 520.58 243.37 520.58 56.63 469.85 56.63 469.85 175.09"/><path d="M666.92,195.99h-7.61c-36.77,0-55.04-13.66-55.04-40.42v-11.15c0-25.92,18.26-40.42,55.04-40.42h7.61c38.04,0,54.02,12.54,54.27,26.48h54.53c0-51.29-45.4-76.65-108.8-76.65h-7.61c-60.61,0-109.56,27.04-109.56,90.59v11.15c0,62.44,48.95,90.59,109.56,90.59h7.61c63.4,0,109.82-28.15,109.82-77.49h-54.53c0,13.66-17.5,27.32-55.29,27.32Z"/><polygon points="963.66 124.08 859.17 124.08 859.17 56.63 805.91 56.63 805.91 243.37 859.17 243.37 859.17 171.46 963.66 171.46 963.66 243.37 1016.92 243.37 1016.92 56.63 963.66 56.63 963.66 124.08"/><path d="M1172.39,53.84h-12.68c-63.15,0-113.62,32.89-113.62,91.98v8.36c0,59.09,50.47,91.98,113.62,91.98h12.68c61.63,0,111.08-32.89,111.08-91.98v-8.36c0-59.09-49.45-91.98-111.08-91.98ZM1228.95,154.18c0,27.04-22.32,41.81-59.09,41.81h-10.14c-36.77,0-59.09-14.77-59.09-41.81v-8.36c0-27.32,22.32-41.81,59.09-41.81h10.14c36.77,0,59.09,14.49,59.09,41.81v8.36Z"/><path d="M1521.63,122.13v-8.36c0-31.5-21.81-57.14-60.61-57.14h-148.37v186.75h53.26v-63.83h66.19l36.27,63.83h60.61l-39.06-69.12c20.04-8.92,31.7-28.99,31.7-52.12ZM1467.1,119.62c0,10.31-5.83,15.61-20.54,15.61h-80.65v-34.84h80.65c14.71,0,20.54,6.69,20.54,16.17v3.07Z"/><path d="M1670,56.63h-119.45v186.75h119.45c62.39,0,99.42-25.09,99.42-85.01v-15.33c0-61.04-38.8-86.41-99.42-86.41ZM1714.89,158.36c0,24.53-11.16,37.63-44.89,37.63h-66.19v-91.98h66.19c34.24,0,44.89,13.94,44.89,39.02v15.33Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?><svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1800 300"><defs><style>.cls-1{fill:#9f6;}</style></defs><polygon points="195.18 56.63 115.8 56.63 30.58 243.37 82.06 243.37 149.53 95.65 159.67 95.65 227.13 243.37 280.39 243.37 195.18 56.63"/><path d="M371.7,56.63l91.81,118.46h6.34V56.63h50.72v186.75h-69.75l-91.81-118.46h-6.34v118.46h-50.72V56.63h69.75Z"/><path d="M666.92,53.84c63.4,0,108.8,25.36,108.8,76.65h-54.53c-.25-13.94-16.23-26.48-54.27-26.48h-7.61c-36.77,0-55.04,14.49-55.04,40.42v11.15c0,26.76,18.26,40.42,55.04,40.42h7.61c37.79,0,55.29-13.66,55.29-27.32h54.53c0,49.33-46.41,77.49-109.82,77.49h-7.61c-60.61,0-109.56-28.15-109.56-90.59v-11.15c0-63.55,48.95-90.59,109.56-90.59h7.61Z"/><path d="M859.17,56.63v67.45h104.49V56.63h53.26v186.75h-53.26v-71.91h-104.49v71.91h-53.26V56.63h53.26Z"/><path d="M1172.39,53.84c61.63,0,111.08,32.89,111.08,91.98v8.36c0,59.09-49.45,91.98-111.08,91.98h-12.68c-63.15,0-113.62-32.89-113.62-91.98v-8.36c0-59.09,50.47-91.98,113.62-91.98h12.68ZM1100.62,145.82v8.36c0,27.04,22.32,41.81,59.09,41.81h10.14c36.77,0,59.09-14.77,59.09-41.81v-8.36c0-27.32-22.32-41.81-59.09-41.81h-10.14c-36.77,0-59.09,14.49-59.09,41.81Z"/><path d="M1461.02,56.63c38.8,0,60.61,25.64,60.61,57.14v8.36c0,23.13-11.67,43.2-31.7,52.12l39.06,69.12h-60.61l-36.27-63.83h-66.19v63.83h-53.26V56.63h148.37ZM1365.91,135.23h80.65c14.71,0,20.54-5.3,20.54-15.61v-3.07c0-9.48-5.83-16.17-20.54-16.17h-80.65v34.84Z"/><path d="M1670,56.63c60.62,0,99.42,25.36,99.42,86.41v15.33c0,59.93-37.03,85.01-99.42,85.01h-119.45V56.63h119.45ZM1603.81,195.99h66.19c33.73,0,44.89-13.1,44.89-37.63v-15.33c0-25.09-10.65-39.02-44.89-39.02h-66.19v91.98Z"/><polygon class="cls-1" points="118.97 162.54 98.66 207.09 190.26 162.54 118.97 162.54"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?><svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1800 300"><defs><style>.cls-1{fill:#fff;}.cls-2{fill:#9f6;}</style></defs><polygon class="cls-1" points="195.18 56.63 115.8 56.63 30.58 243.37 82.06 243.37 149.53 95.65 159.67 95.65 227.13 243.37 280.39 243.37 195.18 56.63"/><path class="cls-1" d="M371.7,56.63l91.81,118.46h6.34V56.63h50.72v186.75h-69.75l-91.81-118.46h-6.34v118.46h-50.72V56.63h69.75Z"/><path class="cls-1" d="M666.92,53.84c63.4,0,108.8,25.36,108.8,76.65h-54.53c-.25-13.94-16.23-26.48-54.27-26.48h-7.61c-36.77,0-55.04,14.49-55.04,40.42v11.15c0,26.76,18.26,40.42,55.04,40.42h7.61c37.79,0,55.29-13.66,55.29-27.32h54.53c0,49.33-46.41,77.49-109.82,77.49h-7.61c-60.61,0-109.56-28.15-109.56-90.59v-11.15c0-63.55,48.95-90.59,109.56-90.59h7.61Z"/><path class="cls-1" d="M859.17,56.63v67.45h104.49V56.63h53.26v186.75h-53.26v-71.91h-104.49v71.91h-53.26V56.63h53.26Z"/><path class="cls-1" d="M1172.39,53.84c61.63,0,111.08,32.89,111.08,91.98v8.36c0,59.09-49.45,91.98-111.08,91.98h-12.68c-63.15,0-113.62-32.89-113.62-91.98v-8.36c0-59.09,50.47-91.98,113.62-91.98h12.68ZM1100.62,145.82v8.36c0,27.04,22.32,41.81,59.09,41.81h10.14c36.77,0,59.09-14.77,59.09-41.81v-8.36c0-27.32-22.32-41.81-59.09-41.81h-10.14c-36.77,0-59.09,14.49-59.09,41.81Z"/><path class="cls-1" d="M1461.02,56.63c38.8,0,60.61,25.64,60.61,57.14v8.36c0,23.13-11.67,43.2-31.7,52.12l39.06,69.12h-60.61l-36.27-63.83h-66.19v63.83h-53.26V56.63h148.37ZM1365.91,135.23h80.65c14.71,0,20.54-5.3,20.54-15.61v-3.07c0-9.48-5.83-16.17-20.54-16.17h-80.65v34.84Z"/><path class="cls-1" d="M1670,56.63c60.62,0,99.42,25.36,99.42,86.41v15.33c0,59.93-37.03,85.01-99.42,85.01h-119.45V56.63h119.45ZM1603.81,195.99h66.19c33.73,0,44.89-13.1,44.89-37.63v-15.33c0-25.09-10.65-39.02-44.89-39.02h-66.19v91.98Z"/><polygon class="cls-2" points="118.97 162.54 98.66 207.09 190.26 162.54 118.97 162.54"/></svg>
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<path d="M16 6V5.2C16 4.0799 16 3.51984 15.782 3.09202C15.5903 2.71569 15.2843 2.40973 14.908 2.21799C14.4802 2 13.9201 2 12.8 2H11.2C10.0799 2 9.51984 2 9.09202 2.21799C8.71569 2.40973 8.40973 2.71569 8.21799 3.09202C8 3.51984 8 4.0799 8 5.2V6M10 11.5V16.5M14 11.5V16.5M3 6H21M19 6V17.2C19 18.8802 19 19.7202 18.673 20.362C18.3854 20.9265 17.9265 21.3854 17.362 21.673C16.7202 22 15.8802 22 14.2 22H9.8C8.11984 22 7.27976 22 6.63803 21.673C6.07354 21.3854 5.6146 20.9265 5.32698 20.362C5 19.7202 5 18.8802 5 17.2V6" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3
|
-
</svg>
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<path d="M16 6V5.2C16 4.0799 16 3.51984 15.782 3.09202C15.5903 2.71569 15.2843 2.40973 14.908 2.21799C14.4802 2 13.9201 2 12.8 2H11.2C10.0799 2 9.51984 2 9.09202 2.21799C8.71569 2.40973 8.40973 2.71569 8.21799 3.09202C8 3.51984 8 4.0799 8 5.2V6M10 11.5V16.5M14 11.5V16.5M3 6H21M19 6V17.2C19 18.8802 19 19.7202 18.673 20.362C18.3854 20.9265 17.9265 21.3854 17.362 21.673C16.7202 22 15.8802 22 14.2 22H9.8C8.11984 22 7.27976 22 6.63803 21.673C6.07354 21.3854 5.6146 20.9265 5.32698 20.362C5 19.7202 5 18.8802 5 17.2V6" stroke="#3C5063" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3
|
-
</svg>
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<svg width="40" height="41" viewBox="0 0 40 41" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<path d="M33.3334 35.875C33.3334 33.4909 33.3334 32.2989 33.0463 31.3289C32.4 29.1449 30.7327 27.4359 28.602 26.7734C27.6557 26.4792 26.4927 26.4792 24.1667 26.4792H15.8334C13.5075 26.4792 12.3445 26.4792 11.3982 26.7734C9.26751 27.4359 7.60015 29.1449 6.95381 31.3289C6.66675 32.2989 6.66675 33.4909 6.66675 35.875M27.5001 12.8125C27.5001 17.0582 24.1422 20.5 20.0001 20.5C15.8579 20.5 12.5001 17.0582 12.5001 12.8125C12.5001 8.56681 15.8579 5.125 20.0001 5.125C24.1422 5.125 27.5001 8.56681 27.5001 12.8125Z" stroke="#479E78" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3
|
-
</svg>
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<path d="M12 13C12.5523 13 13 12.5523 13 12C13 11.4477 12.5523 11 12 11C11.4477 11 11 11.4477 11 12C11 12.5523 11.4477 13 12 13Z" stroke="#3C5063" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3
|
-
<path d="M12 6C12.5523 6 13 5.55228 13 5C13 4.44772 12.5523 4 12 4C11.4477 4 11 4.44772 11 5C11 5.55228 11.4477 6 12 6Z" stroke="#3C5063" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
4
|
-
<path d="M12 20C12.5523 20 13 19.5523 13 19C13 18.4477 12.5523 18 12 18C11.4477 18 11 18.4477 11 19C11 19.5523 11.4477 20 12 20Z" stroke="#3C5063" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
5
|
-
</svg>
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<path d="M10.7429 5.09232C11.1494 5.03223 11.5686 5 12.0004 5C17.1054 5 20.4553 9.50484 21.5807 11.2868C21.7169 11.5025 21.785 11.6103 21.8231 11.7767C21.8518 11.9016 21.8517 12.0987 21.8231 12.2236C21.7849 12.3899 21.7164 12.4985 21.5792 12.7156C21.2793 13.1901 20.8222 13.8571 20.2165 14.5805M6.72432 6.71504C4.56225 8.1817 3.09445 10.2194 2.42111 11.2853C2.28428 11.5019 2.21587 11.6102 2.17774 11.7765C2.1491 11.9014 2.14909 12.0984 2.17771 12.2234C2.21583 12.3897 2.28393 12.4975 2.42013 12.7132C3.54554 14.4952 6.89541 19 12.0004 19C14.0588 19 15.8319 18.2676 17.2888 17.2766M3.00042 3L21.0004 21M9.8791 9.87868C9.3362 10.4216 9.00042 11.1716 9.00042 12C9.00042 13.6569 10.3436 15 12.0004 15C12.8288 15 13.5788 14.6642 14.1217 14.1213" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3
|
-
</svg>
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<path d="M2.42012 12.7132C2.28394 12.4975 2.21584 12.3897 2.17772 12.2234C2.14909 12.0985 2.14909 11.9015 2.17772 11.7766C2.21584 11.6103 2.28394 11.5025 2.42012 11.2868C3.54553 9.50484 6.8954 5 12.0004 5C17.1054 5 20.4553 9.50484 21.5807 11.2868C21.7169 11.5025 21.785 11.6103 21.8231 11.7766C21.8517 11.9015 21.8517 12.0985 21.8231 12.2234C21.785 12.3897 21.7169 12.4975 21.5807 12.7132C20.4553 14.4952 17.1054 19 12.0004 19C6.8954 19 3.54553 14.4952 2.42012 12.7132Z" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3
|
-
<path d="M12.0004 15C13.6573 15 15.0004 13.6569 15.0004 12C15.0004 10.3431 13.6573 9 12.0004 9C10.3435 9 9.0004 10.3431 9.0004 12C9.0004 13.6569 10.3435 15 12.0004 15Z" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
4
|
-
</svg>
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
2
|
-
width="1000px" height="180.9px" viewBox="0 0 1000 180.9" enable-background="new 0 0 1000 180.9" xml:space="preserve">
|
|
3
|
-
<g>
|
|
4
|
-
<path fill="#1E1E1E" d="M119.113,107.248c0,6.838,0,15.334-0.207,21.344c-1.244,35.434-24.866,51.803-60.922,51.803
|
|
5
|
-
c-32.533,0-51.597-13.469-54.083-38.128l-0.207-2.072H35.19l0.207,1.865c1.036,8.91,9.946,14.298,23.415,14.298
|
|
6
|
-
c15.956,0,26.524-7.668,27.353-24.037c0.207-3.937,0.415-8.703,0.415-13.883v-2.901l-8.289,12.226
|
|
7
|
-
c-6.217,4.559-15.541,7.253-26.731,7.253C20.893,135.016,1,113.673,1,80.932c0-39.579,24.244-59.057,52.633-59.057
|
|
8
|
-
c9.118,0,20.1,2.279,25.695,5.802l7.253,11.605V24.776h32.533V107.248z M86.58,78.238v-2.072c0-23.623-13.055-31.912-25.281-31.912
|
|
9
|
-
c-15.749,0-26.938,10.154-26.938,34.191c0,21.757,10.568,34.19,25.902,34.19C74.976,112.636,86.58,103.519,86.58,78.238z"/>
|
|
10
|
-
<path fill="#1E1E1E" d="M247.169,72.851v62.372h-32.533V77.823c0-4.144,0-9.738-0.415-15.333
|
|
11
|
-
c-0.829-11.19-7.045-18.235-19.685-18.235c-12.848,0-22.38,11.604-22.38,39.786v51.183h-32.533V24.776h32.533v17.407l9.118-13.262
|
|
12
|
-
c7.46-4.974,15.334-7.046,25.695-7.046c23.208,0,36.677,11.19,39.164,30.461C246.962,57.931,247.169,63.94,247.169,72.851z"/>
|
|
13
|
-
<path fill="#1E1E1E" d="M328.395,119.06l-4.973,11.811c-7.875,4.974-17.199,7.253-27.353,7.253
|
|
14
|
-
c-18.65,0-35.434-11.397-35.434-32.326c0-24.037,21.343-38.128,60.3-38.128h7.046v-1.865c0-2.901,0-5.802-0.415-9.532
|
|
15
|
-
c-0.622-6.63-5.595-12.019-15.334-12.019c-10.154,0-15.749,6.217-16.578,17.199h-31.082c0.622-25.281,21.965-39.579,48.903-39.579
|
|
16
|
-
c32.74,0,44.552,14.298,46.21,33.984c0.414,5.18,0.622,11.397,0.622,17.821v33.569c0,8.289,0.414,15.749,2.072,27.975h-31.704
|
|
17
|
-
L328.395,119.06z M327.981,95.023v-8.081c-20.1-1.658-33.984,3.316-33.984,16.163c0,8.289,6.009,12.64,14.919,12.64
|
|
18
|
-
C318.655,115.744,327.981,108.699,327.981,95.023z"/>
|
|
19
|
-
<path fill="#1E1E1E" d="M450.028,22.704v26.317c-25.695-1.658-36.677,8.703-36.677,39.992v46.209h-32.533V24.776h32.533v21.136
|
|
20
|
-
l8.289-15.333c5.595-5.803,13.676-8.704,20.1-8.704C445.262,21.875,447.542,22.29,450.028,22.704z"/>
|
|
21
|
-
<path fill="#1E1E1E" d="M547.21,81.761H457.9c0.829,37.714,22.38,52.011,42.479,52.011c17.199,0,34.398-9.738,40.822-31.911h4.559
|
|
22
|
-
c-6.631,24.037-25.074,36.263-45.795,36.263c-25.281,0-46.831-19.685-46.831-57.813c0-34.398,21.55-56.985,48.488-56.985
|
|
23
|
-
c31.29,0,45.795,27.352,45.795,54.497C547.418,78.653,547.418,79.481,547.21,81.761z M457.9,77.41h84.959
|
|
24
|
-
c-0.829-37.714-23.001-49.733-41.65-49.733C481.937,27.677,458.729,43.218,457.9,77.41z"/>
|
|
25
|
-
<path fill="#1E1E1E" d="M646.879,74.716v60.507h-4.559V76.58c0-7.667-0.208-12.432-0.829-18.028
|
|
26
|
-
c-2.072-18.442-12.226-30.876-32.947-30.876c-19.892,0-38.542,13.884-38.542,42.894v64.651h-4.558V26.227h4.558v24.866
|
|
27
|
-
l4.352-10.776c8.081-11.396,20.722-16.991,34.19-16.991c21.965,0,35.227,12.226,37.506,33.569
|
|
28
|
-
C646.671,62.49,646.879,65.806,646.879,74.716z"/>
|
|
29
|
-
<path fill="#1E1E1E" d="M754.422,106.213c0,17.199,0,25.694-0.207,32.739c-0.829,24.659-16.992,41.858-44.759,41.858
|
|
30
|
-
c-20.1,0-38.335-8.081-41.65-32.74l-0.415-3.108h4.559l0.415,3.108c2.693,20.93,19.478,28.389,37.506,28.389
|
|
31
|
-
c25.694,0,39.164-16.164,39.786-38.957c0.207-7.253,0.207-12.847,0.207-23.001v-4.144l-5.802,12.432
|
|
32
|
-
c-9.739,11.605-19.479,15.334-34.398,15.334c-28.388,0-47.038-23.416-47.038-56.57c0-38.542,23.208-58.228,49.525-58.228
|
|
33
|
-
c13.883,0,22.793,4.144,31.704,14.09l6.009,13.677V25.399h4.559V106.213z M749.863,85.905V73.679
|
|
34
|
-
c0-35.641-20.722-46.002-37.713-46.002c-26.11,0-44.552,21.758-44.552,53.047c0,28.596,14.92,53.047,42.48,53.047
|
|
35
|
-
C731.628,133.772,749.863,121.754,749.863,85.905z"/>
|
|
36
|
-
<path fill="#1E1E1E" d="M786.123,4.054c0,2.279-1.866,4.144-4.145,4.144c-2.278,0-4.144-1.865-4.144-4.144s1.866-4.144,4.144-4.144
|
|
37
|
-
C784.257-0.09,786.123,1.775,786.123,4.054z M779.7,135.223V26.227h4.558v108.996H779.7z"/>
|
|
38
|
-
<path fill="#1E1E1E" d="M890.971,74.716v60.507h-4.559V76.58c0-7.667-0.208-12.432-0.829-18.028
|
|
39
|
-
c-2.072-18.442-12.226-30.876-32.947-30.876c-19.892,0-38.542,13.884-38.542,42.894v64.651h-4.558V26.227h4.558v24.866
|
|
40
|
-
l4.352-10.776c8.081-11.396,20.722-16.991,34.19-16.991c21.965,0,35.227,12.226,37.506,33.569
|
|
41
|
-
C890.763,62.49,890.971,65.806,890.971,74.716z"/>
|
|
42
|
-
<path fill="#1E1E1E" d="M1000.793,81.761h-89.31c0.828,37.714,22.38,52.011,42.48,52.011c17.199,0,34.397-9.738,40.822-31.911
|
|
43
|
-
h4.558c-6.63,24.037-25.073,36.263-45.794,36.263c-25.281,0-46.831-19.685-46.831-57.813c0-34.398,21.55-56.985,48.489-56.985
|
|
44
|
-
c31.289,0,45.794,27.352,45.794,54.497C1001,78.653,1001,79.481,1000.793,81.761z M911.483,77.41h84.958
|
|
45
|
-
c-0.828-37.714-23.001-49.733-41.65-49.733C935.52,27.677,912.311,43.218,911.483,77.41z"/>
|
|
46
|
-
</g>
|
|
47
|
-
</svg>
|