ad-agent_architecture 0.0.22 → 0.0.24
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.builders/generators/project-plan.rb +20 -3
- data/.rubocop.yml +6 -0
- data/CHANGELOG.md +14 -0
- data/docs/project-plan/project.drawio +65 -23
- data/docs/project-plan/project_done.svg +1 -1
- data/docs/project-plan/project_in_progress.svg +1 -1
- data/docs/project-plan/project_todo.svg +1 -1
- data/docs/requirements.md +9 -0
- data/lib/ad/agent_architecture/database/create_schema.rb +13 -3
- data/lib/ad/agent_architecture/database/models.rb +7 -0
- data/lib/ad/agent_architecture/dsl/actions/save_database.rb +48 -11
- data/lib/ad/agent_architecture/dsl/actions/save_json.rb +3 -4
- data/lib/ad/agent_architecture/dsl/agent_dsl.rb +19 -9
- data/lib/ad/agent_architecture/dsl/attribute_dsl.rb +28 -2
- data/lib/ad/agent_architecture/dsl/data_accessors.rb +7 -2
- data/lib/ad/agent_architecture/dsl/prompt_dsl.rb +24 -4
- data/lib/ad/agent_architecture/dsl/section_dsl.rb +12 -4
- data/lib/ad/agent_architecture/dsl/settings_dsl.rb +2 -2
- data/lib/ad/agent_architecture/dsl/step_dsl.rb +8 -3
- data/lib/ad/agent_architecture/dsl/workflow_dsl.rb +9 -4
- data/lib/ad/agent_architecture/report/agent_data_builder.rb +132 -0
- data/lib/ad/agent_architecture/version.rb +1 -1
- data/lib/ad/agent_architecture.rb +2 -0
- data/package-lock.json +2 -2
- data/package.json +1 -1
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb0ac3c3eaf389d3f9c89683812d3ef4d85c410c7ba1d06a9d254860b799794e
|
4
|
+
data.tar.gz: c07eb5bbd709abe28658d369c0be14983f896199a9712264659df7ac6d4ca8da
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 438d553e29e15550305df69ec948ab391e4b405cdb5e15236b718e99bdb5a9b9461903ba9f65eebc3750de47d6a7cb38f5979841416f145a31688660c346853f
|
7
|
+
data.tar.gz: 584836dfa4233ea6b23179ccd784105a30bf094a16cedf70597244544274c650dc269fd1703a3848f5bbcc9827303c61d42416bc1491121c9f1ac1ebb25befbd
|
@@ -12,7 +12,9 @@ KManager.action :project_plan do
|
|
12
12
|
|
13
13
|
# Prompts need to support file read operation
|
14
14
|
|
15
|
-
todo(title: '
|
15
|
+
todo(title: 'Fix Alpine Javascript Issues')
|
16
|
+
todo(title: 'Add dynamic menu support for attributes, prompts, settings and section menus')
|
17
|
+
|
16
18
|
end
|
17
19
|
.page('To Do', theme: :style_02, margin_left: 0, margin_top: 0) do
|
18
20
|
|
@@ -20,15 +22,23 @@ KManager.action :project_plan do
|
|
20
22
|
|
21
23
|
grid_layout(y:90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
|
22
24
|
|
25
|
+
# todo(title: 'Add hydrate DSL from saved workflow ID')
|
26
|
+
# todo(title: 'Add hydrate DSL from saved JSON')
|
27
|
+
# todo(title: 'Geneate DSL structure from saved YAML')
|
23
28
|
todo(title: 'Visual graph of the workflow')
|
24
|
-
todo(title: 'Horizontal')
|
25
29
|
todo(title: 'Clicking on sections will show the steps in that section')
|
26
30
|
todo(title: 'Clicking on attributes will show all attributes in the workflow')
|
27
31
|
todo(title: 'Clicking on prompts will show all prompts in the workflow')
|
28
32
|
todo(title: 'Clicking on dashboard will show visual hierarchy of the workflow')
|
29
33
|
todo(title: 'Need a runs button')
|
30
34
|
todo(title: 'VCode Editor: https://chatgpt.com/c/e09e1367-db5e-4786-b362-db35805b1e20')
|
31
|
-
|
35
|
+
todo(title: 'Report: Simple hierarchy of the workflow')
|
36
|
+
todo(title: 'Generator: Agent Framework CrewAI')
|
37
|
+
todo(title: 'Generator: Agent Framework Langchain')
|
38
|
+
todo(title: 'Generator: Agent Framework Rasa')
|
39
|
+
todo(title: 'Generator: Agent Framework Botpress')
|
40
|
+
todo(title: 'Generator: Agent Framework Dialogflow')
|
41
|
+
todo(title: 'Generator: Agent Framework Microsoft Bot Framework')
|
32
42
|
end
|
33
43
|
.page('Done', theme: :style_06, margin_left: 0, margin_top: 0) do
|
34
44
|
|
@@ -36,6 +46,13 @@ KManager.action :project_plan do
|
|
36
46
|
|
37
47
|
grid_layout(y:90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
|
38
48
|
|
49
|
+
todo(title: 'Steps display horizontally')
|
50
|
+
todo(title: 'Add saved workflow ID and save? to the DSL')
|
51
|
+
todo(title: 'Prompt set in step DSL will now lookup common prompts')
|
52
|
+
todo(title: 'Create tests for Agent Data Builder and hook up to save YAML/JSON')
|
53
|
+
todo(title: 'Settings need to persist in the settings or workflow table')
|
54
|
+
todo(title: 'Add add title name & description support to Agent Data Builder')
|
55
|
+
todo(title: 'Add fluent method access to all DSLs')
|
39
56
|
todo(title: 'Generate DSL for an Agent Architecture workflow')
|
40
57
|
todo(title: 'Attributes are auto created when used in a step, but not preconfigured')
|
41
58
|
todo(title: 'Add support for project plan')
|
data/.rubocop.yml
CHANGED
@@ -21,6 +21,7 @@ Metrics/BlockLength:
|
|
21
21
|
Exclude:
|
22
22
|
- "**/spec/**/*"
|
23
23
|
- "*.gemspec"
|
24
|
+
- "lib/ad/agent_architecture/dsl/actions/save_database.rb"
|
24
25
|
AllowedMethods:
|
25
26
|
- configure
|
26
27
|
- context
|
@@ -91,6 +92,10 @@ Lint/AmbiguousBlockAssociation:
|
|
91
92
|
Style/AccessorGrouping:
|
92
93
|
Enabled: false
|
93
94
|
|
95
|
+
Naming/PredicateName:
|
96
|
+
Exclude:
|
97
|
+
- "lib/ad/agent_architecture/dsl/attribute_dsl.rb"
|
98
|
+
|
94
99
|
Metrics/AbcSize:
|
95
100
|
Exclude:
|
96
101
|
- "lib/ad/agent_architecture/**/*"
|
@@ -123,6 +128,7 @@ RSpec/MultipleExpectations:
|
|
123
128
|
Max: 3
|
124
129
|
Exclude:
|
125
130
|
- "spec/ad/agent_architecture/dsl/actions/save_database_spec.rb"
|
131
|
+
- "spec/ad/agent_architecture/report/agent_data_builder_spec.rb"
|
126
132
|
|
127
133
|
RSpec/MultipleMemoizedHelpers:
|
128
134
|
Enabled: false
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
## [0.0.23](https://github.com/appydave/ad-agent_architecture/compare/v0.0.22...v0.0.23) (2024-07-06)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* Add features and improvements to DSL and Agent Data Builder ([740261c](https://github.com/appydave/ad-agent_architecture/commit/740261c785ce8500d67d479f7ca8967baa4a4ab5))
|
7
|
+
|
8
|
+
## [0.0.22](https://github.com/appydave/ad-agent_architecture/compare/v0.0.21...v0.0.22) (2024-07-04)
|
9
|
+
|
10
|
+
|
11
|
+
### Bug Fixes
|
12
|
+
|
13
|
+
* bug in prompt lookup ([40ab2bb](https://github.com/appydave/ad-agent_architecture/commit/40ab2bbf7b7145eefa861ef621cc7381ffe0cd92))
|
14
|
+
|
1
15
|
## [0.0.21](https://github.com/appydave/ad-agent_architecture/compare/v0.0.20...v0.0.21) (2024-07-04)
|
2
16
|
|
3
17
|
|
@@ -1,64 +1,106 @@
|
|
1
|
-
<mxfile host="
|
2
|
-
<diagram id="
|
1
|
+
<mxfile host="3jg">
|
2
|
+
<diagram id="C4t" name="In progress">
|
3
3
|
<mxGraphModel dx="0" dy="0" background="#FFFAFA" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
|
4
4
|
<root>
|
5
|
-
<mxCell id="
|
6
|
-
<mxCell id="
|
7
|
-
<mxCell id="
|
5
|
+
<mxCell id="page_root_C4t" parent="C4t"/>
|
6
|
+
<mxCell id="node_root_C4t" parent="page_root_C4t"/>
|
7
|
+
<mxCell id="C4t-2" value="Fix Alpine Javascript Issues" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333" vertex="1" parent="node_root_C4t">
|
8
8
|
<mxGeometry x="10" y="10" width="300" height="60" as="geometry"/>
|
9
9
|
</mxCell>
|
10
|
+
<mxCell id="C4t-3" value="Add dynamic menu support for attributes, prompts, settings and section menus" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333" vertex="1" parent="node_root_C4t">
|
11
|
+
<mxGeometry x="330" y="10" width="300" height="60" as="geometry"/>
|
12
|
+
</mxCell>
|
10
13
|
</root>
|
11
14
|
</mxGraphModel>
|
12
15
|
</diagram>
|
13
|
-
<diagram id="
|
16
|
+
<diagram id="uuM" name="To Do">
|
14
17
|
<mxGraphModel dx="0" dy="0" background="#FFFAFA" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
|
15
18
|
<root>
|
16
|
-
<mxCell id="
|
17
|
-
<mxCell id="
|
18
|
-
<mxCell id="
|
19
|
+
<mxCell id="page_root_uuM" parent="uuM"/>
|
20
|
+
<mxCell id="node_root_uuM" parent="page_root_uuM"/>
|
21
|
+
<mxCell id="uuM-2" value="Visual graph of the workflow" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_uuM">
|
19
22
|
<mxGeometry x="10" y="10" width="300" height="60" as="geometry"/>
|
20
23
|
</mxCell>
|
21
|
-
<mxCell id="
|
24
|
+
<mxCell id="uuM-3" value="Clicking on sections will show the steps in that section" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_uuM">
|
22
25
|
<mxGeometry x="330" y="10" width="300" height="60" as="geometry"/>
|
23
26
|
</mxCell>
|
24
|
-
<mxCell id="
|
27
|
+
<mxCell id="uuM-4" value="Clicking on attributes will show all attributes in the workflow" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_uuM">
|
25
28
|
<mxGeometry x="650" y="10" width="300" height="60" as="geometry"/>
|
26
29
|
</mxCell>
|
27
|
-
<mxCell id="
|
30
|
+
<mxCell id="uuM-5" value="Clicking on prompts will show all prompts in the workflow" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_uuM">
|
28
31
|
<mxGeometry x="10" y="90" width="300" height="60" as="geometry"/>
|
29
32
|
</mxCell>
|
30
|
-
<mxCell id="
|
33
|
+
<mxCell id="uuM-6" value="Clicking on dashboard will show visual hierarchy of the workflow" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_uuM">
|
31
34
|
<mxGeometry x="330" y="90" width="300" height="60" as="geometry"/>
|
32
35
|
</mxCell>
|
33
|
-
<mxCell id="
|
36
|
+
<mxCell id="uuM-7" value="Need a runs button" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_uuM">
|
34
37
|
<mxGeometry x="650" y="90" width="300" height="60" as="geometry"/>
|
35
38
|
</mxCell>
|
36
|
-
<mxCell id="
|
39
|
+
<mxCell id="uuM-8" value="VCode Editor: https://chatgpt.com/c/e09e1367-db5e-4786-b362-db35805b1e20" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_uuM">
|
37
40
|
<mxGeometry x="10" y="170" width="300" height="60" as="geometry"/>
|
38
41
|
</mxCell>
|
39
|
-
<mxCell id="
|
42
|
+
<mxCell id="uuM-9" value="Report: Simple hierarchy of the workflow" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_uuM">
|
40
43
|
<mxGeometry x="330" y="170" width="300" height="60" as="geometry"/>
|
41
44
|
</mxCell>
|
45
|
+
<mxCell id="uuM-10" value="Generator: Agent Framework CrewAI" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_uuM">
|
46
|
+
<mxGeometry x="650" y="170" width="300" height="60" as="geometry"/>
|
47
|
+
</mxCell>
|
48
|
+
<mxCell id="uuM-11" value="Generator: Agent Framework Langchain" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_uuM">
|
49
|
+
<mxGeometry x="10" y="250" width="300" height="60" as="geometry"/>
|
50
|
+
</mxCell>
|
51
|
+
<mxCell id="uuM-12" value="Generator: Agent Framework Rasa" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_uuM">
|
52
|
+
<mxGeometry x="330" y="250" width="300" height="60" as="geometry"/>
|
53
|
+
</mxCell>
|
54
|
+
<mxCell id="uuM-13" value="Generator: Agent Framework Botpress" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_uuM">
|
55
|
+
<mxGeometry x="650" y="250" width="300" height="60" as="geometry"/>
|
56
|
+
</mxCell>
|
57
|
+
<mxCell id="uuM-14" value="Generator: Agent Framework Dialogflow" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_uuM">
|
58
|
+
<mxGeometry x="10" y="330" width="300" height="60" as="geometry"/>
|
59
|
+
</mxCell>
|
60
|
+
<mxCell id="uuM-15" value="Generator: Agent Framework Microsoft Bot Framework" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_uuM">
|
61
|
+
<mxGeometry x="330" y="330" width="300" height="60" as="geometry"/>
|
62
|
+
</mxCell>
|
42
63
|
</root>
|
43
64
|
</mxGraphModel>
|
44
65
|
</diagram>
|
45
|
-
<diagram id="
|
66
|
+
<diagram id="Tjn" name="Done">
|
46
67
|
<mxGraphModel dx="0" dy="0" background="#FFFAFA" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
|
47
68
|
<root>
|
48
|
-
<mxCell id="
|
49
|
-
<mxCell id="
|
50
|
-
<mxCell id="
|
69
|
+
<mxCell id="page_root_Tjn" parent="Tjn"/>
|
70
|
+
<mxCell id="node_root_Tjn" parent="page_root_Tjn"/>
|
71
|
+
<mxCell id="Tjn-2" value="Steps display horizontally" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Tjn">
|
51
72
|
<mxGeometry x="10" y="10" width="300" height="60" as="geometry"/>
|
52
73
|
</mxCell>
|
53
|
-
<mxCell id="
|
74
|
+
<mxCell id="Tjn-3" value="Add saved workflow ID and save? to the DSL" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Tjn">
|
54
75
|
<mxGeometry x="330" y="10" width="300" height="60" as="geometry"/>
|
55
76
|
</mxCell>
|
56
|
-
<mxCell id="
|
77
|
+
<mxCell id="Tjn-4" value="Prompt set in step DSL will now lookup common prompts" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Tjn">
|
57
78
|
<mxGeometry x="650" y="10" width="300" height="60" as="geometry"/>
|
58
79
|
</mxCell>
|
59
|
-
<mxCell id="
|
80
|
+
<mxCell id="Tjn-5" value="Create tests for Agent Data Builder and hook up to save YAML/JSON" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Tjn">
|
60
81
|
<mxGeometry x="10" y="90" width="300" height="60" as="geometry"/>
|
61
82
|
</mxCell>
|
83
|
+
<mxCell id="Tjn-6" value="Settings need to persist in the settings or workflow table" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Tjn">
|
84
|
+
<mxGeometry x="330" y="90" width="300" height="60" as="geometry"/>
|
85
|
+
</mxCell>
|
86
|
+
<mxCell id="Tjn-7" value="Add add title name & description support to Agent Data Builder" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Tjn">
|
87
|
+
<mxGeometry x="650" y="90" width="300" height="60" as="geometry"/>
|
88
|
+
</mxCell>
|
89
|
+
<mxCell id="Tjn-8" value="Add fluent method access to all DSLs" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Tjn">
|
90
|
+
<mxGeometry x="10" y="170" width="300" height="60" as="geometry"/>
|
91
|
+
</mxCell>
|
92
|
+
<mxCell id="Tjn-9" value="Generate DSL for an Agent Architecture workflow" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Tjn">
|
93
|
+
<mxGeometry x="330" y="170" width="300" height="60" as="geometry"/>
|
94
|
+
</mxCell>
|
95
|
+
<mxCell id="Tjn-10" value="Attributes are auto created when used in a step, but not preconfigured" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Tjn">
|
96
|
+
<mxGeometry x="650" y="170" width="300" height="60" as="geometry"/>
|
97
|
+
</mxCell>
|
98
|
+
<mxCell id="Tjn-11" value="Add support for project plan" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Tjn">
|
99
|
+
<mxGeometry x="10" y="250" width="300" height="60" as="geometry"/>
|
100
|
+
</mxCell>
|
101
|
+
<mxCell id="Tjn-12" value="Fix the DB issue introduced via DSL refactor" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Tjn">
|
102
|
+
<mxGeometry x="330" y="250" width="300" height="60" as="geometry"/>
|
103
|
+
</mxCell>
|
62
104
|
</root>
|
63
105
|
</mxGraphModel>
|
64
106
|
</diagram>
|
@@ -1,3 +1,3 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
2
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3
|
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="942px" height="142px" viewBox="-0.5 -0.5 942 142"><defs><linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="mx-gradient-ffffff-0.9-ffffff-0.1-s-0"><stop offset="0%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.9;"/><stop offset="100%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.1;"/></linearGradient></defs><g><g data-cell-id="page_root_trc"><g data-cell-id="node_root_trc"><g data-cell-id="trc-2"><g><rect x="0" y="0" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 -1 Q -1 -1 -1 10.15 L -1 24 Q 150 42 301 24 L 301 10.15 Q 301 -1 289.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Generate DSL for an Agent Architecture workflow</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Generate DSL for an Agent Architecture workflow</text></switch></g></g></g><g data-cell-id="trc-3"><g><rect x="320" y="0" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 330.15 -1 Q 319 -1 319 10.15 L 319 24 Q 470 42 621 24 L 621 10.15 Q 621 -1 609.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Attributes are auto created when used in a step, but not preconfigured</div></div></div></foreignObject><text x="470" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Attributes are auto created when used in a step, b...</text></switch></g></g></g><g data-cell-id="trc-4"><g><rect x="640" y="0" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 650.15 -1 Q 639 -1 639 10.15 L 639 24 Q 790 42 941 24 L 941 10.15 Q 941 -1 929.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Add support for project plan</div></div></div></foreignObject><text x="790" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Add support for project plan</text></switch></g></g></g><g data-cell-id="trc-5"><g><rect x="0" y="80" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 79 Q -1 79 -1 90.15 L -1 104 Q 150 122 301 104 L 301 90.15 Q 301 79 289.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Fix the DB issue introduced via DSL refactor</div></div></div></foreignObject><text x="150" y="114" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Fix the DB issue introduced via DSL refactor</text></switch></g></g></g></g></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
|
3
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="942px" height="302px" viewBox="-0.5 -0.5 942 302"><defs><linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="mx-gradient-ffffff-0.9-ffffff-0.1-s-0"><stop offset="0%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.9;"/><stop offset="100%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.1;"/></linearGradient></defs><g><g data-cell-id="page_root_Tjn"><g data-cell-id="node_root_Tjn"><g data-cell-id="Tjn-2"><g><rect x="0" y="0" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 -1 Q -1 -1 -1 10.15 L -1 24 Q 150 42 301 24 L 301 10.15 Q 301 -1 289.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Steps display horizontally</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Steps display horizontally</text></switch></g></g></g><g data-cell-id="Tjn-3"><g><rect x="320" y="0" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 330.15 -1 Q 319 -1 319 10.15 L 319 24 Q 470 42 621 24 L 621 10.15 Q 621 -1 609.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Add saved workflow ID and save? to the DSL</div></div></div></foreignObject><text x="470" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Add saved workflow ID and save? to the DSL</text></switch></g></g></g><g data-cell-id="Tjn-4"><g><rect x="640" y="0" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 650.15 -1 Q 639 -1 639 10.15 L 639 24 Q 790 42 941 24 L 941 10.15 Q 941 -1 929.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Prompt set in step DSL will now lookup common prompts</div></div></div></foreignObject><text x="790" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Prompt set in step DSL will now lookup common prom...</text></switch></g></g></g><g data-cell-id="Tjn-5"><g><rect x="0" y="80" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 79 Q -1 79 -1 90.15 L -1 104 Q 150 122 301 104 L 301 90.15 Q 301 79 289.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Create tests for Agent Data Builder and hook up to save YAML/JSON</div></div></div></foreignObject><text x="150" y="114" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Create tests for Agent Data Builder and hook up to...</text></switch></g></g></g><g data-cell-id="Tjn-6"><g><rect x="320" y="80" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 330.15 79 Q 319 79 319 90.15 L 319 104 Q 470 122 621 104 L 621 90.15 Q 621 79 609.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Settings need to persist in the settings or workflow table</div></div></div></foreignObject><text x="470" y="114" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Settings need to persist in the settings or workfl...</text></switch></g></g></g><g data-cell-id="Tjn-7"><g><rect x="640" y="80" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 650.15 79 Q 639 79 639 90.15 L 639 104 Q 790 122 941 104 L 941 90.15 Q 941 79 929.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Add add title name & description support to Agent Data Builder</div></div></div></foreignObject><text x="790" y="114" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Add add title name & description support to Agent...</text></switch></g></g></g><g data-cell-id="Tjn-8"><g><rect x="0" y="160" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 159 Q -1 159 -1 170.15 L -1 184 Q 150 202 301 184 L 301 170.15 Q 301 159 289.85 159 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 190px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Add fluent method access to all DSLs</div></div></div></foreignObject><text x="150" y="194" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Add fluent method access to all DSLs</text></switch></g></g></g><g data-cell-id="Tjn-9"><g><rect x="320" y="160" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 330.15 159 Q 319 159 319 170.15 L 319 184 Q 470 202 621 184 L 621 170.15 Q 621 159 609.85 159 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 190px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Generate DSL for an Agent Architecture workflow</div></div></div></foreignObject><text x="470" y="194" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Generate DSL for an Agent Architecture workflow</text></switch></g></g></g><g data-cell-id="Tjn-10"><g><rect x="640" y="160" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 650.15 159 Q 639 159 639 170.15 L 639 184 Q 790 202 941 184 L 941 170.15 Q 941 159 929.85 159 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 190px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Attributes are auto created when used in a step, but not preconfigured</div></div></div></foreignObject><text x="790" y="194" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Attributes are auto created when used in a step, b...</text></switch></g></g></g><g data-cell-id="Tjn-11"><g><rect x="0" y="240" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 239 Q -1 239 -1 250.15 L -1 264 Q 150 282 301 264 L 301 250.15 Q 301 239 289.85 239 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 270px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Add support for project plan</div></div></div></foreignObject><text x="150" y="274" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Add support for project plan</text></switch></g></g></g><g data-cell-id="Tjn-12"><g><rect x="320" y="240" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 330.15 239 Q 319 239 319 250.15 L 319 264 Q 470 282 621 264 L 621 250.15 Q 621 239 609.85 239 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 270px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Fix the DB issue introduced via DSL refactor</div></div></div></foreignObject><text x="470" y="274" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Fix the DB issue introduced via DSL refactor</text></switch></g></g></g></g></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
|
@@ -1,3 +1,3 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
2
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3
|
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="
|
3
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="622px" height="62px" viewBox="-0.5 -0.5 622 62"><defs><linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="mx-gradient-ffffff-0.9-ffffff-0.1-s-0"><stop offset="0%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.9;"/><stop offset="100%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.1;"/></linearGradient></defs><g><g data-cell-id="page_root_C4t"><g data-cell-id="node_root_C4t"><g data-cell-id="C4t-2"><g><rect x="0" y="0" width="300" height="60" rx="9" ry="9" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><path d="M 10.15 -1 Q -1 -1 -1 10.15 L -1 24 Q 150 42 301 24 L 301 10.15 Q 301 -1 289.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Fix Alpine Javascript Issues</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Fix Alpine Javascript Issues</text></switch></g></g></g><g data-cell-id="C4t-3"><g><rect x="320" y="0" width="300" height="60" rx="9" ry="9" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><path d="M 330.15 -1 Q 319 -1 319 10.15 L 319 24 Q 470 42 621 24 L 621 10.15 Q 621 -1 609.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Add dynamic menu support for attributes, prompts, settings and section menus</div></div></div></foreignObject><text x="470" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Add dynamic menu support for attributes, prompts,...</text></switch></g></g></g></g></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
|
@@ -1,3 +1,3 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
2
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3
|
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="942px" height="222px" viewBox="-0.5 -0.5 942 222"><defs><linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="mx-gradient-ffffff-0.9-ffffff-0.1-s-0"><stop offset="0%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.9;"/><stop offset="100%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.1;"/></linearGradient></defs><g><g data-cell-id="page_root_pnQ"><g data-cell-id="node_root_pnQ"><g data-cell-id="pnQ-2"><g><rect x="0" y="0" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 10.15 -1 Q -1 -1 -1 10.15 L -1 24 Q 150 42 301 24 L 301 10.15 Q 301 -1 289.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Visual graph of the workflow</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Visual graph of the workflow</text></switch></g></g></g><g data-cell-id="pnQ-3"><g><rect x="320" y="0" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 330.15 -1 Q 319 -1 319 10.15 L 319 24 Q 470 42 621 24 L 621 10.15 Q 621 -1 609.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Horizontal</div></div></div></foreignObject><text x="470" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Horizontal</text></switch></g></g></g><g data-cell-id="pnQ-4"><g><rect x="640" y="0" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 650.15 -1 Q 639 -1 639 10.15 L 639 24 Q 790 42 941 24 L 941 10.15 Q 941 -1 929.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Clicking on sections will show the steps in that section</div></div></div></foreignObject><text x="790" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Clicking on sections will show the steps in that s...</text></switch></g></g></g><g data-cell-id="pnQ-5"><g><rect x="0" y="80" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 10.15 79 Q -1 79 -1 90.15 L -1 104 Q 150 122 301 104 L 301 90.15 Q 301 79 289.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Clicking on attributes will show all attributes in the workflow</div></div></div></foreignObject><text x="150" y="114" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Clicking on attributes will show all attributes in...</text></switch></g></g></g><g data-cell-id="pnQ-6"><g><rect x="320" y="80" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 330.15 79 Q 319 79 319 90.15 L 319 104 Q 470 122 621 104 L 621 90.15 Q 621 79 609.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Clicking on prompts will show all prompts in the workflow</div></div></div></foreignObject><text x="470" y="114" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Clicking on prompts will show all prompts in the w...</text></switch></g></g></g><g data-cell-id="pnQ-7"><g><rect x="640" y="80" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 650.15 79 Q 639 79 639 90.15 L 639 104 Q 790 122 941 104 L 941 90.15 Q 941 79 929.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Clicking on dashboard will show visual hierarchy of the workflow</div></div></div></foreignObject><text x="790" y="114" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Clicking on dashboard will show visual hierarchy o...</text></switch></g></g></g><g data-cell-id="pnQ-8"><g><rect x="0" y="160" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 10.15 159 Q -1 159 -1 170.15 L -1 184 Q 150 202 301 184 L 301 170.15 Q 301 159 289.85 159 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 190px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Need a runs button</div></div></div></foreignObject><text x="150" y="194" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Need a runs button</text></switch></g></g></g><g data-cell-id="pnQ-9"><g><rect x="320" y="160" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 330.15 159 Q 319 159 319 170.15 L 319 184 Q 470 202 621 184 L 621 170.15 Q 621 159 609.85 159 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 190px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">VCode Editor: https://chatgpt.com/c/e09e1367-db5e-4786-b362-db35805b1e20</div></div></div></foreignObject><text x="470" y="194" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">VCode Editor: https://chatgpt.com/c/e09e1367-db5e-...</text></switch></g></g></g></g></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
|
3
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="942px" height="382px" viewBox="-0.5 -0.5 942 382"><defs><linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="mx-gradient-ffffff-0.9-ffffff-0.1-s-0"><stop offset="0%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.9;"/><stop offset="100%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.1;"/></linearGradient></defs><g><g data-cell-id="page_root_uuM"><g data-cell-id="node_root_uuM"><g data-cell-id="uuM-2"><g><rect x="0" y="0" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 10.15 -1 Q -1 -1 -1 10.15 L -1 24 Q 150 42 301 24 L 301 10.15 Q 301 -1 289.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Visual graph of the workflow</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Visual graph of the workflow</text></switch></g></g></g><g data-cell-id="uuM-3"><g><rect x="320" y="0" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 330.15 -1 Q 319 -1 319 10.15 L 319 24 Q 470 42 621 24 L 621 10.15 Q 621 -1 609.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Clicking on sections will show the steps in that section</div></div></div></foreignObject><text x="470" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Clicking on sections will show the steps in that s...</text></switch></g></g></g><g data-cell-id="uuM-4"><g><rect x="640" y="0" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 650.15 -1 Q 639 -1 639 10.15 L 639 24 Q 790 42 941 24 L 941 10.15 Q 941 -1 929.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Clicking on attributes will show all attributes in the workflow</div></div></div></foreignObject><text x="790" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Clicking on attributes will show all attributes in...</text></switch></g></g></g><g data-cell-id="uuM-5"><g><rect x="0" y="80" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 10.15 79 Q -1 79 -1 90.15 L -1 104 Q 150 122 301 104 L 301 90.15 Q 301 79 289.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Clicking on prompts will show all prompts in the workflow</div></div></div></foreignObject><text x="150" y="114" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Clicking on prompts will show all prompts in the w...</text></switch></g></g></g><g data-cell-id="uuM-6"><g><rect x="320" y="80" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 330.15 79 Q 319 79 319 90.15 L 319 104 Q 470 122 621 104 L 621 90.15 Q 621 79 609.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Clicking on dashboard will show visual hierarchy of the workflow</div></div></div></foreignObject><text x="470" y="114" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Clicking on dashboard will show visual hierarchy o...</text></switch></g></g></g><g data-cell-id="uuM-7"><g><rect x="640" y="80" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 650.15 79 Q 639 79 639 90.15 L 639 104 Q 790 122 941 104 L 941 90.15 Q 941 79 929.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Need a runs button</div></div></div></foreignObject><text x="790" y="114" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Need a runs button</text></switch></g></g></g><g data-cell-id="uuM-8"><g><rect x="0" y="160" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 10.15 159 Q -1 159 -1 170.15 L -1 184 Q 150 202 301 184 L 301 170.15 Q 301 159 289.85 159 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 190px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">VCode Editor: https://chatgpt.com/c/e09e1367-db5e-4786-b362-db35805b1e20</div></div></div></foreignObject><text x="150" y="194" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">VCode Editor: https://chatgpt.com/c/e09e1367-db5e-...</text></switch></g></g></g><g data-cell-id="uuM-9"><g><rect x="320" y="160" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 330.15 159 Q 319 159 319 170.15 L 319 184 Q 470 202 621 184 L 621 170.15 Q 621 159 609.85 159 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 190px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Report: Simple hierarchy of the workflow</div></div></div></foreignObject><text x="470" y="194" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Report: Simple hierarchy of the workflow</text></switch></g></g></g><g data-cell-id="uuM-10"><g><rect x="640" y="160" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 650.15 159 Q 639 159 639 170.15 L 639 184 Q 790 202 941 184 L 941 170.15 Q 941 159 929.85 159 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 190px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Generator: Agent Framework CrewAI</div></div></div></foreignObject><text x="790" y="194" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Generator: Agent Framework CrewAI</text></switch></g></g></g><g data-cell-id="uuM-11"><g><rect x="0" y="240" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 10.15 239 Q -1 239 -1 250.15 L -1 264 Q 150 282 301 264 L 301 250.15 Q 301 239 289.85 239 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 270px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Generator: Agent Framework Langchain</div></div></div></foreignObject><text x="150" y="274" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Generator: Agent Framework Langchain</text></switch></g></g></g><g data-cell-id="uuM-12"><g><rect x="320" y="240" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 330.15 239 Q 319 239 319 250.15 L 319 264 Q 470 282 621 264 L 621 250.15 Q 621 239 609.85 239 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 270px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Generator: Agent Framework Rasa</div></div></div></foreignObject><text x="470" y="274" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Generator: Agent Framework Rasa</text></switch></g></g></g><g data-cell-id="uuM-13"><g><rect x="640" y="240" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 650.15 239 Q 639 239 639 250.15 L 639 264 Q 790 282 941 264 L 941 250.15 Q 941 239 929.85 239 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 270px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Generator: Agent Framework Botpress</div></div></div></foreignObject><text x="790" y="274" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Generator: Agent Framework Botpress</text></switch></g></g></g><g data-cell-id="uuM-14"><g><rect x="0" y="320" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 10.15 319 Q -1 319 -1 330.15 L -1 344 Q 150 362 301 344 L 301 330.15 Q 301 319 289.85 319 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 350px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Generator: Agent Framework Dialogflow</div></div></div></foreignObject><text x="150" y="354" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Generator: Agent Framework Dialogflow</text></switch></g></g></g><g data-cell-id="uuM-15"><g><rect x="320" y="320" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 330.15 319 Q 319 319 319 330.15 L 319 344 Q 470 362 621 344 L 621 330.15 Q 621 319 609.85 319 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 350px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Generator: Agent Framework Microsoft Bot Framework</div></div></div></foreignObject><text x="470" y="354" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Generator: Agent Framework Microsoft Bot Framework</text></switch></g></g></g></g></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
|
data/docs/requirements.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# AppyDave - Agent Architecture Schema
|
2
2
|
|
3
|
+
GPT:
|
4
|
+
https://chatgpt.com/c/d938fd7c-28d4-4543-9246-eae6676d8aa5
|
5
|
+
https://chatgpt.com/c/e7b66d48-4134-4573-b5c6-54988e5f008c
|
6
|
+
https://chatgpt.com/c/e09e1367-db5e-4786-b362-db35805b1e20
|
7
|
+
|
8
|
+
|
9
|
+
Schema:
|
10
|
+
https://dbdiagram.io/d/641d5cc05758ac5f1723d0c7
|
11
|
+
|
3
12
|
## Purpose
|
4
13
|
|
5
14
|
The application is designed to handle structured workflows for building documents or text-based assets using LLMs from OpenAi, Anthropic and others. It should be adaptable to any workflow that follows a structured concept or a series of steps.
|
@@ -27,14 +27,14 @@ module Ad
|
|
27
27
|
db.create_table :workflows do
|
28
28
|
primary_key :id
|
29
29
|
String :name, null: false
|
30
|
-
String :description
|
30
|
+
String :description, null: true
|
31
31
|
end
|
32
32
|
|
33
33
|
db.create_table :sections do
|
34
34
|
primary_key :id
|
35
35
|
foreign_key :workflow_id, :workflows
|
36
36
|
String :name, null: false
|
37
|
-
String :description
|
37
|
+
String :description, null: true
|
38
38
|
Integer :order
|
39
39
|
end
|
40
40
|
|
@@ -43,7 +43,7 @@ module Ad
|
|
43
43
|
foreign_key :section_id, :sections
|
44
44
|
String :name, null: false
|
45
45
|
String :action, default: 'gpt'
|
46
|
-
String :description
|
46
|
+
String :description, null: true
|
47
47
|
Integer :order
|
48
48
|
String :prompt
|
49
49
|
end
|
@@ -52,6 +52,7 @@ module Ad
|
|
52
52
|
primary_key :id
|
53
53
|
foreign_key :workflow_id, :workflows
|
54
54
|
String :name, null: false
|
55
|
+
String :description, null: true
|
55
56
|
String :type
|
56
57
|
Boolean :is_array
|
57
58
|
end
|
@@ -74,6 +75,15 @@ module Ad
|
|
74
75
|
String :name, null: false
|
75
76
|
String :path, null: true
|
76
77
|
String :content, null: true
|
78
|
+
String :description, null: true
|
79
|
+
foreign_key :workflow_id, :workflows
|
80
|
+
end
|
81
|
+
|
82
|
+
db.create_table :settings do
|
83
|
+
primary_key :id
|
84
|
+
String :name, null: false
|
85
|
+
String :value
|
86
|
+
String :description, null: true
|
77
87
|
foreign_key :workflow_id, :workflows
|
78
88
|
end
|
79
89
|
|
@@ -11,6 +11,7 @@ module Ad
|
|
11
11
|
one_to_many :attributes, class: 'Ad::AgentArchitecture::Database::Attribute'
|
12
12
|
one_to_many :workflow_runs, class: 'Ad::AgentArchitecture::Database::WorkflowRun'
|
13
13
|
one_to_many :prompts, class: 'Ad::AgentArchitecture::Database::Prompt'
|
14
|
+
one_to_many :settings, class: 'Ad::AgentArchitecture::Database::Setting'
|
14
15
|
end
|
15
16
|
|
16
17
|
# Section model represents a section entity in the database.
|
@@ -47,10 +48,16 @@ module Ad
|
|
47
48
|
many_to_one :attribute, class: 'Ad::AgentArchitecture::Database::Attribute'
|
48
49
|
end
|
49
50
|
|
51
|
+
# Prompt model represents a prompt entity in the database.
|
50
52
|
class Prompt < Sequel::Model
|
51
53
|
many_to_one :workflow, class: 'Ad::AgentArchitecture::Database::Workflow'
|
52
54
|
end
|
53
55
|
|
56
|
+
# Setting model represents a setting entity in the database.
|
57
|
+
class Setting < Sequel::Model
|
58
|
+
many_to_one :workflow, class: 'Ad::AgentArchitecture::Database::Workflow'
|
59
|
+
end
|
60
|
+
|
54
61
|
# WorkflowRun model represents a workflow run entity in the database.
|
55
62
|
class WorkflowRun < Sequel::Model
|
56
63
|
many_to_one :workflow, class: 'Ad::AgentArchitecture::Database::Workflow'
|
@@ -6,22 +6,34 @@ module Ad
|
|
6
6
|
module Actions
|
7
7
|
# Save workflow graph to database
|
8
8
|
class SaveDatabase
|
9
|
-
|
10
|
-
|
9
|
+
attr_reader :workflow_id
|
10
|
+
|
11
|
+
def initialize(workflow)
|
12
|
+
@workflow_hash = workflow.data
|
11
13
|
end
|
12
14
|
|
13
15
|
def save
|
14
|
-
|
16
|
+
@workflow_id = nil
|
17
|
+
# puts JSON.pretty_generate(@workflow_hash)
|
15
18
|
DB.transaction do
|
16
19
|
# puts "Saving Workflow: #{@workflow_hash[:name]}"
|
17
20
|
# Save workflow
|
18
|
-
workflow_record = Ad::AgentArchitecture::Database::Workflow.create(
|
21
|
+
workflow_record = Ad::AgentArchitecture::Database::Workflow.create(
|
22
|
+
name: @workflow_hash[:name],
|
23
|
+
description: @workflow_hash[:description]
|
24
|
+
)
|
25
|
+
|
26
|
+
@workflow_id = workflow_record.id
|
19
27
|
|
20
28
|
# Saving attributes
|
21
29
|
attribute_records = @workflow_hash[:attributes].map do |_name, attr|
|
22
30
|
# puts "Saving Attribute: #{attr}"
|
23
31
|
Ad::AgentArchitecture::Database::Attribute.create(
|
24
|
-
name: attr[:name],
|
32
|
+
name: attr[:name],
|
33
|
+
type: attr[:type],
|
34
|
+
is_array: attr[:is_array],
|
35
|
+
description: attr[:description],
|
36
|
+
workflow: workflow_record
|
25
37
|
)
|
26
38
|
end
|
27
39
|
|
@@ -31,7 +43,22 @@ module Ad
|
|
31
43
|
@workflow_hash[:prompts].each_value do |prompt|
|
32
44
|
# puts "Saving Prompt: #{prompt}"
|
33
45
|
Ad::AgentArchitecture::Database::Prompt.create(
|
34
|
-
name: prompt[:name],
|
46
|
+
name: prompt[:name],
|
47
|
+
path: prompt[:path],
|
48
|
+
content: prompt[:content],
|
49
|
+
description: prompt[:description],
|
50
|
+
workflow: workflow_record
|
51
|
+
)
|
52
|
+
end
|
53
|
+
|
54
|
+
# Save settings
|
55
|
+
@workflow_hash[:settings].each do |name, setting|
|
56
|
+
puts "Saving Setting: #{setting}"
|
57
|
+
Ad::AgentArchitecture::Database::Setting.create(
|
58
|
+
name: name.to_s,
|
59
|
+
value: setting[:value],
|
60
|
+
description: setting[:description],
|
61
|
+
workflow: workflow_record
|
35
62
|
)
|
36
63
|
end
|
37
64
|
|
@@ -39,32 +66,42 @@ module Ad
|
|
39
66
|
@workflow_hash[:sections].each do |section|
|
40
67
|
# puts "Saving Section: #{section}"
|
41
68
|
section_record = Ad::AgentArchitecture::Database::Section.create(
|
42
|
-
name: section[:name],
|
69
|
+
name: section[:name],
|
70
|
+
order: section[:order],
|
71
|
+
description: section[:description],
|
72
|
+
workflow: workflow_record
|
43
73
|
)
|
44
74
|
|
45
75
|
section[:steps].each do |step|
|
46
76
|
# puts "Saving Step: #{step}"
|
47
77
|
step_record = Ad::AgentArchitecture::Database::Step.create(
|
48
|
-
name: step[:name],
|
78
|
+
name: step[:name],
|
79
|
+
order: step[:order],
|
80
|
+
prompt: step[:prompt],
|
81
|
+
description: step[:description],
|
82
|
+
section: section_record
|
49
83
|
)
|
50
84
|
|
51
85
|
step[:input_attributes].each do |attr_name|
|
52
86
|
# puts "Saving Input Attribute for Step: #{attr_name}"
|
53
87
|
Ad::AgentArchitecture::Database::InputAttribute.create(
|
54
|
-
step: step_record,
|
88
|
+
step: step_record,
|
89
|
+
attribute: attribute_map[attr_name.to_sym]
|
55
90
|
)
|
56
91
|
end
|
57
92
|
|
58
93
|
step[:output_attributes].each do |attr_name|
|
59
94
|
# puts "Saving Output Attribute for Step: #{attr_name}"
|
60
95
|
Ad::AgentArchitecture::Database::OutputAttribute.create(
|
61
|
-
step: step_record,
|
96
|
+
step: step_record,
|
97
|
+
attribute: attribute_map[attr_name.to_sym]
|
62
98
|
)
|
63
99
|
end
|
64
100
|
end
|
65
101
|
end
|
66
102
|
end
|
67
|
-
|
103
|
+
@workflow_id
|
104
|
+
rescue StandardError => e
|
68
105
|
puts "An error occurred: #{e.message}"
|
69
106
|
raise
|
70
107
|
end
|
@@ -8,13 +8,12 @@ module Ad
|
|
8
8
|
module Actions
|
9
9
|
# Save workflow graph to JSON file
|
10
10
|
class SaveJson
|
11
|
-
def initialize(
|
12
|
-
@
|
11
|
+
def initialize(hash)
|
12
|
+
@hash = hash
|
13
13
|
end
|
14
14
|
|
15
15
|
def save(file_name)
|
16
|
-
|
17
|
-
File.write(file_name, JSON.pretty_generate(@workflow_hash))
|
16
|
+
File.write(file_name, JSON.pretty_generate(@hash))
|
18
17
|
end
|
19
18
|
end
|
20
19
|
end
|
@@ -6,17 +6,22 @@ module Ad
|
|
6
6
|
# This class is responsible for defining the agent DSL
|
7
7
|
class AgentDsl
|
8
8
|
attr_reader :workflow
|
9
|
+
attr_accessor :workflow_id
|
9
10
|
|
10
|
-
def self.create(name, &block)
|
11
|
-
new(name).tap do |dsl|
|
11
|
+
def self.create(name, description: nil, &block)
|
12
|
+
new(name, description: description).tap do |dsl|
|
12
13
|
dsl.instance_eval(&block) if block_given?
|
13
14
|
end
|
14
15
|
end
|
15
16
|
|
16
|
-
def
|
17
|
+
def description(description)
|
18
|
+
@workflow.description(description)
|
19
|
+
end
|
20
|
+
|
21
|
+
def initialize(name, description: nil)
|
17
22
|
raise ArgumentError, 'Agent name must be a string or symbol' unless name.is_a?(String) || name.is_a?(Symbol)
|
18
23
|
|
19
|
-
@workflow = WorkflowDsl.new(name)
|
24
|
+
@workflow = WorkflowDsl.new(name, description: description)
|
20
25
|
end
|
21
26
|
|
22
27
|
def settings(&block)
|
@@ -31,28 +36,33 @@ module Ad
|
|
31
36
|
@workflow.prompts(&block)
|
32
37
|
end
|
33
38
|
|
34
|
-
def section(name, &block)
|
39
|
+
def section(name, description: nil, &block)
|
35
40
|
raise ArgumentError, 'Section name must be a string or symbol' unless name.is_a?(String) || name.is_a?(Symbol)
|
36
41
|
|
37
|
-
@workflow.section(name, &block)
|
42
|
+
@workflow.section(name, description: description, &block)
|
38
43
|
end
|
39
44
|
|
40
45
|
def save
|
41
|
-
Ad::AgentArchitecture::Dsl::Actions::SaveDatabase.new(@workflow
|
46
|
+
id = Ad::AgentArchitecture::Dsl::Actions::SaveDatabase.new(@workflow).save
|
47
|
+
@workflow_id = id
|
42
48
|
|
43
49
|
self
|
44
50
|
end
|
45
51
|
|
46
52
|
def save_json(file_name = nil)
|
47
53
|
full_file_name = file_name || 'workflow.json'
|
48
|
-
|
54
|
+
raise ArgumentError, 'Workflow needs to be saved, befor you can save JSON' unless @workflow_id
|
55
|
+
|
56
|
+
Ad::AgentArchitecture::Dsl::Actions::SaveJson.new(@workflow_id).save(full_file_name)
|
49
57
|
|
50
58
|
self
|
51
59
|
end
|
52
60
|
|
53
61
|
def save_yaml(file_name = nil)
|
54
62
|
full_file_name = file_name || 'workflow.yaml'
|
55
|
-
|
63
|
+
raise ArgumentError, 'Workflow needs to be saved, befor you can save YAML' unless @workflow_id
|
64
|
+
|
65
|
+
Ad::AgentArchitecture::Dsl::Actions::SaveYaml.new(@workflow_id).save(full_file_name)
|
56
66
|
|
57
67
|
self
|
58
68
|
end
|
@@ -5,10 +5,36 @@ module Ad
|
|
5
5
|
module Dsl
|
6
6
|
# This class is responsible for defining the attributes of a workflow
|
7
7
|
class AttributeDsl < ChildDsl
|
8
|
-
|
8
|
+
attr_reader :current_attribute
|
9
|
+
|
10
|
+
def attribute(name, type: :string, is_array: false, description: nil, &block)
|
9
11
|
raise ArgumentError, 'Attribute name must be a string or symbol' unless name.is_a?(String) || name.is_a?(Symbol)
|
10
12
|
|
11
|
-
|
13
|
+
@current_attribute = { name: name, type: type, is_array: is_array, description: description }
|
14
|
+
|
15
|
+
attributes[name] = current_attribute
|
16
|
+
|
17
|
+
instance_eval(&block) if block_given?
|
18
|
+
|
19
|
+
self
|
20
|
+
end
|
21
|
+
|
22
|
+
def description(description)
|
23
|
+
current_attribute[:description] = description
|
24
|
+
|
25
|
+
self
|
26
|
+
end
|
27
|
+
|
28
|
+
def type(type)
|
29
|
+
current_attribute[:type] = type
|
30
|
+
|
31
|
+
self
|
32
|
+
end
|
33
|
+
|
34
|
+
def is_array(is_array)
|
35
|
+
current_attribute[:is_array] = is_array
|
36
|
+
|
37
|
+
self
|
12
38
|
end
|
13
39
|
end
|
14
40
|
end
|
@@ -17,6 +17,11 @@ module Ad
|
|
17
17
|
settings[name.to_sym] || settings[name.to_s]
|
18
18
|
end
|
19
19
|
|
20
|
+
def setting_value(name, default: nil)
|
21
|
+
lookup = get_setting(name)
|
22
|
+
lookup ? lookup[:value] : default
|
23
|
+
end
|
24
|
+
|
20
25
|
def attributes
|
21
26
|
data[:attributes]
|
22
27
|
end
|
@@ -33,9 +38,9 @@ module Ad
|
|
33
38
|
prompts[name.to_sym] || prompts[name.to_s]
|
34
39
|
end
|
35
40
|
|
36
|
-
def
|
41
|
+
def prompt_content(name, default: nil)
|
37
42
|
lookup = get_prompt(name)
|
38
|
-
lookup ? lookup[:content] :
|
43
|
+
lookup ? lookup[:content] : default
|
39
44
|
end
|
40
45
|
end
|
41
46
|
end
|
@@ -5,17 +5,37 @@ module Ad
|
|
5
5
|
module Dsl
|
6
6
|
# This class is responsible for defining the prompts of a workflow
|
7
7
|
class PromptDsl < ChildDsl
|
8
|
-
|
8
|
+
attr_reader :current_prompt
|
9
|
+
|
10
|
+
def prompt(name, path: nil, content: nil, description: nil, &block)
|
9
11
|
raise ArgumentError, 'Prompt name must be a string or symbol' unless name.is_a?(String) || name.is_a?(Symbol)
|
10
12
|
|
11
|
-
|
13
|
+
@current_prompt = { name: name, path: path, content: content, description: description }
|
14
|
+
|
15
|
+
prompts[name] = current_prompt
|
16
|
+
|
17
|
+
instance_eval(&block) if block_given?
|
18
|
+
|
19
|
+
self
|
20
|
+
end
|
21
|
+
|
22
|
+
def description(description)
|
23
|
+
current_prompt[:description] = description
|
24
|
+
|
25
|
+
self
|
26
|
+
end
|
27
|
+
|
28
|
+
def content(content)
|
29
|
+
current_prompt[:content] = content
|
30
|
+
|
31
|
+
self
|
12
32
|
end
|
13
33
|
|
14
|
-
def
|
34
|
+
def load_file(file)
|
15
35
|
prompt_path = settings[:prompt_path]
|
16
36
|
raise 'Prompt path not defined in settings. Set "prompt_path" to the path where you are keping prompts' unless prompt_path
|
17
37
|
|
18
|
-
full_path = File.join(prompt_path, file)
|
38
|
+
full_path = File.join(prompt_path[:value], file)
|
19
39
|
File.read(full_path)
|
20
40
|
end
|
21
41
|
end
|
@@ -5,19 +5,27 @@ module Ad
|
|
5
5
|
module Dsl
|
6
6
|
# This class is responsible for creating a section in the workflow
|
7
7
|
class SectionDsl < ChildDsl
|
8
|
-
def initialize(workflow, name, order)
|
8
|
+
def initialize(workflow, name, order, description: nil)
|
9
9
|
super(workflow)
|
10
10
|
|
11
|
-
@section = { name: name, order: order, steps: [] }
|
11
|
+
@section = { name: name, order: order, description: description, steps: [] }
|
12
12
|
sections << @section
|
13
13
|
@current_step_order = 1
|
14
14
|
end
|
15
15
|
|
16
|
-
def
|
16
|
+
def description(description)
|
17
|
+
@section[:description] = description
|
18
|
+
|
19
|
+
self
|
20
|
+
end
|
21
|
+
|
22
|
+
def step(name, description: nil, &block)
|
17
23
|
raise ArgumentError, 'Step name must be a string or symbol' unless name.is_a?(String) || name.is_a?(Symbol)
|
18
24
|
|
19
|
-
StepDsl.new(workflow, @section, name, @current_step_order).instance_eval(&block)
|
25
|
+
StepDsl.new(workflow, @section, name, @current_step_order, description: description).instance_eval(&block)
|
20
26
|
@current_step_order += 1
|
27
|
+
|
28
|
+
self
|
21
29
|
end
|
22
30
|
end
|
23
31
|
end
|
@@ -5,9 +5,9 @@ module Ad
|
|
5
5
|
module Dsl
|
6
6
|
# This class is responsible for defining the settings of a workflow
|
7
7
|
class SettingsDsl < ChildDsl
|
8
|
-
def method_missing(name, *args, &block)
|
8
|
+
def method_missing(name, *args, **kwargs, &block)
|
9
9
|
if args.length == 1 && block.nil?
|
10
|
-
data[:settings][name] = args.first
|
10
|
+
data[:settings][name] = { value: args.first, description: kwargs[:description] }
|
11
11
|
else
|
12
12
|
super
|
13
13
|
end
|
@@ -10,11 +10,12 @@ module Ad
|
|
10
10
|
attr_reader :section
|
11
11
|
attr_reader :step
|
12
12
|
|
13
|
-
def initialize(workflow, section, name, order)
|
13
|
+
def initialize(workflow, section, name, order, description: nil)
|
14
14
|
super(workflow)
|
15
15
|
@step = {
|
16
16
|
name: name,
|
17
17
|
order: order,
|
18
|
+
description: description,
|
18
19
|
prompt: '',
|
19
20
|
input_attributes: [],
|
20
21
|
output_attributes: []
|
@@ -37,9 +38,13 @@ module Ad
|
|
37
38
|
end
|
38
39
|
|
39
40
|
def prompt(prompt, **_opts)
|
40
|
-
|
41
|
+
content = prompt_content(prompt)
|
42
|
+
@step[:prompt] = content || prompt
|
43
|
+
self
|
44
|
+
end
|
41
45
|
|
42
|
-
|
46
|
+
def description(description)
|
47
|
+
@step[:description] = description
|
43
48
|
self
|
44
49
|
end
|
45
50
|
|
@@ -9,11 +9,16 @@ module Ad
|
|
9
9
|
|
10
10
|
attr_reader :data
|
11
11
|
|
12
|
-
def initialize(name)
|
13
|
-
@data = { name: name, sections: [], attributes: {}, prompts: {}, settings: {} }
|
12
|
+
def initialize(name, description: nil)
|
13
|
+
@data = { name: name, description: description, sections: [], attributes: {}, prompts: {}, settings: {} }
|
14
14
|
@current_section_order = 1
|
15
15
|
end
|
16
16
|
|
17
|
+
def description(description)
|
18
|
+
@data[:description] = description
|
19
|
+
self
|
20
|
+
end
|
21
|
+
|
17
22
|
def settings(&block)
|
18
23
|
dsl = SettingsDsl.new(self)
|
19
24
|
dsl.instance_eval(&block) if block_given?
|
@@ -32,8 +37,8 @@ module Ad
|
|
32
37
|
dsl
|
33
38
|
end
|
34
39
|
|
35
|
-
def section(name, &block)
|
36
|
-
dsl = SectionDsl.new(self, name, @current_section_order)
|
40
|
+
def section(name, description: nil, &block)
|
41
|
+
dsl = SectionDsl.new(self, name, @current_section_order, description: description)
|
37
42
|
@current_section_order += 1
|
38
43
|
dsl.instance_eval(&block) if block_given?
|
39
44
|
dsl
|
@@ -0,0 +1,132 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Ad
|
4
|
+
module AgentArchitecture
|
5
|
+
module Report
|
6
|
+
# This class is responsible for building the agent data for export or visualization
|
7
|
+
class AgentDataBuilder
|
8
|
+
attr_reader :workflow_id, :data
|
9
|
+
|
10
|
+
def initialize(workflow_id)
|
11
|
+
@workflow_id = workflow_id
|
12
|
+
@data = {}
|
13
|
+
end
|
14
|
+
|
15
|
+
def build
|
16
|
+
fetch_workflow
|
17
|
+
fetch_sections
|
18
|
+
fetch_attributes
|
19
|
+
fetch_prompts
|
20
|
+
data
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def fetch_workflow
|
26
|
+
workflow = Ad::AgentArchitecture::Database::Workflow.where(id: workflow_id).first
|
27
|
+
|
28
|
+
@data[:name] = workflow.name
|
29
|
+
@data[:title] = Cmdlet::Case::Title.new.call(workflow.name)
|
30
|
+
@data[:description] = workflow.description
|
31
|
+
@data[:settings] = fetch_settings(workflow)
|
32
|
+
end
|
33
|
+
|
34
|
+
def fetch_sections
|
35
|
+
@data[:sections] = []
|
36
|
+
sections = Ad::AgentArchitecture::Database::Section.where(workflow_id: workflow_id).order(:order)
|
37
|
+
sections.each do |section|
|
38
|
+
section_data = {
|
39
|
+
name: section.name,
|
40
|
+
title: Cmdlet::Case::Title.new.call(section.name),
|
41
|
+
order: section.order,
|
42
|
+
description: section.description,
|
43
|
+
steps: fetch_steps(section.id)
|
44
|
+
}
|
45
|
+
@data[:sections] << section_data
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def fetch_steps(section_id)
|
50
|
+
steps = Ad::AgentArchitecture::Database::Step.where(section_id: section_id).order(:order)
|
51
|
+
steps.map do |step|
|
52
|
+
{
|
53
|
+
name: step.name,
|
54
|
+
title: Cmdlet::Case::Title.new.call(step.name),
|
55
|
+
order: step.order,
|
56
|
+
description: step.description,
|
57
|
+
prompt: step.prompt,
|
58
|
+
input_attributes: fetch_input_attributes(step.id),
|
59
|
+
output_attributes: fetch_output_attributes(step.id)
|
60
|
+
}
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def fetch_input_attributes(step_id)
|
65
|
+
Ad::AgentArchitecture::Database::InputAttribute.where(step_id: step_id).map do |input|
|
66
|
+
attribute = input.attribute
|
67
|
+
{
|
68
|
+
name: attribute.name,
|
69
|
+
type: attribute.type,
|
70
|
+
is_array: attribute.is_array,
|
71
|
+
description: attribute.description,
|
72
|
+
title: Cmdlet::Case::Title.new.call(attribute.name)
|
73
|
+
}
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def fetch_output_attributes(step_id)
|
78
|
+
Ad::AgentArchitecture::Database::OutputAttribute.where(step_id: step_id).map do |output|
|
79
|
+
attribute = output.attribute
|
80
|
+
{
|
81
|
+
name: attribute.name,
|
82
|
+
type: attribute.type,
|
83
|
+
is_array: attribute.is_array,
|
84
|
+
description: attribute.description,
|
85
|
+
title: Cmdlet::Case::Title.new.call(attribute.name)
|
86
|
+
}
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def fetch_attributes
|
91
|
+
@data[:attributes] = {}
|
92
|
+
attributes = Ad::AgentArchitecture::Database::Attribute.where(workflow_id: workflow_id)
|
93
|
+
attributes.each do |attr|
|
94
|
+
@data[:attributes][attr.name.to_sym] = {
|
95
|
+
name: attr.name,
|
96
|
+
type: attr.type,
|
97
|
+
is_array: attr.is_array,
|
98
|
+
description: attr.description,
|
99
|
+
title: Cmdlet::Case::Title.new.call(attr.name)
|
100
|
+
}
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
def fetch_prompts
|
105
|
+
@data[:prompts] = {}
|
106
|
+
prompts = Ad::AgentArchitecture::Database::Prompt.where(workflow_id: workflow_id)
|
107
|
+
prompts.each do |prompt|
|
108
|
+
@data[:prompts][prompt.name.to_sym] = {
|
109
|
+
name: prompt.name,
|
110
|
+
content: prompt.content,
|
111
|
+
description: prompt.description,
|
112
|
+
title: Cmdlet::Case::Title.new.call(prompt.name)
|
113
|
+
}
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
def fetch_settings(_workflow)
|
118
|
+
result = {}
|
119
|
+
settings = Ad::AgentArchitecture::Database::Setting.where(workflow_id: workflow_id)
|
120
|
+
settings.each do |setting|
|
121
|
+
result[setting.name.to_sym] = {
|
122
|
+
value: setting.value,
|
123
|
+
description: setting.description,
|
124
|
+
title: Cmdlet::Case::Title.new.call(setting.name)
|
125
|
+
}
|
126
|
+
end
|
127
|
+
result
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
@@ -3,6 +3,7 @@
|
|
3
3
|
require 'sequel'
|
4
4
|
require 'sqlite3'
|
5
5
|
require 'k_log'
|
6
|
+
require 'cmdlet'
|
6
7
|
|
7
8
|
require 'ad/agent_architecture/version'
|
8
9
|
require 'ad/agent_architecture/database/create_schema'
|
@@ -26,6 +27,7 @@ require 'ad/agent_architecture/dsl/actions/save_database'
|
|
26
27
|
require 'ad/agent_architecture/dsl/actions/save_json'
|
27
28
|
require 'ad/agent_architecture/dsl/actions/save_yaml'
|
28
29
|
require 'ad/agent_architecture/report/dsl_generator'
|
30
|
+
require 'ad/agent_architecture/report/agent_data_builder'
|
29
31
|
require 'ad/agent_architecture/report/workflow_detail_report'
|
30
32
|
require 'ad/agent_architecture/report/workflow_list_report'
|
31
33
|
|
data/package-lock.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "ad-agent_architecture",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.24",
|
4
4
|
"lockfileVersion": 3,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "ad-agent_architecture",
|
9
|
-
"version": "0.0.
|
9
|
+
"version": "0.0.24",
|
10
10
|
"devDependencies": {
|
11
11
|
"@klueless-js/semantic-release-rubygem": "github:klueless-js/semantic-release-rubygem",
|
12
12
|
"@semantic-release/changelog": "^6.0.3",
|
data/package.json
CHANGED
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ad-agent_architecture
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.24
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Cruwys
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-07-
|
11
|
+
date: 2024-07-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: cmdlet
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: k_log
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -102,6 +116,7 @@ files:
|
|
102
116
|
- lib/ad/agent_architecture/dsl/settings_dsl.rb
|
103
117
|
- lib/ad/agent_architecture/dsl/step_dsl.rb
|
104
118
|
- lib/ad/agent_architecture/dsl/workflow_dsl.rb
|
119
|
+
- lib/ad/agent_architecture/report/agent_data_builder.rb
|
105
120
|
- lib/ad/agent_architecture/report/dsl_generator.rb
|
106
121
|
- lib/ad/agent_architecture/report/workflow_detail_report.rb
|
107
122
|
- lib/ad/agent_architecture/report/workflow_list_report.rb
|