ad-agent_architecture 0.0.22 → 0.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|