feat(dsl): bundle nested workflow tool imports and exports - #42010
Open
laipz8200 wants to merge 1 commit into
Open
feat(dsl): bundle nested workflow tool imports and exports#42010laipz8200 wants to merge 1 commit into
laipz8200 wants to merge 1 commit into
Conversation
Export referenced workflow versions as independent marked YAML files with a manifest of relationships and tool deployment settings in a ZIP archive. Restore the complete bundle with remapped references, permission checks, and atomic persistence. Support ZIP import and export in the console, workspace APIs, enterprise API, and CLI while preserving existing YAML behavior.
laipz8200
requested review from
GareArc,
JzoNgKVO,
QuantumGhost,
crazywoola,
iamjoel and
zxhlyh
as code owners
September 8, 2026 21:02
Contributor
Pyrefly Diffbase → PR--- /tmp/pyrefly_base.txt 2026-09-08 21:04:29.035748866 +0000
+++ /tmp/pyrefly_pr.txt 2026-09-08 21:04:15.223702469 +0000
@@ -8696,6 +8696,12 @@
--> tests/unit_tests/services/test_workflow_collaboration_service.py:24:56
ERROR Argument `list[int | str]` is not assignable to parameter `mentioned_user_ids` with type `Sequence[str]` in function `services.workflow_comment_service.WorkflowCommentService._filter_valid_mentioned_user_ids` [bad-argument-type]
--> tests/unit_tests/services/test_workflow_comment_service.py:147:13
+ERROR `dict[@_, @_]` is not assignable to dict value type `list[Unknown] | str` [bad-assignment]
+ --> tests/unit_tests/services/test_workflow_dsl_bundle.py:49:40
+ERROR `dict[@_, @_]` is not assignable to dict value type `list[Unknown] | str` [bad-assignment]
+ --> tests/unit_tests/services/test_workflow_dsl_bundle.py:50:44
+ERROR Argument `Literal['workflow']` is not assignable to parameter `tool_type` with type `SQLCoreOperations[ToolProviderType] | ToolProviderType` in function `models.tools.ToolLabelBinding.__init__` [bad-argument-type]
+ --> tests/unit_tests/services/test_workflow_dsl_bundle.py:98:58
ERROR No matching overload found for function `typing.MutableMapping.update` called with arguments: (dict[str, object]) [no-matching-overload]
--> tests/unit_tests/services/test_workflow_node_execution_trace_service.py:41:18
ERROR Argument `dict[str, list[dict[str, object]] | str]` is not assignable to parameter `process_data` with type `dict[str, object]` in function `_execution` [bad-argument-type]
|
Contributor
Pyrefly Type Coverage
|
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.
Summary
Workflow DSL exports currently leave workflow tool references tied to the source workspace. Export graphs containing workflow tools as a ZIP with a separate, independently marked YAML file for each referenced workflow version and a manifest containing their relationships and deployment settings.
Import reconstructs the apps, published workflow tools, parameters, labels, and deployment settings together. It remaps nested, shared, and cyclic references, including Agent tool selections and prompt mentions, and defers publication events until the complete bundle commits. Archive limits, workspace permissions, and app quotas are enforced before deployment; plugin dependencies are collected across the bundle.
Existing YAML imports and exports remain supported. Browser exports automatically include associated workflows; API and CLI clients can opt in with
include_workflow_toolsand--include-workflow-tools.Dependency
Builds on #40277 and targets
laipz8200/adapt-graphon-engine-architectureso this PR contains only the DSL bundle changes.