feat(yamlprogram): add ExecYaml runner, schema + array fields#28
Open
feat(yamlprogram): add ExecYaml runner, schema + array fields#28
Conversation
- Extend TTL test durations from 100ms to 1s for better stability - Increase timing checks from 150ms/110ms to 300ms/200ms - Adjust sequential test TTL from 100ms to 500ms with proportional waits - Reduces test flakiness in different execution environments Signed-off-by: assagman <ahmetsercansagman@gmail.com>
- Add Parallel module type for concurrent execution of multiple modules - Add MultiChainComparison module type for answer synthesis - Update YAML schema with new module fields (modules, max_workers, source_module, m) - Implement factory methods for creating Parallel and MCC modules - Add validation for new module types with proper error handling - Create pipeline_web_summary.yaml example for web search/summarization - Improve pipeline structure display to handle modules without signatures - Add tilde expansion support for filesystem paths Signed-off-by: assagman <ahmetsercansagman@gmail.com>
Move the YAML pipeline builder into `internal/yamlprogram` and update the `examples/yaml_program` runner to load/validate specs, emit a JSON Schema, and execute prebuilt workflows (deep research, security scan, dev loop). Signed-off-by: assagman <ahmetsercansagman@gmail.com>
Expose YAML program execution from the public API (dsgo.ExecYaml) and re-export the generated YAML schema. Add internal/yamlprogram.Exec to load/build/execute a spec with an optional LM factory override. Refactor yamlprogram internals to use core/module/mcp types directly and simplify the yaml_program example to call dsgo.ExecYaml. Signed-off-by: assagman <ahmetsercansagman@gmail.com>
- Introduce `FieldTypeArray` with element typing for signatures and schemas - Teach typed tag parser to infer slice fields as arrays with element types - Generate and ship `dsgo-program.schema.json` for YAML program validation - Restructure `tool_sources` to group MCP providers and builtin tools consistently Signed-off-by: assagman <ahmetsercansagman@gmail.com>
Some MCP servers return `inputSchema.required: null`; treat it as “all properties required” and ensure we never keep a nil slice so downstream JSON/tool conversion stays stable. Also updates the software_dev YAML example to a focused Go+HTMX flow and constrains tool allowed_dirs to the current workspace. Signed-off-by: assagman <ahmetsercansagman@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
dsgo.ExecYaml(ctx, path, ...)public entrypoint backed byinternal/yamlprogramto load/build/execute YAML-defined DSGo programsmodule.Programpipelinedsgo-program.schema.json) for editor autocomplete/validationarrayfields (coreFieldTypeArray, element typing) and wire it through YAML signatures + typed tag parsinginputSchema.requiredisnull(treat as “all params required”)