Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
117 commits
Select commit Hold shift + click to select a range
5371f40
fix(814): Removed Unnecessary data stored in node
1AhmedYasser Nov 27, 2025
35b494d
chore(814): Fixed Format
1AhmedYasser Nov 27, 2025
9160c5e
Merge pull request #823 from 1AhmedYasser/Bug-Redundant-multiChoiceQu…
ffrose Dec 2, 2025
668335e
801 saving new service configs (#815)
ExiRain Dec 2, 2025
7e3e59f
feat(798): prep and todo
IgorKrupenja Dec 2, 2025
3253ec0
819 move navigation (#821)
ExiRain Dec 3, 2025
a2b98cf
feat(798): prep and todo
IgorKrupenja Dec 3, 2025
c967e0e
feat(798): clean add/edit
IgorKrupenja Dec 3, 2025
c92245a
Special Characters Support (#832)
1AhmedYasser Dec 3, 2025
648e728
Update FlowBuilder.scss (#834)
1AhmedYasser Dec 3, 2025
4304500
fix(733): Fixed Undo/Redo Issues (#835)
1AhmedYasser Dec 3, 2025
546f249
feat(798): wip DC
IgorKrupenja Dec 3, 2025
e4c60c0
feat(798): wfix DC
IgorKrupenja Dec 3, 2025
b042de3
feat(798): wfix DC
IgorKrupenja Dec 3, 2025
8c84d44
feat(798): wip connection
IgorKrupenja Dec 3, 2025
624c048
feat(798): one acc
IgorKrupenja Dec 3, 2025
3a83347
feat(798): delete
IgorKrupenja Dec 3, 2025
a434a3a
feat(798): clean
IgorKrupenja Dec 3, 2025
84da856
feat(798): edit
IgorKrupenja Dec 3, 2025
7564fd3
chore(844): Passed Input as array of strings (#845)
1AhmedYasser Dec 3, 2025
a0dfe86
chore(833): Fixed FitView on auto zoom is off (#843)
1AhmedYasser Dec 4, 2025
72480a4
feat(798): cm
IgorKrupenja Dec 4, 2025
7d81f75
feat(798): cm
IgorKrupenja Dec 4, 2025
a631c05
798: Sync intents to Azure Blob Storage (#836)
IgorKrupenja Dec 4, 2025
6056afb
feat(798): refacto
IgorKrupenja Dec 4, 2025
2c4f35d
feat(798): REVERT LATER
IgorKrupenja Dec 4, 2025
d4de548
feat(829): wip select
IgorKrupenja Dec 4, 2025
46d3c10
feat(829): wip select
IgorKrupenja Dec 4, 2025
fb4eda7
feat(829): wip
IgorKrupenja Dec 4, 2025
5b43907
feat(829): fix prefs
IgorKrupenja Dec 4, 2025
efff74e
feat(829): clean
IgorKrupenja Dec 4, 2025
903f071
feat(829): merge base
IgorKrupenja Dec 4, 2025
7913f77
829: Remove restriction on UPDATE/DELETE statements in SQL (#847)
IgorKrupenja Dec 5, 2025
d713ea1
Fix: Saving Conditional element (#848)
1AhmedYasser Dec 5, 2025
774f615
feat(837): wip fix
IgorKrupenja Dec 5, 2025
aba0803
feat(837): wip fix
IgorKrupenja Dec 5, 2025
64ef1f4
feat(837): fix tests
IgorKrupenja Dec 5, 2025
2d4c6d0
feat(837): merge
IgorKrupenja Dec 5, 2025
16c6a9a
feat(837): fix sonar
IgorKrupenja Dec 5, 2025
4b38b53
Automatically replace spaces in parameter names with underscores (#850)
1AhmedYasser Dec 5, 2025
6e03bcd
Fix: Unsaved Changes modal shown without any edits (#852)
1AhmedYasser Dec 5, 2025
e614ce0
Fix: Mode-switch buttons missing after object manual edit save (#851)
1AhmedYasser Dec 5, 2025
0e87e40
feat(837): fix the bug
IgorKrupenja Dec 5, 2025
b8c889b
feat(837): add tests
IgorKrupenja Dec 5, 2025
102fa79
feat(837): fix lint
IgorKrupenja Dec 5, 2025
11735e1
feat(841): fix bug
IgorKrupenja Dec 8, 2025
62b5924
feat(841): fix sonar
IgorKrupenja Dec 8, 2025
d2e20bc
837: Fix escaping in Date/Time output (#849)
IgorKrupenja Dec 8, 2025
7c10ff5
840: Fix escaping Object editor (#854)
IgorKrupenja Dec 8, 2025
41b04b8
841: Fix entering spaces in Object Editor (#855)
IgorKrupenja Dec 9, 2025
182c5fc
feat(842): fix
IgorKrupenja Dec 9, 2025
bcd3f5f
feat(842): Merge branch 'dev' into 842-sort-focus
IgorKrupenja Dec 9, 2025
5e1e870
chore(853): Added Buttons Support
1AhmedYasser Dec 11, 2025
a4bf9e1
chore(853): Hide Object Toggle Button from dynamic choices
1AhmedYasser Dec 11, 2025
f3c2235
chore(853): Fixed Dynamic Choices Tooltip showing
1AhmedYasser Dec 11, 2025
18045b0
chore(853): Passed Inputs to test service
1AhmedYasser Dec 11, 2025
0fa1030
chore(853): Fixed Tests
1AhmedYasser Dec 11, 2025
42f171b
feat(800): add sample
IgorKrupenja Dec 11, 2025
6fb3e57
feat(800): implement core
IgorKrupenja Dec 11, 2025
cf53840
feat(800): handle no vars
IgorKrupenja Dec 11, 2025
6456566
feat(800): update Readme
IgorKrupenja Dec 11, 2025
0472745
feat(800): clean
IgorKrupenja Dec 11, 2025
6b8e24d
feat(858): docs
IgorKrupenja Dec 12, 2025
0cad2ae
feat(858): simplify, better logs
IgorKrupenja Dec 12, 2025
c9c68c6
feat(858): docs
IgorKrupenja Dec 12, 2025
1205386
Merge pull request #859 from IgorKrupenja/800-indexer-azure
ffrose Dec 12, 2025
d2b275a
Removing intent detection
ExiRain Dec 12, 2025
db6c9b2
chore(861): Added Export Model
1AhmedYasser Dec 15, 2025
ba4d41b
Remvoed intent connection from service module
ExiRain Dec 16, 2025
3976d15
chore(861): Enhanced Export
1AhmedYasser Dec 16, 2025
8410cc8
chore(861): Added Zip Support
1AhmedYasser Dec 16, 2025
e558d56
chore(861): Added Search Functionality
1AhmedYasser Dec 16, 2025
591127a
chore(861): Enhanced Export Services Modal
1AhmedYasser Dec 16, 2025
93297ac
chore(861): Added Name Sort
1AhmedYasser Dec 16, 2025
f85bc25
fix(861): Fixed Format
1AhmedYasser Dec 16, 2025
3b017fe
fix(861): Fixed Lint
1AhmedYasser Dec 16, 2025
82e2fc6
Remvoed intent connection from service module and related configurations
ExiRain Dec 16, 2025
aa4c6da
Remvoed intent connection from service module and related configurations
ExiRain Dec 16, 2025
2708738
Removed automatic services from service menu
ExiRain Dec 16, 2025
fb5b3c0
fix(860): Fixed Explain Endpoint Raw Body Handling
1AhmedYasser Dec 17, 2025
ff44095
chore(861): Addressed PR Comments
1AhmedYasser Dec 17, 2025
fb87a05
chore(861): Removed Duplications
1AhmedYasser Dec 17, 2025
dd38d72
chore(861): Enhanced get-services-list
1AhmedYasser Dec 17, 2025
7784538
chore(861): Modified Format
1AhmedYasser Dec 17, 2025
f410b5b
Updating documentation.
ExiRain Dec 18, 2025
4b7f0da
Updating documentation
ExiRain Dec 19, 2025
9d20ed2
Updating documentation
ExiRain Dec 19, 2025
fe3932c
Updating documentation
ExiRain Dec 19, 2025
446be50
Updating documentation
ExiRain Dec 29, 2025
75bb707
Updated header to not show notification on logout
ExiRain Dec 29, 2025
c951cf6
Updated header to not show notification on logout
ExiRain Dec 30, 2025
3bbd1a8
chore(873): Added Import Button
1AhmedYasser Dec 30, 2025
2ba0d1c
chore(873): Added Missing Translations
1AhmedYasser Jan 1, 2026
e23d147
chore(873): Added handleImportServices function
1AhmedYasser Jan 1, 2026
7387df7
chore(873): Added Import Services Endpoint
1AhmedYasser Jan 2, 2026
3e74392
chore(873): Fixed Passed Structure
1AhmedYasser Jan 3, 2026
a3a8362
chore(873): Added Dsls Adding
1AhmedYasser Jan 3, 2026
c070937
fix(873): Fixed Format
1AhmedYasser Jan 3, 2026
ad44693
fix(873): Fixed Lint
1AhmedYasser Jan 3, 2026
15c3d32
Merge pull request #867 from ExiRain/1658-logout-notification
ffrose Jan 6, 2026
ca81c44
Merge pull request #864 from 1AhmedYasser/Bulk-Export-of-Services
ffrose Jan 6, 2026
19290f1
Merge pull request #865 from 1AhmedYasser/Bug-API-element-does-not-se…
ffrose Jan 6, 2026
3fa687e
Merge pull request #866 from ExiRain/858-Intent-classification
ffrose Jan 6, 2026
d36680c
Merge pull request #862 from 1AhmedYasser/Ability-to-test-Buttons-in-…
ffrose Jan 6, 2026
73e1587
Merge pull request #857 from IgorKrupenja/842-sort-focus
ffrose Jan 6, 2026
0761692
chore(1704): Bumped menu package version
1AhmedYasser Jan 7, 2026
d93972b
chore(1704): Modified env.development
1AhmedYasser Jan 8, 2026
da76eb1
fix(1704): Fixed Package-lock.json
1AhmedYasser Jan 8, 2026
27fdc02
chore(1704): Modified env.development
1AhmedYasser Jan 8, 2026
01c35ad
Merge pull request #879 from 1AhmedYasser/Show-current-version-in-GUI
ffrose Jan 12, 2026
7cfd3c9
chore(873): Synced with dev
1AhmedYasser Jan 14, 2026
d7b8782
chore(856): Synced with dev
1AhmedYasser Jan 15, 2026
99ac96e
chore(856): Fixed Overview
1AhmedYasser Jan 15, 2026
8d43a1c
fix(856): Fixed format
1AhmedYasser Jan 15, 2026
8bdcf3c
chore(873): Enhanced handleServicesImport
1AhmedYasser Jan 15, 2026
7963086
Merge pull request #881 from 1AhmedYasser/Refactor-Service-Module-Ove…
ffrose Jan 16, 2026
9a573aa
Merge pull request #875 from 1AhmedYasser/Import-Bulk-Services
ffrose Jan 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions DSL/DMapper/services/hbs/service_declaration.handlebars
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"id": "{{ name }}",
"name": {{{ snakeToString name }}},
"description": "{{ description }}",
"examples": [{{#each examples}}"{{{this}}}"{{#unless @last}},{{/unless}}{{/each}}],
"entities": [{{#each entities}}"{{{this}}}"{{#unless @last}},{{/unless}}{{/each}}],
"text_for_embedding": "{{description}}\n{{#each examples}}{{this}}{{#unless @last}}\n{{/unless}}{{/each}}"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
-- liquibase formatted sql
-- changeset VassiliM:21111321831
ALTER TABLE services
ADD COLUMN entities text[] NOT NULL DEFAULT '{}',
ADD COLUMN examples text[] NOT NULL DEFAULT '{}';
11 changes: 11 additions & 0 deletions DSL/Resql/services/POST/add-services.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
INSERT INTO services (name, description, service_id, ruuter_type, structure)
SELECT
name,
'',
gen_random_uuid(),
'POST'::ruuter_request_type,
structure
FROM UNNEST(
ARRAY[:names]::text[],
ARRAY[:structures]::json[]
) AS t(name, structure);
4 changes: 2 additions & 2 deletions DSL/Resql/services/POST/add.sql
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
INSERT INTO services (name, description, slot, service_id, ruuter_type, is_common, current_state, structure)
VALUES (:name, :description, :slot, :service_id, :ruuter_type::ruuter_request_type, :is_common, :state::service_state, :structure::json);
INSERT INTO services (name, description, slot, examples, entities, service_id, ruuter_type, is_common, current_state, structure)
VALUES (:name, :description, :slot, ARRAY[:examples]::text[], ARRAY[:entities]::text[], :service_id, :ruuter_type::ruuter_request_type, :is_common, :state::service_state, :structure::json);
32 changes: 3 additions & 29 deletions DSL/Resql/services/POST/delete-service.sql
Original file line number Diff line number Diff line change
@@ -1,29 +1,3 @@
INSERT INTO services (
name,
description,
slot,
created_at,
updated_at,
ruuter_type,
current_state,
service_id,
is_common,
deleted,
structure
)
SELECT
name,
description,
slot,
created_at,
updated_at,
ruuter_type,
current_state,
service_id,
is_common,
TRUE AS deleted,
structure
FROM services
WHERE service_id = :id
ORDER BY id DESC
LIMIT 1;
UPDATE services
SET deleted = TRUE
WHERE service_id = :id;
25 changes: 11 additions & 14 deletions DSL/Resql/services/POST/edit.sql
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
INSERT INTO services (name, description, slot, ruuter_type, current_state, service_id, is_common, structure)
SELECT
:name,
:description,
:slot,
ruuter_type,
:state::service_state,
service_id,
COALESCE(:is_common, false) AS is_common,
:structure::json
FROM services
WHERE service_id = :id
ORDER BY id DESC
LIMIT 1;
UPDATE services
SET
name = :name,
description = :description,
slot = :slot,
examples = ARRAY[:examples]::text[],
entities = ARRAY[:entities]::text[],
current_state = :state::service_state,
is_common = COALESCE(:is_common, false),
structure = :structure::json
WHERE service_id = :id;
28 changes: 3 additions & 25 deletions DSL/Resql/services/POST/endpoints/delete_endpoint.sql
Original file line number Diff line number Diff line change
@@ -1,25 +1,3 @@
INSERT INTO endpoints (
endpoint_id,
service_id,
name,
type,
is_common,
definitions,
deleted,
created_at,
updated_at
)
SELECT
endpoint_id,
service_id,
name,
type,
is_common,
definitions,
TRUE AS deleted,
created_at,
updated_at
FROM endpoints
WHERE endpoint_id = :id::uuid
ORDER BY id DESC
LIMIT 1;
UPDATE endpoints
SET deleted = TRUE
WHERE endpoint_id = :id::uuid;
Original file line number Diff line number Diff line change
@@ -1,31 +1,5 @@
WITH latest_endpoints AS (
SELECT DISTINCT ON (endpoint_id) *
FROM endpoints
WHERE
service_id = :serviceId::uuid
AND is_common = FALSE
AND deleted = FALSE
ORDER BY endpoint_id, id DESC
)
INSERT INTO endpoints (
endpoint_id,
service_id,
name,
type,
is_common,
definitions,
deleted,
created_at,
updated_at
)
SELECT
endpoint_id,
service_id,
name,
type,
is_common,
definitions,
TRUE AS deleted,
created_at,
updated_at
FROM latest_endpoints;
UPDATE endpoints
SET deleted = TRUE
WHERE service_id = :serviceId::uuid
AND is_common = FALSE
AND deleted = FALSE;
11 changes: 3 additions & 8 deletions DSL/Resql/services/POST/endpoints/get_common_endpoints.sql
Original file line number Diff line number Diff line change
@@ -1,15 +1,10 @@
WITH LatestEndpoints AS (
SELECT DISTINCT ON (e.endpoint_id) e.*
FROM endpoints AS e
WHERE e.is_common = true
ORDER BY e.endpoint_id, e.id DESC
)
SELECT
endpoint_id,
name,
type,
is_common,
definitions
FROM LatestEndpoints
WHERE deleted IS FALSE
FROM endpoints
WHERE is_common = true
AND deleted IS FALSE
ORDER BY id DESC;
27 changes: 11 additions & 16 deletions DSL/Resql/services/POST/endpoints/get_endpoints_by_service_id.sql
Original file line number Diff line number Diff line change
@@ -1,31 +1,26 @@
WITH LatestEndpoints AS (
SELECT DISTINCT ON (e.endpoint_id) e.*
FROM endpoints AS e
WHERE (e.service_id = :id::uuid OR e.is_common = true)
ORDER BY e.endpoint_id, e.id DESC
),
UserPreferences AS (
WITH UserPreferences AS (
SELECT endpoints
FROM user_step_preference
WHERE user_id_code = :user_id_code
ORDER BY created_at DESC
LIMIT 1
)
SELECT
le.endpoint_id,
le.name,
le.type,
le.is_common,
le.definitions
FROM LatestEndpoints AS le
e.endpoint_id,
e.name,
e.type,
e.is_common,
e.definitions
FROM endpoints AS e
CROSS JOIN UserPreferences AS up
WHERE le.deleted IS FALSE
WHERE (e.service_id = :id::uuid OR e.is_common = true)
AND e.deleted IS FALSE
ORDER BY
CASE
WHEN up.endpoints IS NULL OR array_length(up.endpoints, 1) = 0 THEN 1
ELSE array_position(up.endpoints, le.endpoint_id)
ELSE array_position(up.endpoints, e.endpoint_id)
END,
CASE
WHEN up.endpoints IS NULL OR array_length(up.endpoints, 1) = 0 THEN le.id
WHEN up.endpoints IS NULL OR array_length(up.endpoints, 1) = 0 THEN e.id
ELSE NULL
END DESC;
Original file line number Diff line number Diff line change
@@ -1,15 +1,6 @@
-- Remove a specific endpoint from all user step preferences
-- This is called when an endpoint is deleted to clean up references

INSERT INTO user_step_preference (steps, endpoints, user_id_code)
SELECT
steps,
array_remove(endpoints, :endpoint_id::uuid) AS endpoints,
user_id_code
FROM user_step_preference AS usp1
WHERE endpoints @> ARRAY[:endpoint_id::uuid]
AND created_at = (
SELECT MAX(created_at)
FROM user_step_preference AS usp2
WHERE usp2.user_id_code = usp1.user_id_code
);
UPDATE user_step_preference
SET endpoints = array_remove(endpoints, :endpoint_id::uuid)
WHERE endpoints @> ARRAY[:endpoint_id::uuid];
Original file line number Diff line number Diff line change
@@ -1,23 +1,26 @@
-- Remove all non-common endpoints of a deleted service from all user step preferences
-- This is called when a service is deleted to clean up references to its endpoints

INSERT INTO user_step_preference (steps, endpoints, user_id_code)
SELECT
steps,
array_remove(endpoints, le.endpoint_id) AS endpoints,
user_id_code
FROM user_step_preference AS usp1
CROSS JOIN (
SELECT DISTINCT ON (endpoint_id) endpoint_id
FROM endpoints
WHERE service_id = :serviceId::uuid
AND is_common = FALSE
AND deleted = FALSE
ORDER BY endpoint_id, id DESC
) AS le
WHERE usp1.endpoints @> ARRAY[le.endpoint_id]
AND usp1.created_at = (
SELECT MAX(created_at)
FROM user_step_preference AS usp2
WHERE usp2.user_id_code = usp1.user_id_code
);
UPDATE user_step_preference AS usp
SET endpoints = COALESCE((
SELECT array_agg(endpoint_id)::uuid[]
FROM unnest(usp.endpoints) AS endpoint_id
WHERE endpoint_id NOT IN (
SELECT endpoint_id
FROM endpoints
WHERE service_id = :serviceId::uuid
AND is_common = FALSE
AND deleted = FALSE
)
), ARRAY[]::uuid[])
WHERE EXISTS (
SELECT 1
FROM unnest(usp.endpoints) AS endpoint_id
WHERE endpoint_id IN (
SELECT endpoint_id
FROM endpoints
WHERE service_id = :serviceId::uuid
AND is_common = FALSE
AND deleted = FALSE
)
);
17 changes: 8 additions & 9 deletions DSL/Resql/services/POST/endpoints/update_endpoint.sql
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
INSERT INTO endpoints (endpoint_id, service_id, name, type, is_common, definitions)
VALUES (
:endpointId::uuid,
:serviceId::uuid,
:name,
:type::endpoint_type,
:isCommon,
:definitions::jsonb
);
UPDATE endpoints
SET
service_id = :serviceId::uuid,
name = :name,
type = :type::endpoint_type,
is_common = :isCommon,
definitions = :definitions::jsonb
WHERE endpoint_id = :endpointId::uuid;
24 changes: 0 additions & 24 deletions DSL/Resql/services/POST/get-common-services-list.sql

This file was deleted.

19 changes: 19 additions & 0 deletions DSL/Resql/services/POST/get-import-names.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
WITH input_names AS (
SELECT TRIM(UNNEST(string_to_array(:names, ','))) AS name
),
processed_names AS (
SELECT
CASE
WHEN EXISTS (
SELECT 1
FROM services s
WHERE s.name = iname.name
AND NOT s.deleted
)
THEN iname.name || '_' || to_char(NOW() AT TIME ZONE :timezone, 'YYYY_MM_DD_HH24_MI_SS')
ELSE iname.name
END AS processed_name
FROM input_names iname
)
SELECT string_agg(processed_name, ',') AS names
FROM processed_names;
13 changes: 4 additions & 9 deletions DSL/Resql/services/POST/get-service-by-id.sql
Original file line number Diff line number Diff line change
@@ -1,20 +1,15 @@
WITH MaxService AS (
SELECT MAX(id) AS maxId
FROM services
WHERE service_id = :id
LIMIT 1
)
SELECT
id,
name,
description,
slot,
examples,
entities,
current_state AS state,
ruuter_type AS type,
is_common,
structure::json,
service_id
FROM services
JOIN MaxService ON id = maxId
WHERE NOT deleted
ORDER BY id ASC;
WHERE service_id = :id
AND NOT deleted;
7 changes: 3 additions & 4 deletions DSL/Resql/services/POST/get-service-name-by-id.sql
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
SELECT name FROM services
WHERE service_id = :id
ORDER BY id DESC
LIMIT 1;
SELECT name
FROM services
WHERE service_id = :id;
Loading