klue-langcraft 0.0.6 → 0.0.7
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 +5 -0
- data/CHANGELOG.md +7 -0
- data/README.md +0 -2
- data/docs/dsl-rules.md +262 -0
- data/docs/dsl-samples/youtube-launch-optimizer.defn.klue +58 -0
- data/docs/dsl-samples/youtube-launch-optimizer.klue +47 -0
- data/docs/project-plan/project.drawio +27 -21
- 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/lib/klue/langcraft/version.rb +1 -1
- data/package-lock.json +2 -2
- data/package.json +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3e6e99cd20f8b4020ee4a895e32c4ffdbed6f4fcb92079db78c973337a73c570
|
4
|
+
data.tar.gz: 9ac8b289d7d8d5aaa2dafec3d2181d278829df88714680cc986f4652a0d80273
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f14b941d93e2b103efa214f50bc3d9b6b151b75a8dfbd7957dec78fd3bee113b1f8026d689d7974447f6b0819b546e0daf189990505e35e056acdd1811909853
|
7
|
+
data.tar.gz: fe8998e329fbd0cc6bc84c30dee4d98a69dfebd28b8fe60ec4148a0633f11e52db3ec90f5b0cbc820399e38643bbf7799b4f88c2b8505a79db24a914feb63b78
|
@@ -8,6 +8,11 @@ KManager.action :project_plan do
|
|
8
8
|
grid_layout(y: 190, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
|
9
9
|
|
10
10
|
todo(title: 'DSLs as Code sample DSL')
|
11
|
+
todo(title: 'Automate Base DSL setup')
|
12
|
+
todo(title: 'Automate DSL definion/designer for target DSL')
|
13
|
+
# todo(title: '')
|
14
|
+
# todo(title: '')
|
15
|
+
# todo(title: '')
|
11
16
|
|
12
17
|
end
|
13
18
|
.page('To Do', theme: :style_02, margin_left: 0, margin_top: 0) do
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## [0.0.6](https://github.com/appydave/klue-langcraft/compare/v0.0.5...v0.0.6) (2024-09-20)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* update documentation for usecases ([298f85a](https://github.com/appydave/klue-langcraft/commit/298f85aabf2a8acfad4926f2127017174df03ce4))
|
7
|
+
|
1
8
|
## [0.0.5](https://github.com/appydave/klue-langcraft/compare/v0.0.4...v0.0.5) (2024-09-20)
|
2
9
|
|
3
10
|
|
data/README.md
CHANGED
@@ -50,8 +50,6 @@ You can also run `bin/console` for an interactive prompt that will allow you to
|
|
50
50
|
```bash
|
51
51
|
bin/console
|
52
52
|
|
53
|
-
Aaa::Bbb::Program.execute()
|
54
|
-
# => ""
|
55
53
|
```
|
56
54
|
|
57
55
|
`klue-langcraft` is setup with Guard, run `guard`, this will watch development file changes and run tests automatically, if successful, it will then run rubocop for style quality.
|
data/docs/dsl-rules.md
ADDED
@@ -0,0 +1,262 @@
|
|
1
|
+
# DSL Rules
|
2
|
+
|
3
|
+
The DSL using ruby like syntax that maps paramaters and values in fashion similar to the Ruby programming language.
|
4
|
+
|
5
|
+
## Data Types in DSLs
|
6
|
+
|
7
|
+
DSLs can use various types of data as input and provide flexibility in handling different kinds of values. Below are the main data types supported:
|
8
|
+
|
9
|
+
- **Strings:** Represent textual data and are enclosed in quotes. They are typically used for descriptive content or text-based parameters.
|
10
|
+
- **Symbols:** Identifiers often used for keys or labels in configuration. Symbols are concise and unique, making them ideal for representing options or identifiers.
|
11
|
+
- **Booleans:** Represent true/false values and are useful for toggling features or conditions within the DSL.
|
12
|
+
- **Integers:** Whole numbers without fractions, often used for quantities, counts, or IDs.
|
13
|
+
- **Floats:** Numbers that include decimal points, used when more precise values are required, such as for time durations or percentages.
|
14
|
+
|
15
|
+
These data types allow the DSL to handle a wide variety of input values, making it versatile for different use cases and configurations.
|
16
|
+
|
17
|
+
Note: Data types are currently only cosmetic, everything will get stored as a string internally, but we might put in some validation that can at least let us know if we've got the wrong sort of data provided.
|
18
|
+
|
19
|
+
|
20
|
+
## DSL argument rules
|
21
|
+
|
22
|
+
In Ruby, parameters (or "arguments") come in various types such as positional, optional, splat (*), and keyword arguments (**).
|
23
|
+
Each parameter type follows specific conventions, and the Ruby language uses distinct terms for each.
|
24
|
+
Below is an overview of these types and their corresponding metadata fields.
|
25
|
+
|
26
|
+
### Methods and Arguements
|
27
|
+
|
28
|
+
#### 1. Positional Parameters
|
29
|
+
- **Description**: These are the most common type of parameters. They are passed in the exact order defined in the method signature.
|
30
|
+
- **Ruby Example**: `def method(a, b)`
|
31
|
+
- **Metadata Fields**:
|
32
|
+
- `type`: positional
|
33
|
+
- `name`: a (or the parameter name)
|
34
|
+
- **Inferred Fields**:
|
35
|
+
- `required`: true
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
param :a, type: :positional # required: true
|
39
|
+
param :b, type: :positional # required: true
|
40
|
+
```
|
41
|
+
|
42
|
+
|
43
|
+
#### 2. Optional Parameters
|
44
|
+
- **Description**: These are positional parameters with default values, making them optional.
|
45
|
+
- **Ruby Example**: `def method(a = 1)`
|
46
|
+
- **Metadata Fields**:
|
47
|
+
- `type`: positional
|
48
|
+
- `name`: a
|
49
|
+
- `default_value`: 1
|
50
|
+
- **Inferred Fields**:
|
51
|
+
- `required`: false
|
52
|
+
|
53
|
+
```ruby
|
54
|
+
param :a, type: :positional, default: 1 # required: false
|
55
|
+
```
|
56
|
+
|
57
|
+
#### 3. Splat Parameters (*)
|
58
|
+
- **Description**: The splat operator `*` captures any number of additional positional arguments into an array.
|
59
|
+
- **Ruby Example**: `def method(*args)`
|
60
|
+
- **Metadata Fields**:
|
61
|
+
- `type`: splat
|
62
|
+
- `name`: args
|
63
|
+
- **Inferred Fields**:
|
64
|
+
- `required`: false
|
65
|
+
- `variadic`: true
|
66
|
+
|
67
|
+
```ruby
|
68
|
+
param :args, type: :splat # required: false, variadic: true
|
69
|
+
```
|
70
|
+
|
71
|
+
#### 4. Keyword Parameters
|
72
|
+
- **Description**: Keyword arguments are named arguments passed as a hash or individual key-value pairs. They can be required or optional.
|
73
|
+
- **Ruby Example**: `def method(a:, b: 1)`
|
74
|
+
- **For required keyword argument**:
|
75
|
+
- **Metadata Fields**:
|
76
|
+
- `type`: keyword
|
77
|
+
- `name`: a
|
78
|
+
- **Inferred Fields**:
|
79
|
+
- `required`: true
|
80
|
+
- **For optional keyword argument**:
|
81
|
+
- **Metadata Fields**:
|
82
|
+
- `type`: keyword
|
83
|
+
- `name`: b
|
84
|
+
- `default_value`: 1
|
85
|
+
- **Inferred Fields**:
|
86
|
+
- `required`: false
|
87
|
+
|
88
|
+
```ruby
|
89
|
+
param :a, type: :keyword # required: true
|
90
|
+
param :b, type: :keyword, default: 1 # required: true
|
91
|
+
```
|
92
|
+
|
93
|
+
|
94
|
+
#### 5. Double Splat Parameters (**)
|
95
|
+
- **Description**: The double splat operator `**` captures any number of additional keyword arguments into a hash.
|
96
|
+
- **Ruby Example**: `def method(**opts)`
|
97
|
+
- **Metadata Fields**:
|
98
|
+
- `type`: double_splat
|
99
|
+
- `name`: opts
|
100
|
+
- **Inferred Fields**:
|
101
|
+
- `required`: false
|
102
|
+
- `variadic`: true
|
103
|
+
|
104
|
+
```ruby
|
105
|
+
param :opts, type: :double_splat # required: false, variadic: true
|
106
|
+
```
|
107
|
+
|
108
|
+
#### Block Paramaters
|
109
|
+
|
110
|
+
The idea of ruby block parameters have been deprectated, instead the syntax has been retained for containers, see below.
|
111
|
+
|
112
|
+
## DSL Containers
|
113
|
+
|
114
|
+
Containers represent a named block that can take parameters and contain aditional nested elements.
|
115
|
+
|
116
|
+
They follow usage that is similar in concept to an XML element, in that they have a name, then can take paramaters (aka attributes) and then can be self closing.
|
117
|
+
|
118
|
+
The container will be represented as a `do ... end` when hosting child containers
|
119
|
+
The container can also be self closing, in which case there is no `do ... end`, there is just an element with zero or more parameters followed by a newline.
|
120
|
+
|
121
|
+
The root containers will be called `definition`, all other containers will be known as `node`
|
122
|
+
|
123
|
+
### Rules
|
124
|
+
|
125
|
+
These rules should be observed when dealing with different parameters and blocks
|
126
|
+
|
127
|
+
**Required vs Optional Parameters:**
|
128
|
+
|
129
|
+
- **Positional required parameters**: Defined without a default value.
|
130
|
+
- **Optional positional parameters**: Have default values or are represented with splat (`*`).
|
131
|
+
- **Required keyword arguments**: Must be passed explicitly unless a default value is provided.
|
132
|
+
- **Optional keyword arguments**: Have default values or can be omitted.
|
133
|
+
|
134
|
+
### Order and constraints
|
135
|
+
|
136
|
+
A container can take parameters based on the defined styles, but they must follow an order and adhere to constraints.
|
137
|
+
|
138
|
+
**Order/Construction:**
|
139
|
+
|
140
|
+
1. Declarative parameters (if present, the method name acts as the first positional parameter)
|
141
|
+
2. Required positional parameters
|
142
|
+
3. Optional positional parameters
|
143
|
+
4. Splat parameters, zero or one
|
144
|
+
5. Required keyword parameters
|
145
|
+
6. Optional keyword parameters
|
146
|
+
7. Double splat parameters, zero or one
|
147
|
+
|
148
|
+
**Constraints:**
|
149
|
+
|
150
|
+
1. Declarative parameters, if present, replace the first positional parameter, and no additional required positional parameters can come before it.
|
151
|
+
2. Required positional parameters must come before any optional positional parameters.
|
152
|
+
3. The splat parameter, if present, must come after all positional parameters (required and optional).
|
153
|
+
4. Keyword parameters (both required and optional) must come after all positional and splat parameters.
|
154
|
+
5. The double splat parameter, if present, must be the last parameter.
|
155
|
+
6. You can't have more than one splat or double splat parameter in a container.
|
156
|
+
7. Once you start using keyword parameters, you can't use positional parameters anymore in that container.
|
157
|
+
|
158
|
+
## Examples
|
159
|
+
|
160
|
+
The following examples will build on top of one another to create an Agent as Code DSL designed for Agent Workflows.
|
161
|
+
|
162
|
+
The example workflow will ben implementation of the agent as code for YouTube Launch Optimization.
|
163
|
+
|
164
|
+
### Root Node (#1).
|
165
|
+
|
166
|
+
The root node for a DSL is named `definition`, it behaves like any other `node` accept that you provide the DSL name.
|
167
|
+
|
168
|
+
An agentic workflow might take a name and optional description.
|
169
|
+
|
170
|
+
```ruby
|
171
|
+
# Sample DSL
|
172
|
+
workflow :youtube_launch_optimizer, 'Optimize the video publishing for YouTube Titles, Descriptions, Thumbnails and social content' do
|
173
|
+
end
|
174
|
+
```
|
175
|
+
|
176
|
+
```ruby
|
177
|
+
# DSL Definition
|
178
|
+
definition :workflow do
|
179
|
+
param :name, type: :positional
|
180
|
+
param :description, type: :positional, default: nil
|
181
|
+
end
|
182
|
+
```
|
183
|
+
|
184
|
+
### Root Node (#2).
|
185
|
+
|
186
|
+
An agentic workflow might take a name only and use a child node for description using a self closing syntax.
|
187
|
+
|
188
|
+
```ruby
|
189
|
+
# Sample DSL
|
190
|
+
workflow :youtube_launch_optimizer do
|
191
|
+
description 'Optimize the video publishing for YouTube Titles, Descriptions, Thumbnails and social content'
|
192
|
+
end
|
193
|
+
```
|
194
|
+
|
195
|
+
```ruby
|
196
|
+
# DSL Definition
|
197
|
+
definition :workflow do
|
198
|
+
param :name, type: :positional
|
199
|
+
node :description do
|
200
|
+
param :description, type: :positional
|
201
|
+
end
|
202
|
+
end
|
203
|
+
```
|
204
|
+
|
205
|
+
### Single Node with List (#3)
|
206
|
+
|
207
|
+
Here we have a single node called settings with a list of setting that contains a key and a value.
|
208
|
+
Notice `repeat: true` is used to indicate that the setting is a repeatable element.
|
209
|
+
|
210
|
+
```ruby
|
211
|
+
# Sample DSL
|
212
|
+
|
213
|
+
workflow :youtube_launch_optimizer do
|
214
|
+
settings do
|
215
|
+
setting :prompt_path, 'prompts/youtube/launch_optimizer'
|
216
|
+
setting :default_llm, :gpt4o
|
217
|
+
end
|
218
|
+
end
|
219
|
+
```
|
220
|
+
|
221
|
+
```ruby
|
222
|
+
# DSL Definition
|
223
|
+
definition :workflow do
|
224
|
+
param :name, type: :positional
|
225
|
+
node :settings do
|
226
|
+
node :setting, repeat: true do
|
227
|
+
param :key, type: :positional
|
228
|
+
param :value, type: :positional
|
229
|
+
end
|
230
|
+
end
|
231
|
+
end
|
232
|
+
```
|
233
|
+
|
234
|
+
### Single Node with list - declaritve syntax (#4)
|
235
|
+
|
236
|
+
Like before, we have a single node called settings with a list of setting that contains a key and a value.
|
237
|
+
This time the you can use the method name as the first paramater value because it is of type declarative.
|
238
|
+
This can make some DSL usage a little easier to understand
|
239
|
+
|
240
|
+
```ruby
|
241
|
+
# Sample DSL
|
242
|
+
|
243
|
+
workflow :youtube_launch_optimizer do
|
244
|
+
settings do
|
245
|
+
prompt_path 'prompts/youtube/launch_optimizer'
|
246
|
+
default_llm :gpt4o
|
247
|
+
end
|
248
|
+
end
|
249
|
+
```
|
250
|
+
|
251
|
+
```ruby
|
252
|
+
# DSL Definition
|
253
|
+
definition :workflow do
|
254
|
+
param :name, type: :positional
|
255
|
+
node :settings do
|
256
|
+
node :setting, repeat: true do
|
257
|
+
param :key, type: :declaritive # the method name typed in will be come the value for the key paramater
|
258
|
+
param :value, type: :positional
|
259
|
+
end
|
260
|
+
end
|
261
|
+
end
|
262
|
+
```
|
@@ -0,0 +1,58 @@
|
|
1
|
+
definition :workflow do
|
2
|
+
param :name, type: :positional
|
3
|
+
|
4
|
+
node :description do
|
5
|
+
param :description, type: :positional
|
6
|
+
end
|
7
|
+
|
8
|
+
node :settings do
|
9
|
+
node :setting, repeat: true do
|
10
|
+
param :key, type: :declarative # Allows method name to be used as the key
|
11
|
+
param :value, type: :positional
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
node :prompts do
|
16
|
+
node :prompt, repeat: true do
|
17
|
+
param :key, type: :positional
|
18
|
+
param :content, type: :named, name: ''
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# Section node with repeatable steps
|
23
|
+
node :section, repeat: true do
|
24
|
+
param :name, type: :positional
|
25
|
+
|
26
|
+
node :step, repeat: true do
|
27
|
+
param :key, type: :positional
|
28
|
+
|
29
|
+
node :input, repeat: true do
|
30
|
+
param :key, type: :positional
|
31
|
+
end
|
32
|
+
|
33
|
+
node :prompt do
|
34
|
+
param :key, type: :positional
|
35
|
+
end
|
36
|
+
|
37
|
+
node :output, repeat: true do
|
38
|
+
param :key, type: :positional
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
node :actions do
|
44
|
+
node :save do
|
45
|
+
end
|
46
|
+
|
47
|
+
node :save_json do
|
48
|
+
param :path, type: :positional
|
49
|
+
end
|
50
|
+
|
51
|
+
node :action, repeat: true do
|
52
|
+
param :name, type: :positional # Action name (e.g., save, save_json)
|
53
|
+
|
54
|
+
# Named parameters for actions
|
55
|
+
param :args, type: :named, name: 'args', repeat: true, optional: true # Optional args like file path for save_json
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
workflow :youtube_launch_optimizer do
|
2
|
+
description 'This workflow optimizes video launch by analyzing, preparing, and generating content for various platforms.'
|
3
|
+
|
4
|
+
settings do
|
5
|
+
prompt_path 'prompts/youtube/launch_optimizer'
|
6
|
+
default_llm :gpt4o
|
7
|
+
end
|
8
|
+
|
9
|
+
prompts do
|
10
|
+
prompt :some_prompt , content: '1-1-some.txt'
|
11
|
+
prompt :another_prompt , content: '1-2-another.txt'
|
12
|
+
prompt :yet_another_prompt , content: '1-3-yet-another.txt'
|
13
|
+
end
|
14
|
+
|
15
|
+
section 'Section 1' do
|
16
|
+
step 'Step 1' do
|
17
|
+
input :attribute1
|
18
|
+
input :attribute2
|
19
|
+
end
|
20
|
+
|
21
|
+
step 'Step 2' do
|
22
|
+
input :attribute1
|
23
|
+
prompt :some_prompt
|
24
|
+
output :attribute3
|
25
|
+
end
|
26
|
+
|
27
|
+
step 'Step 3' do
|
28
|
+
input :attribute2
|
29
|
+
input :attribute3
|
30
|
+
prompt :another_prompt
|
31
|
+
output :attribute4
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
section 'Section 2' do
|
36
|
+
step 'Other Step 1' do
|
37
|
+
input :attribute1
|
38
|
+
prompt :yet_another_prompt
|
39
|
+
output :attribute5
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
actions do
|
44
|
+
save
|
45
|
+
save_json '~/gpt-workflows/youtube-launch-optimizer.json'
|
46
|
+
end
|
47
|
+
end
|
@@ -1,56 +1,62 @@
|
|
1
|
-
<mxfile host="
|
2
|
-
<diagram id="
|
1
|
+
<mxfile host="DKN">
|
2
|
+
<diagram id="y30" 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_y30" parent="y30"/>
|
6
|
+
<mxCell id="node_root_y30" parent="page_root_y30"/>
|
7
|
+
<mxCell id="y30-2" value="DSLs as Code sample DSL" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333" vertex="1" parent="node_root_y30">
|
8
8
|
<mxGeometry x="10" y="10" width="300" height="60" as="geometry"/>
|
9
9
|
</mxCell>
|
10
|
+
<mxCell id="y30-3" value="Automate Base DSL setup" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333" vertex="1" parent="node_root_y30">
|
11
|
+
<mxGeometry x="330" y="10" width="300" height="60" as="geometry"/>
|
12
|
+
</mxCell>
|
13
|
+
<mxCell id="y30-4" value="Automate DSL definion/designer for target DSL" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333" vertex="1" parent="node_root_y30">
|
14
|
+
<mxGeometry x="650" y="10" width="300" height="60" as="geometry"/>
|
15
|
+
</mxCell>
|
10
16
|
</root>
|
11
17
|
</mxGraphModel>
|
12
18
|
</diagram>
|
13
|
-
<diagram id="
|
19
|
+
<diagram id="gaX" name="To Do">
|
14
20
|
<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
21
|
<root>
|
16
|
-
<mxCell id="
|
17
|
-
<mxCell id="
|
18
|
-
<mxCell id="
|
22
|
+
<mxCell id="page_root_gaX" parent="gaX"/>
|
23
|
+
<mxCell id="node_root_gaX" parent="page_root_gaX"/>
|
24
|
+
<mxCell id="gaX-2" value="Add guideline documentation" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_gaX">
|
19
25
|
<mxGeometry x="10" y="10" width="300" height="60" as="geometry"/>
|
20
26
|
</mxCell>
|
21
|
-
<mxCell id="
|
27
|
+
<mxCell id="gaX-3" value="Docs as Code sample DSL" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_gaX">
|
22
28
|
<mxGeometry x="330" y="10" width="300" height="60" as="geometry"/>
|
23
29
|
</mxCell>
|
24
|
-
<mxCell id="
|
30
|
+
<mxCell id="gaX-4" value="Agent as Code sample DSL" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_gaX">
|
25
31
|
<mxGeometry x="650" y="10" width="300" height="60" as="geometry"/>
|
26
32
|
</mxCell>
|
27
|
-
<mxCell id="
|
33
|
+
<mxCell id="gaX-5" value="Poly as Code sample DSL" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_gaX">
|
28
34
|
<mxGeometry x="10" y="90" width="300" height="60" as="geometry"/>
|
29
35
|
</mxCell>
|
30
|
-
<mxCell id="
|
36
|
+
<mxCell id="gaX-6" value="Voice as Code sample DSL" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_gaX">
|
31
37
|
<mxGeometry x="330" y="90" width="300" height="60" as="geometry"/>
|
32
38
|
</mxCell>
|
33
|
-
<mxCell id="
|
39
|
+
<mxCell id="gaX-7" value="Data as Code sample DSL" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_gaX">
|
34
40
|
<mxGeometry x="650" y="90" width="300" height="60" as="geometry"/>
|
35
41
|
</mxCell>
|
36
|
-
<mxCell id="
|
42
|
+
<mxCell id="gaX-8" value="Chart Design as Code sample DSL" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_gaX">
|
37
43
|
<mxGeometry x="10" y="170" width="300" height="60" as="geometry"/>
|
38
44
|
</mxCell>
|
39
|
-
<mxCell id="
|
45
|
+
<mxCell id="gaX-9" value="Video as Code sample DSL" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_gaX">
|
40
46
|
<mxGeometry x="330" y="170" width="300" height="60" as="geometry"/>
|
41
47
|
</mxCell>
|
42
|
-
<mxCell id="
|
48
|
+
<mxCell id="gaX-10" value="Image as Code sample DSL" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_gaX">
|
43
49
|
<mxGeometry x="650" y="170" width="300" height="60" as="geometry"/>
|
44
50
|
</mxCell>
|
45
51
|
</root>
|
46
52
|
</mxGraphModel>
|
47
53
|
</diagram>
|
48
|
-
<diagram id="
|
54
|
+
<diagram id="Iaa" name="Done">
|
49
55
|
<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">
|
50
56
|
<root>
|
51
|
-
<mxCell id="
|
52
|
-
<mxCell id="
|
53
|
-
<mxCell id="
|
57
|
+
<mxCell id="page_root_Iaa" parent="Iaa"/>
|
58
|
+
<mxCell id="node_root_Iaa" parent="page_root_Iaa"/>
|
59
|
+
<mxCell id="Iaa-2" value="Setup project with CI/CD, tests, linting, basic doumentation, semantic versioning" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_Iaa">
|
54
60
|
<mxGeometry x="10" y="10" width="300" height="60" as="geometry"/>
|
55
61
|
</mxCell>
|
56
62
|
</root>
|
@@ -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="302px" height="62px" viewBox="-0.5 -0.5 302 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="
|
3
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="302px" height="62px" viewBox="-0.5 -0.5 302 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_Iaa"><g data-cell-id="node_root_Iaa"><g data-cell-id="Iaa-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;">Setup project with CI/CD, tests, linting, basic doumentation, semantic versioning</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Setup project with CI/CD, tests, linting, basic do...</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="942px" height="62px" viewBox="-0.5 -0.5 942 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_y30"><g data-cell-id="node_root_y30"><g data-cell-id="y30-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;">DSLs as Code sample DSL</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">DSLs as Code sample DSL</text></switch></g></g></g><g data-cell-id="y30-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;">Automate Base DSL setup</div></div></div></foreignObject><text x="470" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Automate Base DSL setup</text></switch></g></g></g><g data-cell-id="y30-4"><g><rect x="640" y="0" width="300" height="60" rx="9" ry="9" fill="#d5e8d4" stroke="#82b366" 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;">Automate DSL definion/designer for target DSL</div></div></div></foreignObject><text x="790" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Automate DSL definion/designer for target DSL</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_QnN"><g data-cell-id="node_root_QnN"><g data-cell-id="QnN-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;">Add guideline documentation</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Add guideline documentation</text></switch></g></g></g><g data-cell-id="QnN-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;">Docs as Code sample DSL</div></div></div></foreignObject><text x="470" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Docs as Code sample DSL</text></switch></g></g></g><g data-cell-id="QnN-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;">Agent as Code sample DSL</div></div></div></foreignObject><text x="790" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Agent as Code sample DSL</text></switch></g></g></g><g data-cell-id="QnN-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;">Poly as Code sample DSL</div></div></div></foreignObject><text x="150" y="114" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Poly as Code sample DSL</text></switch></g></g></g><g data-cell-id="QnN-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;">Voice as Code sample DSL</div></div></div></foreignObject><text x="470" y="114" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Voice as Code sample DSL</text></switch></g></g></g><g data-cell-id="QnN-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;">Data as Code sample DSL</div></div></div></foreignObject><text x="790" y="114" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Data as Code sample DSL</text></switch></g></g></g><g data-cell-id="QnN-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;">Chart Design as Code sample DSL</div></div></div></foreignObject><text x="150" y="194" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Chart Design as Code sample DSL</text></switch></g></g></g><g data-cell-id="QnN-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;">Video as Code sample DSL</div></div></div></foreignObject><text x="470" y="194" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Video as Code sample DSL</text></switch></g></g></g><g data-cell-id="QnN-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;">Image as Code sample DSL</div></div></div></foreignObject><text x="790" y="194" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Image as Code sample DSL</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="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_gaX"><g data-cell-id="node_root_gaX"><g data-cell-id="gaX-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;">Add guideline documentation</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Add guideline documentation</text></switch></g></g></g><g data-cell-id="gaX-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;">Docs as Code sample DSL</div></div></div></foreignObject><text x="470" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Docs as Code sample DSL</text></switch></g></g></g><g data-cell-id="gaX-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;">Agent as Code sample DSL</div></div></div></foreignObject><text x="790" y="34" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Agent as Code sample DSL</text></switch></g></g></g><g data-cell-id="gaX-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;">Poly as Code sample DSL</div></div></div></foreignObject><text x="150" y="114" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Poly as Code sample DSL</text></switch></g></g></g><g data-cell-id="gaX-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;">Voice as Code sample DSL</div></div></div></foreignObject><text x="470" y="114" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Voice as Code sample DSL</text></switch></g></g></g><g data-cell-id="gaX-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;">Data as Code sample DSL</div></div></div></foreignObject><text x="790" y="114" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Data as Code sample DSL</text></switch></g></g></g><g data-cell-id="gaX-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;">Chart Design as Code sample DSL</div></div></div></foreignObject><text x="150" y="194" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Chart Design as Code sample DSL</text></switch></g></g></g><g data-cell-id="gaX-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;">Video as Code sample DSL</div></div></div></foreignObject><text x="470" y="194" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Video as Code sample DSL</text></switch></g></g></g><g data-cell-id="gaX-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;">Image as Code sample DSL</div></div></div></foreignObject><text x="790" y="194" fill="#333333" font-family=""Helvetica"" font-size="12px" text-anchor="middle">Image as Code sample DSL</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/package-lock.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "klue-langcraft",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.7",
|
4
4
|
"lockfileVersion": 3,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "klue-langcraft",
|
9
|
-
"version": "0.0.
|
9
|
+
"version": "0.0.7",
|
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,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: klue-langcraft
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
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-09-
|
11
|
+
date: 2024-09-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: k_log
|
@@ -48,6 +48,9 @@ files:
|
|
48
48
|
- Rakefile
|
49
49
|
- bin/console
|
50
50
|
- bin/setup
|
51
|
+
- docs/dsl-rules.md
|
52
|
+
- docs/dsl-samples/youtube-launch-optimizer.defn.klue
|
53
|
+
- docs/dsl-samples/youtube-launch-optimizer.klue
|
51
54
|
- docs/project-plan/project-plan.md
|
52
55
|
- docs/project-plan/project.drawio
|
53
56
|
- docs/project-plan/project_done.svg
|