@solidxai/core 0.1.13-beta.2 → 0.1.13-beta.4

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.
Files changed (134) hide show
  1. package/dist/commands/seed.command.d.ts +2 -0
  2. package/dist/commands/seed.command.d.ts.map +1 -1
  3. package/dist/commands/seed.command.js +21 -0
  4. package/dist/commands/seed.command.js.map +1 -1
  5. package/dist/entities/saved-filters.entity.js +3 -3
  6. package/dist/entities/saved-filters.entity.js.map +1 -1
  7. package/dist/entities/workflow-trigger-execution.entity.js +1 -1
  8. package/dist/entities/workflow-trigger-execution.entity.js.map +1 -1
  9. package/dist/index.d.ts +2 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +2 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/interfaces.d.ts +1 -0
  14. package/dist/interfaces.d.ts.map +1 -1
  15. package/dist/interfaces.js.map +1 -1
  16. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  17. package/dist/seeders/module-metadata-seeder.service.js +44 -27
  18. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  19. package/dist/seeders/seed-data/solid-core-metadata.json +80 -67
  20. package/dist/services/workflow/nodes/execution-fail.node.d.ts +6 -0
  21. package/dist/services/workflow/nodes/execution-fail.node.d.ts.map +1 -0
  22. package/dist/services/workflow/nodes/execution-fail.node.js +81 -0
  23. package/dist/services/workflow/nodes/execution-fail.node.js.map +1 -0
  24. package/dist/services/workflow/nodes/for-each.node.d.ts +2 -0
  25. package/dist/services/workflow/nodes/for-each.node.d.ts.map +1 -1
  26. package/dist/services/workflow/nodes/for-each.node.js +114 -5
  27. package/dist/services/workflow/nodes/for-each.node.js.map +1 -1
  28. package/dist/services/workflow/nodes/if.node.d.ts.map +1 -1
  29. package/dist/services/workflow/nodes/if.node.js +7 -0
  30. package/dist/services/workflow/nodes/if.node.js.map +1 -1
  31. package/dist/services/workflow/nodes/log-write.node.d.ts.map +1 -1
  32. package/dist/services/workflow/nodes/log-write.node.js +2 -0
  33. package/dist/services/workflow/nodes/log-write.node.js.map +1 -1
  34. package/dist/services/workflow/nodes/loop-until.node.d.ts +12 -0
  35. package/dist/services/workflow/nodes/loop-until.node.d.ts.map +1 -0
  36. package/dist/services/workflow/nodes/loop-until.node.js +281 -0
  37. package/dist/services/workflow/nodes/loop-until.node.js.map +1 -0
  38. package/dist/services/workflow/nodes/parallel.node.d.ts.map +1 -1
  39. package/dist/services/workflow/nodes/parallel.node.js +7 -0
  40. package/dist/services/workflow/nodes/parallel.node.js.map +1 -1
  41. package/dist/services/workflow/nodes/sequential.node.d.ts.map +1 -1
  42. package/dist/services/workflow/nodes/sequential.node.js +7 -0
  43. package/dist/services/workflow/nodes/sequential.node.js.map +1 -1
  44. package/dist/services/workflow/nodes/switch.node.d.ts.map +1 -1
  45. package/dist/services/workflow/nodes/switch.node.js +7 -0
  46. package/dist/services/workflow/nodes/switch.node.js.map +1 -1
  47. package/dist/services/workflow/workflow-definition-validator.service.d.ts.map +1 -1
  48. package/dist/services/workflow/workflow-definition-validator.service.js +5 -2
  49. package/dist/services/workflow/workflow-definition-validator.service.js.map +1 -1
  50. package/dist/services/workflow/workflow-expression.service.d.ts.map +1 -1
  51. package/dist/services/workflow/workflow-expression.service.js +5 -0
  52. package/dist/services/workflow/workflow-expression.service.js.map +1 -1
  53. package/dist/services/workflow/workflow-node-registry.service.d.ts +2 -1
  54. package/dist/services/workflow/workflow-node-registry.service.d.ts.map +1 -1
  55. package/dist/services/workflow/workflow-node-registry.service.js +7 -0
  56. package/dist/services/workflow/workflow-node-registry.service.js.map +1 -1
  57. package/dist/services/workflow/workflow-runtime.service.d.ts +8 -0
  58. package/dist/services/workflow/workflow-runtime.service.d.ts.map +1 -1
  59. package/dist/services/workflow/workflow-runtime.service.js +197 -32
  60. package/dist/services/workflow/workflow-runtime.service.js.map +1 -1
  61. package/dist/solid-core.module.d.ts.map +1 -1
  62. package/dist/solid-core.module.js +4 -0
  63. package/dist/solid-core.module.js.map +1 -1
  64. package/dist/types/workflow-dsl.types.d.ts +14 -0
  65. package/dist/types/workflow-dsl.types.d.ts.map +1 -1
  66. package/dist/types/workflow-dsl.types.js.map +1 -1
  67. package/dist-tests/api/authenticate.spec.js +119 -0
  68. package/dist-tests/api/authenticate.spec.js.map +1 -0
  69. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js +97 -0
  70. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js.map +1 -0
  71. package/dist-tests/api/ping.spec.js +21 -0
  72. package/dist-tests/api/ping.spec.js.map +1 -0
  73. package/dist-tests/helpers/auth.js +41 -0
  74. package/dist-tests/helpers/auth.js.map +1 -0
  75. package/dist-tests/helpers/env.js +11 -0
  76. package/dist-tests/helpers/env.js.map +1 -0
  77. package/docs/agent-builder/notebook-lm-prompt-for-agent-builder.md +136 -0
  78. package/docs/agent-builder/team-ready-note-agent-builder.md +305 -0
  79. package/docs/agent-hub-grooming.md +301 -0
  80. package/docs/dashboards/AGENTIC_DASHBOARD_IMPLEMENTATION_PLAN.md +438 -0
  81. package/docs/dashboards/dashboard-curl-smoke-tests.txt +146 -0
  82. package/docs/dashboards/delete-legacy-dashboard-metadata.sql +172 -0
  83. package/docs/datasource-introspection-ddl-analysis.md +326 -0
  84. package/docs/datasource-introspection-implementation-plan.md +306 -0
  85. package/docs/grouping-enhancements.md +89 -0
  86. package/docs/java-spring/README.md +3 -0
  87. package/docs/java-spring/solid-core-module-deep-dive-report.md +1317 -0
  88. package/docs/module-package-import-handoff.md +691 -0
  89. package/docs/seed-changes.md +65 -0
  90. package/docs/test-data-workflow.md +200 -0
  91. package/docs/type-declaration-import-issue.md +24 -0
  92. package/docs/workflow/business-automation-example-notes.md +309 -0
  93. package/docs/workflow/control-flow-node-addition-sop.md +324 -0
  94. package/docs/workflow/data-engineering-pipeline-example-notes.md +330 -0
  95. package/docs/workflow/foreach-example-notes.md +187 -0
  96. package/docs/workflow/hello-world-example-notes.md +271 -0
  97. package/docs/workflow/kestra-concepts-plugins-blueprints.md +315 -0
  98. package/docs/workflow/loop-until-example-notes.md +198 -0
  99. package/docs/workflow/microservices-and-apis-example-notes.md +264 -0
  100. package/docs/workflow/samples.md +25 -0
  101. package/docs/workflow/what-is-kestra.md +79 -0
  102. package/docs/workflow/workflow-core-module-handoff-summary.md +191 -0
  103. package/docs/workflow/workflow-module-brd.md +185 -0
  104. package/docs/workflow/workflow-module-domain-model.md +252 -0
  105. package/docs/workflow/workflow-module-metadata-dsl.md +302 -0
  106. package/docs/workflow/workflow-module-technical-spec.md +293 -0
  107. package/docs/workflow/workflow-node-type-contracts.md +635 -0
  108. package/docs/workflow/workflow-node-ui-metadata-contract.md +1262 -0
  109. package/docs/workflow/workflow-solidx-model-field-spec.md +284 -0
  110. package/package.json +1 -1
  111. package/src/commands/seed.command.ts +19 -0
  112. package/src/entities/saved-filters.entity.ts +3 -3
  113. package/src/entities/workflow-trigger-execution.entity.ts +1 -1
  114. package/src/index.ts +2 -0
  115. package/src/interfaces.ts +1 -0
  116. package/src/seeders/module-metadata-seeder.service.ts +50 -36
  117. package/src/seeders/seed-data/solid-core-metadata.json +80 -67
  118. package/src/services/workflow/nodes/execution-fail.node.ts +82 -0
  119. package/src/services/workflow/nodes/for-each.node.ts +140 -6
  120. package/src/services/workflow/nodes/if.node.ts +7 -0
  121. package/src/services/workflow/nodes/log-write.node.ts +2 -0
  122. package/src/services/workflow/nodes/loop-until.node.ts +343 -0
  123. package/src/services/workflow/nodes/parallel.node.ts +7 -0
  124. package/src/services/workflow/nodes/sequential.node.ts +7 -0
  125. package/src/services/workflow/nodes/switch.node.ts +7 -0
  126. package/src/services/workflow/workflow-definition-validator.service.ts +5 -2
  127. package/src/services/workflow/workflow-expression.service.ts +5 -0
  128. package/src/services/workflow/workflow-node-registry.service.ts +11 -0
  129. package/src/services/workflow/workflow-runtime.service.ts +274 -39
  130. package/src/solid-core.module.ts +4 -0
  131. package/src/types/workflow-dsl.types.ts +43 -0
  132. package/.claude/settings.local.json +0 -16
  133. package/CLAUDE.md +0 -26
  134. package/src/services/1.js +0 -6
@@ -0,0 +1,187 @@
1
+ # ForEach Example Notes
2
+
3
+ ## Purpose
4
+
5
+ This document captures a reference workflow for loop-based control flow using `ForEach`. It fills an important gap in the example set by showing how repeated execution over a list of values should be represented in topology and editor views.
6
+
7
+ ---
8
+
9
+ ## Example Workflow YAML
10
+
11
+ ```yaml
12
+ id: foreach_example
13
+ namespace: my.namespace
14
+
15
+ tasks:
16
+ - id: for_each_loop
17
+ type: io.kestra.core.tasks.flows.ForEach
18
+ values: ["item_1", "item_2", "item_3"]
19
+ tasks:
20
+ - id: print_value
21
+ type: io.kestra.core.tasks.scripts.Bash
22
+ commands:
23
+ - echo "Current loop value is {{ taskrun.value }}"
24
+ ```
25
+
26
+ ---
27
+
28
+ ## What This Example Adds
29
+
30
+ This example is useful because it shows:
31
+
32
+ - iterative control flow
33
+ - a loop container node
34
+ - child tasks executed once per loop item
35
+ - loop-scoped runtime values such as `taskrun.value`
36
+
37
+ It is the cleanest reference for repeated execution semantics in the workflow DSL.
38
+
39
+ ---
40
+
41
+ ## High-Level Structure
42
+
43
+ ```text
44
+ Start
45
+ |
46
+ v
47
+ for_each_loop
48
+ |
49
+ v
50
+ print_value
51
+ |
52
+ v
53
+ End
54
+ ```
55
+
56
+ Conceptually, the structure is:
57
+
58
+ ```text
59
+ Workflow
60
+ └── for_each_loop
61
+ └── print_value
62
+ ```
63
+
64
+ Runtime interpretation:
65
+
66
+ ```text
67
+ for_each_loop over ["item_1", "item_2", "item_3"]
68
+ - run print_value with taskrun.value = "item_1"
69
+ - run print_value with taskrun.value = "item_2"
70
+ - run print_value with taskrun.value = "item_3"
71
+ ```
72
+
73
+ ---
74
+
75
+ ## Main Note
76
+
77
+ ### Example With `ForEach`
78
+
79
+ This is the key purpose of the example.
80
+
81
+ It shows that a loop is not just a visual group. It represents repeated execution of its child tasks across a collection of values.
82
+
83
+ For SolidX, the topology should communicate:
84
+
85
+ - the loop container
86
+ - the loop body
87
+ - that child tasks belong to the repeated block
88
+
89
+ The canvas does not need to simulate every repeated instance visually. It should represent the structural loop definition cleanly.
90
+
91
+ ---
92
+
93
+ ## Topology Notes
94
+
95
+ The screenshot suggests:
96
+
97
+ - `ForEach` appears as a grouped/container region
98
+ - the loop node is rendered inside that region
99
+ - the child task appears within the same grouped flow area
100
+ - the overall sequence still remains vertical and directional
101
+
102
+ This means the renderer should support a loop-specific grouped layout similar to other control-flow containers, but with loop semantics instead of branch semantics.
103
+
104
+ ---
105
+
106
+ ## Loop Semantics Notes
107
+
108
+ This example is important because it introduces loop-local context:
109
+
110
+ - `taskrun.value`
111
+
112
+ That means the editor and docs system will eventually need to help users understand:
113
+
114
+ - which context values are available inside loops
115
+ - that those values only exist within the loop body
116
+ - how expressions differ between workflow scope and loop scope
117
+
118
+ This is a documentation and autocomplete concern as much as a topology concern.
119
+
120
+ ---
121
+
122
+ ## Implications For SolidX Flow Modeling
123
+
124
+ This example implies the flow model should support a distinct category for loop containers.
125
+
126
+ Useful structural categories now include:
127
+
128
+ - simple task node
129
+ - trigger group
130
+ - branch/control-flow container
131
+ - nested/group container
132
+ - loop container
133
+
134
+ For `ForEach` specifically, the model should preserve:
135
+
136
+ - loop source values
137
+ - child task list
138
+ - loop-local expression scope
139
+
140
+ ---
141
+
142
+ ## Editor Notes
143
+
144
+ This example is a good reminder that the editor should remain DSL-driven.
145
+
146
+ For a loop:
147
+
148
+ - the source of truth is the `ForEach` node definition
149
+ - the canvas should reflect loop structure
150
+ - the user should edit loop configuration from metadata/schema, not by drawing repeated paths manually
151
+
152
+ This fits well with the current direction:
153
+
154
+ - code + flow are the primary surfaces
155
+ - node editing is modal
156
+ - docs are contextual
157
+
158
+ ---
159
+
160
+ ## Future UX Notes
161
+
162
+ This example points to a few future needs:
163
+
164
+ - loop-aware docs for `taskrun.value`
165
+ - loop-container editing modal
166
+ - schema-driven configuration for `values`
167
+ - clear distinction between loop definition and loop runtime iterations
168
+
169
+ ---
170
+
171
+ ## Screenshot References
172
+
173
+ This screenshot informed the notes above:
174
+
175
+ - `/var/folders/z_/h0rqj1693gs4cxm3k_vks86c0000gn/T/TemporaryItems/NSIRD_screencaptureui_ptomjl/Screenshot 2026-07-10 at 17.17.48.png`
176
+
177
+ ---
178
+
179
+ ## Recommended Follow-On Use
180
+
181
+ This example should be used as a reference for:
182
+
183
+ 1. `ForEach` node rendering
184
+ 2. loop-container layout rules
185
+ 3. loop-local expression awareness
186
+ 4. schema-driven loop configuration UX
187
+ 5. future autocomplete help for loop scope values
@@ -0,0 +1,271 @@
1
+ # Hello World Example Notes
2
+
3
+ ## Purpose
4
+
5
+ This document captures a simple reference workflow with:
6
+
7
+ - a disabled schedule trigger
8
+ - one workflow input
9
+ - a linear task sequence
10
+ - cross-task output references in the final log message
11
+
12
+ Compared with the other examples, this one is intentionally simple and is useful as the baseline topology for a trigger-driven sequential workflow.
13
+
14
+ ---
15
+
16
+ ## Example Workflow YAML
17
+
18
+ ```yaml
19
+ id: hello-world
20
+ namespace: tutorial
21
+ labels:
22
+ name: Hello World
23
+
24
+ triggers:
25
+ - id: daily
26
+ type: io.kestra.plugin.core.trigger.Schedule
27
+ cron: 0 9 * * *
28
+ disabled: true
29
+
30
+ inputs:
31
+ - id: user
32
+ type: STRING
33
+ defaults: Rick Astley
34
+
35
+ tasks:
36
+ - id: first_task
37
+ type: io.kestra.plugin.core.output.OutputValues
38
+ description: Return a value used later in the logged greeting.
39
+ values:
40
+ message: "thrilled"
41
+
42
+ - id: second_task
43
+ type: io.kestra.plugin.scripts.shell.Commands
44
+ description: Run quick shell commands and expose a value as output.
45
+ commands:
46
+ - sleep 0.42
47
+ - echo '::{"outputs":{"returned_data":"mydata"}}::'
48
+
49
+ - id: hello_world
50
+ type: io.kestra.plugin.core.log.Log
51
+ description: Log a welcome message using the inputs and earlier outputs.
52
+ message: |
53
+ Welcome to Kestra, {{ inputs.user }}!
54
+ We are {{ outputs.first_task.values.message }} to have you. Here is your output from the second task: {{outputs.second_task.vars}}.
55
+
56
+ description: |
57
+ **Use case:** Intro to Kestra that collects a `user` input and writes a friendly log.
58
+ **Trigger:** Disabled daily run at 09:00, left in place to show how scheduling works.
59
+ **Highlights:**
60
+ - Emit sample values to demonstrate how outputs travel between tasks.
61
+ - Run a shell command and surface its output for downstream use.
62
+ - Log the combined greeting using both inputs and prior outputs.
63
+ ```
64
+
65
+ ---
66
+
67
+ ## What This Example Adds
68
+
69
+ This example is useful because it is the cleanest reference for:
70
+
71
+ - a simple trigger group
72
+ - a simple top-level input
73
+ - a purely linear task flow
74
+ - output propagation across multiple tasks
75
+ - a beginner-friendly workflow shape
76
+
77
+ It is a good baseline workflow to validate that the editor handles the most common happy path before layering in control flow and nested groups.
78
+
79
+ ---
80
+
81
+ ## High-Level Structure
82
+
83
+ ```text
84
+ Triggers
85
+ └── daily
86
+
87
+ Main Flow
88
+ first_task
89
+ |
90
+ v
91
+ second_task
92
+ |
93
+ v
94
+ hello_world
95
+ ```
96
+
97
+ Another useful linear representation:
98
+
99
+ ```text
100
+ Start
101
+ |
102
+ v
103
+ [trigger group: daily]
104
+ |
105
+ v
106
+ first_task
107
+ |
108
+ v
109
+ second_task
110
+ |
111
+ v
112
+ hello_world
113
+ |
114
+ v
115
+ End
116
+ ```
117
+
118
+ ---
119
+
120
+ ## Main Note
121
+
122
+ ### Example With Trigger
123
+
124
+ This is the key point of this example.
125
+
126
+ It confirms the simpler trigger case:
127
+
128
+ - one schedule trigger
129
+ - one straight-line task chain
130
+ - no branching
131
+ - no nested control-flow container
132
+
133
+ This makes it a strong baseline reference for trigger-aware topology rendering.
134
+
135
+ ---
136
+
137
+ ## Trigger Notes
138
+
139
+ The screenshots again reinforce the trigger-group treatment:
140
+
141
+ - triggers appear in a dedicated grouped region
142
+ - they are visually distinct from normal tasks
143
+ - the group connects into the main workflow sequence
144
+ - disabled triggers are still shown
145
+
146
+ For SolidX:
147
+
148
+ - the trigger group should remain visible in both topology and edit views
149
+ - disabled state should be preserved in the rendered metadata
150
+ - trigger visualization should not require trigger editing to be complete
151
+
152
+ ---
153
+
154
+ ## Inputs Notes
155
+
156
+ This example includes one top-level input:
157
+
158
+ - `user`
159
+
160
+ That makes it useful as a lightweight reference for workflow-level inputs without the extra complexity of multiple configurable runtime endpoints.
161
+
162
+ The workflow editor will eventually need to support:
163
+
164
+ - displaying workflow inputs clearly
165
+ - editing them through code first
166
+ - later, optionally surfacing them in a schema-driven workflow settings experience
167
+
168
+ ---
169
+
170
+ ## Output Propagation Notes
171
+
172
+ This example is also a nice reference for how outputs flow between tasks.
173
+
174
+ ### Output Usage Pattern
175
+
176
+ - `first_task` emits `values.message`
177
+ - `second_task` emits shell-derived output data
178
+ - `hello_world` consumes both
179
+
180
+ This is useful for docs and UI because it demonstrates:
181
+
182
+ - task outputs are part of the workflow authoring experience
183
+ - users need help understanding available upstream outputs
184
+ - code completion and docs should eventually assist with these references
185
+
186
+ The final log task is effectively a small example of expression-aware authoring.
187
+
188
+ ---
189
+
190
+ ## Topology Notes
191
+
192
+ The topology for this workflow is intentionally minimal:
193
+
194
+ - trigger group at the top
195
+ - one vertical line of tasks
196
+ - no branches
197
+ - no nested containers
198
+
199
+ This means it should be treated as the baseline layout contract for simple workflows.
200
+
201
+ If this example renders poorly, the editor is not yet ready for the more advanced ones.
202
+
203
+ ---
204
+
205
+ ## Edit View Notes
206
+
207
+ The edit screenshot again supports the same basic composition:
208
+
209
+ - left: code
210
+ - right: flow
211
+
212
+ This example is especially useful here because the structure is easy to visually verify against the YAML without much interpretation.
213
+
214
+ That makes it a good smoke-test workflow for:
215
+
216
+ - YAML-to-flow transformation
217
+ - trigger rendering
218
+ - icon mapping
219
+ - sequential node spacing
220
+ - add/edit/delete affordances
221
+
222
+ ---
223
+
224
+ ## Implications For SolidX
225
+
226
+ This example should be used as the default sanity-check workflow for the editor because it combines:
227
+
228
+ - trigger presence
229
+ - inputs
230
+ - outputs
231
+ - sequential task chaining
232
+
233
+ without introducing:
234
+
235
+ - branching
236
+ - grouping containers
237
+ - nested child tasks
238
+
239
+ So it is likely the best first example for verifying the full authoring loop.
240
+
241
+ ---
242
+
243
+ ## Pending Feature Notes
244
+
245
+ This example highlights a few future UX improvements:
246
+
247
+ - workflow-level input editing surface
248
+ - output reference assistance in code editing
249
+ - trigger-specific docs and status rendering
250
+ - task output discovery in the docs side panel or schema editor
251
+
252
+ ---
253
+
254
+ ## Screenshot References
255
+
256
+ These screenshots informed the notes above:
257
+
258
+ - `/Users/harishpatel/Desktop/Screenshot 2026-07-10 at 17.14.06.png`
259
+ - `/Users/harishpatel/Desktop/Screenshot 2026-07-10 at 17.14.19.png`
260
+
261
+ ---
262
+
263
+ ## Recommended Follow-On Use
264
+
265
+ This example should be used as a reference for:
266
+
267
+ 1. simple trigger-group rendering
268
+ 2. linear workflow layout validation
269
+ 3. workflow input handling
270
+ 4. output-reference awareness in authoring
271
+ 5. smoke-testing the end-to-end code-to-flow editor behavior