yugoo-design 0.2.7 → 0.2.8
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.
- package/README.md +4 -4
- package/bin/npm-agent-installation.mjs +12 -5
- package/bin/npm-desktop-preparation.mjs +47 -33
- package/bin/npm-installer-dsh.mjs +2 -1
- package/bin/npm-node-runtime.mjs +4 -3
- package/package.json +1 -1
- package/payload/desktop-preparation/materials.json +46 -46
- package/payload/desktop-preparation/qwenwork-package.mjs +26 -11
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/material.json +1 -1
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/bundle-checklist.md +1 -1
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/panel-authoring.md +6 -4
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/inspect-panel-component.mjs +27 -33
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/docs/dsl-spec.md +104 -19
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/docs/panel-uiux-standard.md +361 -90
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/docs/system-design-baseline.md +1 -1
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/SKILL.md +7 -4
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/artifact-contract.md +12 -5
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/bpmn_authoring.md +13 -10
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/canvas-guide.md +2 -1
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/schema.yaml +1 -1
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/artifact-contract.md +5 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/preview.json +1 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/schema.yaml +4 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/SKILL.md +4 -2
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/reference/artifact-contract.md +16 -8
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/schema.yaml +2 -2
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/SKILL.md +4 -0
- package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/reference/artifact-contract.md +6 -0
- package/payload/desktop-preparation/qwenwork-template/scripts/native-hook-transport.mjs +21 -15
- package/payload/desktop-preparation/qwenwork-template/scripts/qwenwork-connection.mjs +56 -11
- package/payload/desktop-preparation/src/native-hook-transport.mjs +21 -15
- package/payload/desktop-preparation/src/qwenwork-connection.mjs +56 -11
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/material.json +1 -1
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/bundle-checklist.md +1 -1
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/panel-authoring.md +6 -4
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/inspect-panel-component.mjs +27 -33
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/docs/dsl-spec.md +104 -19
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/docs/panel-uiux-standard.md +361 -90
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/docs/system-design-baseline.md +1 -1
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/SKILL.md +7 -4
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/artifact-contract.md +12 -5
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/bpmn_authoring.md +13 -10
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/canvas-guide.md +2 -1
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/schema.yaml +1 -1
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/artifact-contract.md +5 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/preview.json +1 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/schema.yaml +4 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/SKILL.md +4 -2
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/reference/artifact-contract.md +16 -8
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/schema.yaml +2 -2
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/SKILL.md +4 -0
- package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/reference/artifact-contract.md +6 -0
- package/payload/desktop-preparation/workbuddy-package.mjs +13 -8
- package/payload/overlays/claude-code/.claude-plugin/plugin.json +1 -1
- package/payload/overlays/claude-code/authoring/studio-creators/material.json +1 -1
- package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/bundle-checklist.md +1 -1
- package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/panel-authoring.md +6 -4
- package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/inspect-panel-component.mjs +27 -33
- package/payload/overlays/claude-code/authoring/studio-creators/source/docs/dsl-spec.md +104 -19
- package/payload/overlays/claude-code/authoring/studio-creators/source/docs/panel-uiux-standard.md +361 -90
- package/payload/overlays/claude-code/authoring/studio-creators/source/docs/system-design-baseline.md +1 -1
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/SKILL.md +7 -4
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/artifact-contract.md +12 -5
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/bpmn_authoring.md +13 -10
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/canvas-guide.md +2 -1
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/schema.yaml +1 -1
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/artifact-contract.md +5 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/preview.json +1 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/schema.yaml +4 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/SKILL.md +4 -2
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/reference/artifact-contract.md +16 -8
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/schema.yaml +2 -2
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/SKILL.md +4 -0
- package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/reference/artifact-contract.md +6 -0
- package/payload/overlays/claude-code/scripts/native-hook-transport.mjs +21 -15
- package/payload/overlays/codex/.codex-plugin/plugin.json +1 -1
- package/payload/overlays/codex/authoring/studio-creators/material.json +1 -1
- package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/bundle-checklist.md +1 -1
- package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/panel-authoring.md +6 -4
- package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/inspect-panel-component.mjs +27 -33
- package/payload/overlays/codex/authoring/studio-creators/source/docs/dsl-spec.md +104 -19
- package/payload/overlays/codex/authoring/studio-creators/source/docs/panel-uiux-standard.md +361 -90
- package/payload/overlays/codex/authoring/studio-creators/source/docs/system-design-baseline.md +1 -1
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/SKILL.md +7 -4
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/artifact-contract.md +12 -5
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/bpmn_authoring.md +13 -10
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/canvas-guide.md +2 -1
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/schema.yaml +1 -1
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/artifact-contract.md +5 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/preview.json +1 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/schema.yaml +4 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/SKILL.md +4 -2
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/reference/artifact-contract.md +16 -8
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/schema.yaml +2 -2
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/SKILL.md +4 -0
- package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/reference/artifact-contract.md +6 -0
- package/payload/overlays/qoder/.qoder-plugin/plugin.json +1 -1
- package/payload/overlays/qoder/authoring/studio-creators/material.json +1 -1
- package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/bundle-checklist.md +1 -1
- package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/panel-authoring.md +6 -4
- package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/inspect-panel-component.mjs +27 -33
- package/payload/overlays/qoder/authoring/studio-creators/source/docs/dsl-spec.md +104 -19
- package/payload/overlays/qoder/authoring/studio-creators/source/docs/panel-uiux-standard.md +361 -90
- package/payload/overlays/qoder/authoring/studio-creators/source/docs/system-design-baseline.md +1 -1
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/SKILL.md +7 -4
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/artifact-contract.md +12 -5
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/bpmn_authoring.md +13 -10
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/canvas-guide.md +2 -1
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/schema.yaml +1 -1
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/artifact-contract.md +5 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/preview.json +1 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/schema.yaml +4 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/SKILL.md +4 -2
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/reference/artifact-contract.md +16 -8
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/schema.yaml +2 -2
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/SKILL.md +4 -0
- package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/reference/artifact-contract.md +6 -0
- package/payload/overlays/qoder/scripts/native-hook-transport.mjs +21 -15
- package/payload/shared/authoring/panel-components.json +1015 -878
- package/payload/shared/authoring/studio-creators/material.json +1 -1
- package/payload/shared/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/bundle-checklist.md +1 -1
- package/payload/shared/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/panel-authoring.md +6 -4
- package/payload/shared/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/inspect-panel-component.mjs +27 -33
- package/payload/shared/authoring/studio-creators/source/docs/dsl-spec.md +104 -19
- package/payload/shared/authoring/studio-creators/source/docs/panel-uiux-standard.md +361 -90
- package/payload/shared/authoring/studio-creators/source/docs/system-design-baseline.md +1 -1
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/SKILL.md +7 -4
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/artifact-contract.md +12 -5
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/bpmn_authoring.md +13 -10
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/canvas-guide.md +2 -1
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/schema.yaml +1 -1
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/artifact-contract.md +5 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/preview.json +1 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/schema.yaml +4 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/SKILL.md +4 -2
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/reference/artifact-contract.md +16 -8
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/schema.yaml +2 -2
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/SKILL.md +4 -0
- package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/reference/artifact-contract.md +6 -0
- package/payload/shared/bundles/ai_agent_capabilities/locales/en-US.json +29 -28
- package/payload/shared/bundles/ai_agent_capabilities/locales/zh-CN.json +35 -34
- package/payload/shared/bundles/ai_agent_capabilities/panel.yaml +55 -75
- package/payload/shared/bundles/business_data/locales/en-US.json +2 -2
- package/payload/shared/bundles/business_data/locales/zh-CN.json +1 -1
- package/payload/shared/bundles/business_rules/locales/en-US.json +2 -3
- package/payload/shared/bundles/business_rules/locales/zh-CN.json +2 -3
- package/payload/shared/bundles/business_rules/panel.yaml +4 -10
- package/payload/shared/bundles/design_style/locales/en-US.json +4 -4
- package/payload/shared/bundles/design_style/locales/zh-CN.json +4 -4
- package/payload/shared/bundles/flow_design/LICENSE +202 -0
- package/payload/shared/bundles/flow_design/NOTICE +13 -0
- package/payload/shared/bundles/flow_design/SKILL.md +7 -4
- package/payload/shared/bundles/flow_design/THIRD_PARTY_NOTICES.md +35 -0
- package/payload/shared/bundles/flow_design/licenses/bundled-js/bpmn-moddle@9.0.4/LICENSE +21 -0
- package/payload/shared/bundles/flow_design/licenses/bundled-js/min-dash@4.2.3/LICENSE +21 -0
- package/payload/shared/bundles/flow_design/licenses/bundled-js/moddle-xml@11.0.0/LICENSE +21 -0
- package/payload/shared/bundles/flow_design/licenses/bundled-js/moddle@7.2.0/LICENSE +21 -0
- package/payload/shared/bundles/flow_design/licenses/bundled-js/rolldown@1.2.4/LICENSE +25 -0
- package/payload/shared/bundles/flow_design/licenses/bundled-js/rolldown@1.2.4/THIRD-PARTY-LICENSE +33 -0
- package/payload/shared/bundles/flow_design/licenses/bundled-js/saxen@10.0.0/LICENSE +21 -0
- package/payload/shared/bundles/flow_design/licenses/flow-build.json +204 -0
- package/payload/shared/bundles/flow_design/licenses/third-party/elkjs-0.10.2/DEPENDENCIES +631 -0
- package/payload/shared/bundles/flow_design/licenses/third-party/elkjs-0.10.2/LICENSE.md +264 -0
- package/payload/shared/bundles/flow_design/licenses/third-party/elkjs-0.10.2/NOTICE.md +55 -0
- package/payload/shared/bundles/flow_design/licenses/third-party/elkjs-0.10.2/SOURCE.md +62 -0
- package/payload/shared/bundles/flow_design/licenses/third-party/elkjs-0.10.2/graph-layout-worker.ts +33 -0
- package/payload/shared/bundles/flow_design/licenses/third-party/elkjs-0.10.2/release-source-binding.json +81 -0
- package/payload/shared/bundles/flow_design/licenses/third-party/elkjs-0.10.2/upstream-README.md +391 -0
- package/payload/shared/bundles/flow_design/licenses/third-party/elkjs-0.10.2/upstream-build.gradle +322 -0
- package/payload/shared/bundles/flow_design/licenses/third-party/elkjs-0.10.2/upstream-ci.yml +67 -0
- package/payload/shared/bundles/flow_design/reference/artifact-contract.md +12 -5
- package/payload/shared/bundles/flow_design/reference/bpmn_authoring.md +13 -10
- package/payload/shared/bundles/flow_design/reference/canvas-guide.md +2 -1
- package/payload/shared/bundles/flow_design/schema.yaml +1 -1
- package/payload/shared/bundles/flow_design/scripts/bpmn-validator.mjs +35 -20
- package/payload/shared/bundles/function_modules/locales/en-US.json +2 -2
- package/payload/shared/bundles/function_modules/panel.yaml +1 -0
- package/payload/shared/bundles/function_modules/reference/artifact-contract.md +5 -0
- package/payload/shared/bundles/function_modules/reference/preview.json +1 -0
- package/payload/shared/bundles/function_modules/schema.yaml +4 -0
- package/payload/shared/bundles/integration_design/locales/en-US.json +3 -1
- package/payload/shared/bundles/integration_design/locales/zh-CN.json +3 -1
- package/payload/shared/bundles/integration_design/panel.yaml +18 -2
- package/payload/shared/bundles/notification_design/locales/en-US.json +2 -0
- package/payload/shared/bundles/notification_design/locales/zh-CN.json +2 -0
- package/payload/shared/bundles/notification_design/panel.yaml +18 -6
- package/payload/shared/bundles/page_design/locales/en-US.json +12 -1
- package/payload/shared/bundles/page_design/locales/zh-CN.json +12 -1
- package/payload/shared/bundles/page_design/panel.yaml +23 -1
- package/payload/shared/bundles/quality_acceptance/locales/en-US.json +2 -2
- package/payload/shared/bundles/quality_acceptance/locales/zh-CN.json +2 -2
- package/payload/shared/bundles/quality_acceptance/panel.yaml +10 -7
- package/payload/shared/bundles/role_access/locales/en-US.json +5 -5
- package/payload/shared/bundles/role_access/locales/zh-CN.json +5 -5
- package/payload/shared/bundles/smart_questions/SKILL.md +4 -2
- package/payload/shared/bundles/smart_questions/reference/artifact-contract.md +16 -8
- package/payload/shared/bundles/smart_questions/schema.yaml +2 -2
- package/payload/shared/bundles/web_app_prd_assembly/SKILL.md +4 -0
- package/payload/shared/bundles/web_app_prd_assembly/locales/en-US.json +2 -2
- package/payload/shared/bundles/web_app_prd_assembly/locales/zh-CN.json +1 -1
- package/payload/shared/bundles/web_app_prd_assembly/reference/artifact-contract.md +6 -0
- package/payload/shared/bundles/web_app_prd_assembly/scripts/prd.mjs +28 -16
- package/payload/shared/scripts/{content-archive-CnwVcuWA.mjs → content-archive-BvVmbecb.mjs} +2 -2
- package/payload/shared/scripts/{core-entry-DESmwP78.mjs → core-entry-S65aB8cC.mjs} +47 -0
- package/payload/shared/scripts/design.mjs +2 -2
- package/payload/shared/scripts/git-runtime-check.mjs +1 -1
- package/payload/shared/scripts/knowledge-snapshot-query.mjs +1 -1
- package/payload/shared/scripts/{load-C-RwS23Y.mjs → load-D1xLlKL_.mjs} +1 -1
- package/payload/shared/scripts/{panel-preview-BeVRYFk1.mjs → panel-preview-D-OD9mro.mjs} +2 -2
- package/payload/shared/scripts/{server-BnEtfptI.mjs → server-B6kGo8xO.mjs} +159 -55
- package/payload/shared/scripts/{studio-CFUWk0vJ.mjs → studio-DumCCbFT.mjs} +6 -6
- package/payload/shared/scripts/{studio-instance-composition-BJzYMyvV.mjs → studio-instance-composition-DfbZVetl.mjs} +2 -2
- package/payload/shared/scripts/{studio-instances-gQFR9yqL.mjs → studio-instances-BnVSHNCf.mjs} +3 -3
- package/payload/shared/scripts/{studio-panel-drafts-Dq171F6x.mjs → studio-panel-drafts-DSxfgHfk.mjs} +1 -1
- package/payload/shared/scripts/workbuddy-panel-service.mjs +1 -1
- package/payload/shared/web/{_dsh-design-css_owned_89a065927fa266797ef9ce977561ca0c4a3502195b0ba467350b7673cd701bdf_bpmn-embedded.css-CS3_MdFX.js → _dsh-design-css_owned_89a065927fa266797ef9ce977561ca0c4a3502195b0ba467350b7673cd701bdf_bpmn-embedded.css-BVX0LPx6.js} +3 -3
- package/payload/shared/web/{_dsh-design-css_owned_cc41a10f41ce4c8219d75daefaa99c08ac76f04537f7ec1abc92622e819f5bba_bpmn-js.css-BMPB0-R-.js → _dsh-design-css_owned_cc41a10f41ce4c8219d75daefaa99c08ac76f04537f7ec1abc92622e819f5bba_bpmn-js.css-TpJpFSU5.js} +3 -3
- package/payload/shared/web/{_dsh-design-css_owned_f311e6c6d8e65aed0c9a7ee24ef653d3c38574a3505babc3e0cad2a40b94a188_diagram-js.css-C11OT7zU.js → _dsh-design-css_owned_f311e6c6d8e65aed0c9a7ee24ef653d3c38574a3505babc3e0cad2a40b94a188_diagram-js.css-DreYyNMC.js} +3 -3
- package/payload/shared/web/client.js +3373 -1842
- package/release-hosts.json +1 -1
- package/release-manifest.json +223 -203
package/payload/shared/bundles/flow_design/licenses/third-party/elkjs-0.10.2/upstream-build.gradle
ADDED
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
/*
|
|
2
|
+
# Task depencencies
|
|
3
|
+
The dependencies are specified at the end of this file,
|
|
4
|
+
not within the task definitions.
|
|
5
|
+
|
|
6
|
+
1) copy (and preprocess) relevant source code
|
|
7
|
+
2) generate code for .melk and .xtend files
|
|
8
|
+
3) compile java source code
|
|
9
|
+
4) run gwt compiler
|
|
10
|
+
|
|
11
|
+
# Build directory layout
|
|
12
|
+
src
|
|
13
|
+
+-- elk
|
|
14
|
+
+-- elkjs
|
|
15
|
+
+-- melk
|
|
16
|
+
+-- xtend-gen
|
|
17
|
+
*/
|
|
18
|
+
plugins {
|
|
19
|
+
// The documentation of the plugin [1] states "tested up to [gradle] 7.2".
|
|
20
|
+
// [1] https://xtext.github.io/xtext-gradle-plugin/xtext-builder.html
|
|
21
|
+
id 'org.xtext.builder' version '3.0.2' // according to the docu, tested up to gradle 7.2
|
|
22
|
+
id 'org.xtext.xtend' version '3.0.2'
|
|
23
|
+
id 'java'
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// make sure all compile tasks use utf8
|
|
27
|
+
tasks.withType(JavaCompile) {
|
|
28
|
+
options.encoding = 'UTF-8'
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// GWT 2.10 allows to run Java [8, 17]
|
|
32
|
+
// (http://www.gwtproject.org/release-notes.html#Release_Notes_2_10_0)
|
|
33
|
+
if (!JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_1_8)
|
|
34
|
+
|| JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_18)) {
|
|
35
|
+
throw new GradleException("elkjs build requires to be run with Java [8, 17] (due to GWT compilation). You are running " + JavaVersion.current() + ".")
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
39
|
+
// Settings
|
|
40
|
+
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
41
|
+
|
|
42
|
+
ext.versions = [
|
|
43
|
+
emfGwt: '2.12.4',
|
|
44
|
+
gwt: '2.11.0',
|
|
45
|
+
guava: '31.1-jre',
|
|
46
|
+
melk: '0.11.0-SNAPSHOT',
|
|
47
|
+
xtext: '2.36.0',
|
|
48
|
+
|
|
49
|
+
// From 2.26 on Xtext supports Java 17, however,
|
|
50
|
+
// "Xtext now supports running on Java 17 with Java 8 and 11 targets. Source and Target 17 are not supported yet".
|
|
51
|
+
// https://www.eclipse.org/Xtext/releasenotes.html#/releasenotes/2022/08/29/version-2-28-0
|
|
52
|
+
sourceTargetCompatibility: JavaVersion.current().ordinal() < 11 - 1 ? '1.8' : '11'
|
|
53
|
+
]
|
|
54
|
+
|
|
55
|
+
java {
|
|
56
|
+
sourceCompatibility = "$versions.sourceTargetCompatibility"
|
|
57
|
+
targetCompatibility = "$versions.sourceTargetCompatibility"
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
project.logger.lifecycle("You are running Java version ${JavaVersion.current()}.")
|
|
61
|
+
project.logger.lifecycle("Due to current Xtext's limitations ($versions.xtext), source and target compatibility have been set to ${versions.sourceTargetCompatibility}.")
|
|
62
|
+
|
|
63
|
+
if (!hasProperty('elkRepo')) {
|
|
64
|
+
ext.elkRepo = '../elk'
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
def elkSources = [
|
|
68
|
+
// The core and graph format
|
|
69
|
+
"${elkRepo}/plugins/org.eclipse.elk.core/src",
|
|
70
|
+
"${elkRepo}/plugins/org.eclipse.elk.graph/src",
|
|
71
|
+
"${elkRepo}/plugins/org.eclipse.elk.graph.json/src",
|
|
72
|
+
"${elkRepo}/plugins/org.eclipse.elk.alg.common/src",
|
|
73
|
+
// The algorithms
|
|
74
|
+
// FIXME: DisCo breaks Github Actions for unknown reasons, see https://github.com/kieler/elkjs/issues/291
|
|
75
|
+
//"${elkRepo}/plugins/org.eclipse.elk.alg.disco/src",
|
|
76
|
+
"${elkRepo}/plugins/org.eclipse.elk.alg.force/src",
|
|
77
|
+
"${elkRepo}/plugins/org.eclipse.elk.alg.layered/src",
|
|
78
|
+
"${elkRepo}/plugins/org.eclipse.elk.alg.mrtree/src",
|
|
79
|
+
"${elkRepo}/plugins/org.eclipse.elk.alg.rectpacking/src",
|
|
80
|
+
"${elkRepo}/plugins/org.eclipse.elk.alg.radial/src",
|
|
81
|
+
"${elkRepo}/plugins/org.eclipse.elk.alg.spore/src"
|
|
82
|
+
]
|
|
83
|
+
|
|
84
|
+
// the directory to which all sources are copied for compilation
|
|
85
|
+
def srcDir = "${buildDir}/src"
|
|
86
|
+
def distDir = "${buildDir}/js"
|
|
87
|
+
|
|
88
|
+
def gwtModule = "org.eclipse.elk.js.ElkJs"
|
|
89
|
+
|
|
90
|
+
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
91
|
+
// Repositories, Source Sets, and Dependencies
|
|
92
|
+
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
93
|
+
|
|
94
|
+
repositories {
|
|
95
|
+
jcenter()
|
|
96
|
+
// for melk compiler
|
|
97
|
+
maven {
|
|
98
|
+
url 'https://oss.sonatype.org/content/repositories/snapshots'
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
configurations {
|
|
103
|
+
gwt
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
sourceSets {
|
|
107
|
+
// compile xtext related sources. This includes:
|
|
108
|
+
// xtend -> java
|
|
109
|
+
// melk -> java
|
|
110
|
+
xtext {
|
|
111
|
+
java {
|
|
112
|
+
srcDirs = [ "$srcDir/elk" ]
|
|
113
|
+
}
|
|
114
|
+
xtendOutputDir = "$srcDir/xtend-gen"
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
main {
|
|
118
|
+
java {
|
|
119
|
+
srcDirs = [ srcDir ]
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
def gwtClasspath = [
|
|
125
|
+
// gwt requires the folder structure to equal the package structure
|
|
126
|
+
"$srcDir/elk",
|
|
127
|
+
"$srcDir/elkjs",
|
|
128
|
+
"$srcDir/melk",
|
|
129
|
+
"$srcDir/xtend-gen",
|
|
130
|
+
sourceSets.main.output.classesDirs,
|
|
131
|
+
|
|
132
|
+
configurations.gwt
|
|
133
|
+
]
|
|
134
|
+
|
|
135
|
+
dependencies {
|
|
136
|
+
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
137
|
+
|
|
138
|
+
// melk language
|
|
139
|
+
xtextLanguages "org.eclipse.elk:org.eclipse.elk.core.meta:$versions.melk"
|
|
140
|
+
|
|
141
|
+
// for the minus sign to work in melk files
|
|
142
|
+
xtextImplementation "org.eclipse.xtext:org.eclipse.xtext.xbase.lib:$versions.xtext"
|
|
143
|
+
|
|
144
|
+
xtextImplementation "com.google.guava:guava:$versions.guava"
|
|
145
|
+
|
|
146
|
+
xtextImplementation "org.gwtproject:gwt-dev:$versions.gwt"
|
|
147
|
+
xtextImplementation "org.gwtproject:gwt-user:$versions.gwt"
|
|
148
|
+
|
|
149
|
+
xtextImplementation "com.genmymodel.emf.gwt:emf-common:$versions.emfGwt"
|
|
150
|
+
xtextImplementation "com.genmymodel.emf.gwt:emf-ecore:$versions.emfGwt"
|
|
151
|
+
|
|
152
|
+
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
153
|
+
|
|
154
|
+
// emf for gwt
|
|
155
|
+
implementation "com.genmymodel.emf.gwt:emf-common:$versions.emfGwt"
|
|
156
|
+
implementation "com.genmymodel.emf.gwt:emf-ecore:$versions.emfGwt"
|
|
157
|
+
// guava
|
|
158
|
+
implementation "com.google.guava:guava:$versions.guava"
|
|
159
|
+
// gwt
|
|
160
|
+
implementation "org.gwtproject:gwt-user:$versions.gwt"
|
|
161
|
+
implementation "org.gwtproject:gwt-dev:$versions.gwt"
|
|
162
|
+
// xtend libs
|
|
163
|
+
implementation "org.eclipse.xtend:org.eclipse.xtend.lib:$versions.xtext"
|
|
164
|
+
implementation "org.eclipse.xtext:org.eclipse.xtext.xbase.lib:$versions.xtext"
|
|
165
|
+
|
|
166
|
+
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
167
|
+
|
|
168
|
+
gwt "com.google.guava:guava-gwt:$versions.guava"
|
|
169
|
+
|
|
170
|
+
gwt "org.gwtproject:gwt:$versions.gwt"
|
|
171
|
+
gwt "org.gwtproject:gwt-dev:$versions.gwt"
|
|
172
|
+
gwt "org.gwtproject:gwt-user:$versions.gwt"
|
|
173
|
+
|
|
174
|
+
gwt "com.genmymodel.emf.gwt:emf-common:$versions.emfGwt:sources"
|
|
175
|
+
gwt "com.genmymodel.emf.gwt:emf-ecore:$versions.emfGwt:sources"
|
|
176
|
+
|
|
177
|
+
// the xtext/xtend gwt plugins only contain the '.gwt.xml' files
|
|
178
|
+
// thus the source code has to be retrieved separately
|
|
179
|
+
gwt "org.eclipse.xtext:org.eclipse.xtext.xbase.lib:$versions.xtext:sources"
|
|
180
|
+
gwt "org.eclipse.xtend:org.eclipse.xtend.lib:$versions.xtext:sources"
|
|
181
|
+
gwt "org.eclipse.xtext:org.eclipse.xtext.xbase.lib.gwt:$versions.xtext"
|
|
182
|
+
gwt "org.eclipse.xtend:org.eclipse.xtend.lib.gwt:$versions.xtext"
|
|
183
|
+
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// configure the melk language
|
|
187
|
+
xtext {
|
|
188
|
+
languages {
|
|
189
|
+
melk {
|
|
190
|
+
fileExtension = 'melk'
|
|
191
|
+
setup = 'org.eclipse.elk.core.meta.MetaDataStandaloneSetup'
|
|
192
|
+
generator.outlet.producesJava = true
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
// don't bother the xtext generator with irrelevant source sets
|
|
198
|
+
generateXtext.enabled = false
|
|
199
|
+
|
|
200
|
+
clean {
|
|
201
|
+
delete distDir
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
205
|
+
// Copy Tasks
|
|
206
|
+
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
207
|
+
|
|
208
|
+
task copyElk(type: Copy) {
|
|
209
|
+
from elkSources
|
|
210
|
+
into "$srcDir/elk/"
|
|
211
|
+
|
|
212
|
+
include "**/*.java"
|
|
213
|
+
include "**/*.xtend"
|
|
214
|
+
include "**/*.melk"
|
|
215
|
+
|
|
216
|
+
// the gson based json import
|
|
217
|
+
exclude "**/ElkGraphJson.java" // java-based api
|
|
218
|
+
exclude "**/JsonAdapter.xtend" // the gson implementation
|
|
219
|
+
exclude "**/JsonExporter.xtend" // not required here (should be compatible though)
|
|
220
|
+
|
|
221
|
+
// class is in there for convenience reasons
|
|
222
|
+
// usually the factories are generated by the melk compiler
|
|
223
|
+
exclude "**/AlgorithmFactory.java"
|
|
224
|
+
|
|
225
|
+
// exclude because they require ecore.xmi
|
|
226
|
+
exclude "**/ElkGraphResource.java"
|
|
227
|
+
exclude "**/ElkGraphXMIHelper.java"
|
|
228
|
+
exclude "**/ElkGraphXMISave.java"
|
|
229
|
+
exclude "**/ElkGraphResourceFactory.java"
|
|
230
|
+
|
|
231
|
+
// incompatible api, an emulating class is used (java-additional)
|
|
232
|
+
exclude "**/alg/common/utils/SVGImage.java"
|
|
233
|
+
|
|
234
|
+
// after copying, remove those parts of the code
|
|
235
|
+
// that have been marked to be incompatible with gwt
|
|
236
|
+
doLast {
|
|
237
|
+
ant.replaceregexp(
|
|
238
|
+
match: '// elkjs-exclude-start(.+?)elkjs-exclude-end',
|
|
239
|
+
replace: '',
|
|
240
|
+
flags: 'gis',
|
|
241
|
+
byline: false) {
|
|
242
|
+
fileset(dir: "$srcDir/elk/")
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
task copyEmul(type: Copy) {
|
|
248
|
+
from([
|
|
249
|
+
// contains the implementation for json->elk graph importer
|
|
250
|
+
// using gwt's json
|
|
251
|
+
"./src/java-additional"
|
|
252
|
+
])
|
|
253
|
+
into "$srcDir/elk/"
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
task copyMelk(type: Copy) {
|
|
257
|
+
from "$buildDir/melk/xtext"
|
|
258
|
+
into "$srcDir/melk"
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
task copyElkJs(type: Copy) {
|
|
262
|
+
from "./src/java"
|
|
263
|
+
into "$srcDir/elkjs"
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
267
|
+
// GWT Compilation
|
|
268
|
+
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
269
|
+
|
|
270
|
+
def gwtInputs = [
|
|
271
|
+
fileTree(srcDir),
|
|
272
|
+
sourceSets.main.output.classesDirs
|
|
273
|
+
]
|
|
274
|
+
|
|
275
|
+
task gwtc (type: JavaExec) {
|
|
276
|
+
main = 'com.google.gwt.dev.Compiler'
|
|
277
|
+
classpath { gwtClasspath }
|
|
278
|
+
args = [ gwtModule, '-war', "$buildDir/dist", '-style', 'PRETTY' ]
|
|
279
|
+
maxHeapSize = '2G'
|
|
280
|
+
|
|
281
|
+
inputs.files(gwtInputs)
|
|
282
|
+
outputs.dir("$buildDir/dist/elk")
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
task gwtcMinified (type: JavaExec) {
|
|
286
|
+
main = 'com.google.gwt.dev.Compiler'
|
|
287
|
+
classpath { gwtClasspath }
|
|
288
|
+
args = [ gwtModule, '-war', "$buildDir/distMinified" ]
|
|
289
|
+
maxHeapSize = '2G'
|
|
290
|
+
|
|
291
|
+
inputs.files(gwtInputs)
|
|
292
|
+
outputs.dir("$buildDir/distMinified/elk")
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
task copyPretty(type: Copy) {
|
|
296
|
+
from "$buildDir/dist/elk"
|
|
297
|
+
into distDir
|
|
298
|
+
include "**/*.js"
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
task copyMinified(type: Copy) {
|
|
302
|
+
from "$buildDir/distMinified/elk"
|
|
303
|
+
into distDir
|
|
304
|
+
include "**/*.js"
|
|
305
|
+
rename '(.*).js', '$1.min.js'
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
task lib(dependsOn: [ copyPretty, copyMinified ])
|
|
309
|
+
|
|
310
|
+
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
311
|
+
// Task Dependencies
|
|
312
|
+
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
313
|
+
|
|
314
|
+
generateXtextXtext.dependsOn copyElk
|
|
315
|
+
generateXtextXtext.dependsOn copyEmul
|
|
316
|
+
copyMelk.dependsOn generateXtextXtext
|
|
317
|
+
compileJava.dependsOn copyMelk
|
|
318
|
+
compileJava.dependsOn copyElkJs
|
|
319
|
+
gwtc.dependsOn compileJava
|
|
320
|
+
gwtcMinified.dependsOn compileJava
|
|
321
|
+
copyPretty.dependsOn gwtc
|
|
322
|
+
copyMinified.dependsOn gwtcMinified
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
name: elkjs CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
7
|
+
repository_dispatch:
|
|
8
|
+
schedule:
|
|
9
|
+
- cron: '0 3 * * *'
|
|
10
|
+
pull_request:
|
|
11
|
+
branches:
|
|
12
|
+
- master
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
build:
|
|
16
|
+
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
|
|
19
|
+
continue-on-error: true
|
|
20
|
+
|
|
21
|
+
strategy:
|
|
22
|
+
fail-fast: false
|
|
23
|
+
matrix:
|
|
24
|
+
node-version: [ 14.x, 22.x ]
|
|
25
|
+
java-version: [ 17 ]
|
|
26
|
+
|
|
27
|
+
steps:
|
|
28
|
+
- uses: actions/checkout@v4
|
|
29
|
+
with:
|
|
30
|
+
path: elkjs
|
|
31
|
+
- uses: actions/checkout@v4
|
|
32
|
+
with:
|
|
33
|
+
repository: eclipse/elk
|
|
34
|
+
ref: master
|
|
35
|
+
path: elk
|
|
36
|
+
- name: Set up JDK ${{ matrix.java-version }}
|
|
37
|
+
uses: actions/setup-java@v4
|
|
38
|
+
with:
|
|
39
|
+
distribution: 'zulu'
|
|
40
|
+
java-version: ${{ matrix.java-version }}
|
|
41
|
+
- name: Cache gradle packages
|
|
42
|
+
uses: actions/cache@v4
|
|
43
|
+
with:
|
|
44
|
+
path: ~/.gradle/caches
|
|
45
|
+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
|
|
46
|
+
restore-keys: ${{ runner.os }}-gradle
|
|
47
|
+
- name: Cache npm
|
|
48
|
+
uses: actions/cache@v4
|
|
49
|
+
with:
|
|
50
|
+
path: ~/.npm
|
|
51
|
+
key: ${{ runner.os }}-node-${{ hashFiles('**/package.json') }}
|
|
52
|
+
restore-keys: ${{ runner.os }}-node-
|
|
53
|
+
- name: Grant execute permission for gradlew
|
|
54
|
+
run: |
|
|
55
|
+
chmod +x elkjs/gradlew
|
|
56
|
+
- name: Use Node.js ${{ matrix.node-version }}
|
|
57
|
+
uses: actions/setup-node@v4
|
|
58
|
+
with:
|
|
59
|
+
node-version: ${{ matrix.node-version }}
|
|
60
|
+
- name: npm install, build, and test
|
|
61
|
+
run: |
|
|
62
|
+
cd elkjs
|
|
63
|
+
npm install
|
|
64
|
+
npm run build --if-present
|
|
65
|
+
npm test
|
|
66
|
+
env:
|
|
67
|
+
CI: true
|
|
@@ -6,10 +6,14 @@ new design and reconstruction without replacing domain-specific rules.
|
|
|
6
6
|
|
|
7
7
|
Shared by authoring and reconstruction; convert established behavior into BPMN without inventing policy. Canonical state is `flow_design/flow_design.json`; active processes are listed by `process_order`, stakeholders reuse `roles[].name`. The installed schema/validation are unchanged.
|
|
8
8
|
|
|
9
|
-
For product automation,
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
For product automation, keep exactly one built-in role with stable `id: "System"`
|
|
10
|
+
and a non-empty display name in the authored language, for example
|
|
11
|
+
`{"id":"System","name":"系统"}` in Chinese or
|
|
12
|
+
`{"id":"System","name":"System"}` in English. Role IDs and display names
|
|
13
|
+
remain unique. Process stakeholders and BPMN lanes reuse the exact canonical
|
|
14
|
+
`roles[].name`; resolve the product's display name by its `System` ID, never by
|
|
15
|
+
a translated-name whitelist or lane ID. Check the cast, participating roles and
|
|
16
|
+
automated/human task ownership before accepting a file.
|
|
13
17
|
|
|
14
18
|
Bind serial/delegated activity using `artifact_kind: "flow_bpmn"`, the stable process ID and `artifact_file: "flow_design/<process_id>.bpmn"`. A Worker receives the matching process descriptor, focused evidence and this shared contract; the Producer integrates its returned file reference.
|
|
15
19
|
|
|
@@ -25,10 +29,13 @@ model tool arguments.
|
|
|
25
29
|
Validate the file with `run_skill_script`: use `path: "bpmn-validator.mjs"`,
|
|
26
30
|
`args: ["validate-bpmn-file"]`, `input_file` equal to the pre-bound BPMN path,
|
|
27
31
|
and `input_context` containing
|
|
28
|
-
`{"process_id":"P-...","process":{...}}`.
|
|
32
|
+
`{"process_id":"P-...","process":{...},"roles":[...]}`. `roles` is the existing
|
|
33
|
+
canonical role cast, not a new process field. The bounded `process` object is the
|
|
29
34
|
matching canonical descriptor; it needs the supplied stakeholders,
|
|
30
35
|
system_responsibilities, trigger_hints, and process_type. The validator returns
|
|
31
36
|
only validity and diagnostics. Repair the same file and retry until it passes.
|
|
37
|
+
Older calls without `roles` retain the original Chinese system-lane semantics;
|
|
38
|
+
always include the canonical cast for new or revised localized files.
|
|
32
39
|
|
|
33
40
|
Next call `run_skill_script` with `path: "layout.mjs"`, the same `input_file`, no
|
|
34
41
|
args, and `output_file` equal to that same BPMN path. On exit 0 the Host writes the
|
|
@@ -26,9 +26,11 @@ not useful.
|
|
|
26
26
|
|
|
27
27
|
## Product boundary and lanes
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
The role with stable `id: "System"` is the product being designed, not an invented
|
|
30
|
+
organization role. Its display name comes from the supplied canonical cast
|
|
31
|
+
(`系统` in the Chinese example below, `System` in English). The brief always
|
|
32
|
+
states its grounded responsibilities. Realize those responsibilities in that
|
|
33
|
+
role's exact display-name lane; if a proposed process has no product
|
|
32
34
|
responsibility, it should not have reached this worker.
|
|
33
35
|
|
|
34
36
|
For two or more participating roles, create exactly one lane per supplied role
|
|
@@ -57,14 +59,15 @@ decoration and do not flatten known semantics into generic tasks.
|
|
|
57
59
|
|---|---|
|
|
58
60
|
| Human works in/with the product | `userTask` in that human role lane |
|
|
59
61
|
| Human performs offline work | `manualTask` in that human role lane |
|
|
60
|
-
| Product runs an automated operation | `serviceTask` in
|
|
61
|
-
| Product evaluates a stated decision table/rule | `businessRuleTask` in
|
|
62
|
-
| Product sends a message/notification | `sendTask` in
|
|
63
|
-
| Product waits for a message | `receiveTask` in
|
|
62
|
+
| Product runs an automated operation | `serviceTask` in the System role lane |
|
|
63
|
+
| Product evaluates a stated decision table/rule | `businessRuleTask` in the System role lane |
|
|
64
|
+
| Product sends a message/notification | `sendTask` in the System role lane |
|
|
65
|
+
| Product waits for a message | `receiveTask` in the System role lane |
|
|
64
66
|
| Evidence does not distinguish a more specific activity | `task` |
|
|
65
67
|
|
|
66
|
-
Never place `userTask`/`manualTask` in
|
|
67
|
-
`
|
|
68
|
+
Never place `userTask`/`manualTask` in the System role lane, and do not use a generic
|
|
69
|
+
`task` for its automated responsibility. Never place
|
|
70
|
+
`serviceTask`/`businessRuleTask`/`scriptTask`/`sendTask`/`receiveTask` in a human lane.
|
|
68
71
|
|
|
69
72
|
Use gateways by their actual control-flow semantics:
|
|
70
73
|
|
|
@@ -184,7 +187,7 @@ the structure to the brief; never copy its business facts or ids blindly.
|
|
|
184
187
|
2. All ids are ASCII and process-prefixed; all references resolve.
|
|
185
188
|
3. Lane names exactly match supplied stakeholders; every node belongs to one
|
|
186
189
|
responsible lane.
|
|
187
|
-
4.
|
|
190
|
+
4. The System role's responsibilities are typed system activities; human work stays in
|
|
188
191
|
human lanes.
|
|
189
192
|
5. Every supplied trigger hint is realized, and no ungrounded trigger appears.
|
|
190
193
|
6. Exclusive outcomes are named; parallel/event-driven shapes use the matching
|
|
@@ -19,7 +19,8 @@ uses the existing SKILL's product-boundary and process-granularity methods.
|
|
|
19
19
|
Use the installed Bundle's structure-validation → layout → final-validation
|
|
20
20
|
pipeline by file path. The layout script produces BPMN DI; never hand-author a
|
|
21
21
|
second layout or patch truncated output. Lane labels use actual supplied names;
|
|
22
|
-
the built-in System
|
|
22
|
+
resolve the built-in System display name from its stable ID in the canonical
|
|
23
|
+
role cast, and pass that cast to both file validators as the contract specifies.
|
|
23
24
|
Ports/bindings and routing remain BPMN/layout behavior, not the AI midpoint rule.
|
|
24
25
|
Review readable node/condition labels and real branch/return meaning; valid DI
|
|
25
26
|
does not prove readability or correct process semantics. Missing sources stay
|
|
@@ -21,7 +21,7 @@ properties:
|
|
|
21
21
|
type: object
|
|
22
22
|
properties:
|
|
23
23
|
id: { type: string } # ASCII slug for lane ids, e.g. "Buyer"
|
|
24
|
-
name: { type: string } #
|
|
24
|
+
name: { type: string } # Canonical display name in the authored language, e.g. "采购员" or "Buyer"
|
|
25
25
|
processes:
|
|
26
26
|
type: map
|
|
27
27
|
value:
|
|
@@ -136,13 +136,12 @@ function semanticDiagnostic(code, message, repair) {
|
|
|
136
136
|
return `${code}: ${message} Repair: ${repair}`;
|
|
137
137
|
}
|
|
138
138
|
/**
|
|
139
|
-
*
|
|
140
|
-
* @param
|
|
141
|
-
* @returns actionable plan diagnostics; empty accepts the canonical role cast and active processes.
|
|
139
|
+
* Resolve product identity from the canonical role cast, independently of its language.
|
|
140
|
+
* @param rawRoles - the existing roles array from flow_design.json.
|
|
142
141
|
*/
|
|
143
|
-
function
|
|
142
|
+
function flowRoleContext(rawRoles) {
|
|
144
143
|
const diagnostics = [];
|
|
145
|
-
const roles = Array.isArray(
|
|
144
|
+
const roles = Array.isArray(rawRoles) ? rawRoles.map(record$1) : [];
|
|
146
145
|
const roleIds = roles.map((role) => typeof role.id === "string" ? role.id.trim() : "");
|
|
147
146
|
const roleNames = roles.map((role) => typeof role.name === "string" ? role.name.trim() : "");
|
|
148
147
|
const normalizedRoleNames = roleNames.map((name) => name.normalize("NFKC").toLowerCase());
|
|
@@ -151,9 +150,24 @@ function flowDesignStateErrors(state) {
|
|
|
151
150
|
const duplicateRoleNames = [...new Set(roleNames.filter((name, index) => name !== "" && normalizedRoleNames.indexOf(name.normalize("NFKC").toLowerCase()) !== index))].sort();
|
|
152
151
|
if (duplicateRoleIds.length > 0) diagnostics.push(semanticDiagnostic("flow_design.duplicate_role_id", `role ids are duplicated: ${duplicateRoleIds.join(", ")}.`, "Keep one stable id for each product-wide role."));
|
|
153
152
|
if (duplicateRoleNames.length > 0) diagnostics.push(semanticDiagnostic("flow_design.duplicate_role_name", `role names are duplicated: ${duplicateRoleNames.join(", ")}.`, "Keep one canonical display name for each product-wide role and reuse it in every process."));
|
|
154
|
-
const systemRoles = roles.filter((role) => role.id === "System"
|
|
155
|
-
if (systemRoles.length !== 1
|
|
153
|
+
const systemRoles = roles.filter((role) => role.id === "System");
|
|
154
|
+
if (systemRoles.length !== 1) diagnostics.push(semanticDiagnostic("flow_design.missing_system_role", "the product-wide role cast must contain exactly one role with stable id \"System\".", "Keep the built-in System identity and give it one non-empty canonical display name in the authored language."));
|
|
156
155
|
const roleNameSet = new Set(roleNames);
|
|
156
|
+
const systemName = systemRoles.length === 1 && typeof systemRoles[0]?.name === "string" ? systemRoles[0].name.trim() : "";
|
|
157
|
+
return { diagnostics, roleNameSet, systemName };
|
|
158
|
+
}
|
|
159
|
+
function processRoleErrors(process, processId, { roleNameSet, systemName }) {
|
|
160
|
+
const diagnostics = [];
|
|
161
|
+
const stakeholders = stringList(process.stakeholders);
|
|
162
|
+
const unknown = stakeholders.filter((role) => !roleNameSet.has(role));
|
|
163
|
+
if (unknown.length > 0) diagnostics.push(semanticDiagnostic("flow_design.unknown_stakeholder", `process ${processId} uses stakeholders outside the product-wide role cast: ${[...new Set(unknown)].sort().join(", ")}.`, "Reuse exact role names from roles, or establish the missing evidenced role in the shared cast first."));
|
|
164
|
+
if (systemName !== "" && !stakeholders.includes(systemName)) diagnostics.push(semanticDiagnostic("flow_design.system_not_participating", `process ${processId} does not include the System role ${JSON.stringify(systemName)} as a stakeholder.`, "Include its canonical display name and established product responsibility, or omit a procedure in which the product has no responsibility."));
|
|
165
|
+
if (stringList(process.system_responsibilities).length === 0) diagnostics.push(semanticDiagnostic("flow_design.missing_system_responsibility", `process ${processId} does not state any product/system responsibility.`, "Describe what the product validates, stores, decides, sends, or waits for before BPMN authoring."));
|
|
166
|
+
return diagnostics;
|
|
167
|
+
}
|
|
168
|
+
function flowDesignStateErrors(state) {
|
|
169
|
+
const roleContext = flowRoleContext(state.roles);
|
|
170
|
+
const diagnostics = [...roleContext.diagnostics];
|
|
157
171
|
const processes = record$1(state.processes);
|
|
158
172
|
const order = Array.isArray(state.process_order) ? state.process_order : [];
|
|
159
173
|
for (const rawProcessId of order) {
|
|
@@ -161,11 +175,7 @@ function flowDesignStateErrors(state) {
|
|
|
161
175
|
const process = record$1(processes[processId]);
|
|
162
176
|
if (Object.keys(process).length === 0 || process.deleted === true) continue;
|
|
163
177
|
if (process.process_id !== processId) diagnostics.push(semanticDiagnostic("flow_design.process_id_mismatch", `process map key ${processId} does not match process_id ${JSON.stringify(process.process_id)}.`, "Set process_id to the exact process map key before authoring or laying out BPMN."));
|
|
164
|
-
|
|
165
|
-
const unknown = stakeholders.filter((role) => !roleNameSet.has(role));
|
|
166
|
-
if (unknown.length > 0) diagnostics.push(semanticDiagnostic("flow_design.unknown_stakeholder", `process ${processId} uses stakeholders outside the product-wide role cast: ${[...new Set(unknown)].sort().join(", ")}.`, "Reuse exact role names from roles, or establish the missing evidenced role in the shared cast first."));
|
|
167
|
-
if (!stakeholders.includes("系统")) diagnostics.push(semanticDiagnostic("flow_design.system_not_participating", `process ${processId} does not include 系统 as a stakeholder.`, "Add 系统 and its established product responsibility, or omit a procedure in which the product has no responsibility."));
|
|
168
|
-
if (stringList(process.system_responsibilities).length === 0) diagnostics.push(semanticDiagnostic("flow_design.missing_system_responsibility", `process ${processId} does not state any product/system responsibility.`, "Describe what the product validates, stores, decides, sends, or waits for before BPMN authoring."));
|
|
178
|
+
diagnostics.push(...processRoleErrors(process, processId, roleContext));
|
|
169
179
|
}
|
|
170
180
|
return Object.freeze(diagnostics);
|
|
171
181
|
}
|
|
@@ -174,10 +184,15 @@ function flowDesignStateErrors(state) {
|
|
|
174
184
|
* @param xml - complete or structure-only BPMN XML after syntax validation.
|
|
175
185
|
* @param processId - canonical process id used in diagnostics.
|
|
176
186
|
* @param process - canonical process descriptor from flow_design.json.
|
|
187
|
+
* @param roles - canonical role cast; omitted only by legacy Chinese file callers.
|
|
177
188
|
* @returns actionable semantic diagnostics; empty accepts the process.
|
|
178
189
|
*/
|
|
179
|
-
function semanticErrors(xml, processId, process) {
|
|
180
|
-
|
|
190
|
+
function semanticErrors(xml, processId, process, roles) {
|
|
191
|
+
// Old file callers have no cast and retain the original Chinese lane semantics.
|
|
192
|
+
// New callers supply the existing canonical cast; identity never comes from a label.
|
|
193
|
+
const roleContext = roles === void 0 ? void 0 : flowRoleContext(roles);
|
|
194
|
+
const systemName = roleContext?.systemName ?? "系统";
|
|
195
|
+
const diagnostics = roleContext === void 0 ? [] : [...roleContext.diagnostics, ...processRoleErrors(process, processId, roleContext)];
|
|
181
196
|
const nodes = bpmnNodes(xml);
|
|
182
197
|
const expectedRoles = stringList(process.stakeholders);
|
|
183
198
|
const systemResponsibilities = stringList(process.system_responsibilities);
|
|
@@ -200,8 +215,8 @@ function semanticErrors(xml, processId, process) {
|
|
|
200
215
|
const duplicated = [...nodeLanes].filter(([, owners]) => owners.length !== 1).map(([nodeId]) => nodeId).sort();
|
|
201
216
|
if (duplicated.length > 0) diagnostics.push(semanticDiagnostic("flow_design.ambiguous_lane_assignment", `process ${processId}: flow nodes belong to more than one lane: ${duplicated.slice(0, 8).join(", ")}.`, "Keep exactly one flowNodeRef for each flow node in exactly one responsible lane."));
|
|
202
217
|
}
|
|
203
|
-
if (expectedRoles.includes(
|
|
204
|
-
const systemActivities = [...expectedRoles.length === 1 && laneNames.length === 0 ? new Set(nodes.keys()) : new Set(laneNodes.get(
|
|
218
|
+
if (expectedRoles.includes(systemName)) {
|
|
219
|
+
const systemActivities = [...expectedRoles.length === 1 && laneNames.length === 0 ? new Set(nodes.keys()) : new Set(laneNodes.get(systemName) ?? [])].map((nodeId) => [nodeId, nodes.get(nodeId)?.tag]).filter((entry) => entry[1] !== void 0 && BPMN_ACTIVITY_TAGS.has(entry[1]));
|
|
205
220
|
const humanTasks = systemActivities.filter(([, tag]) => tag === "userTask" || tag === "manualTask").map(([nodeId]) => nodeId).sort();
|
|
206
221
|
if (humanTasks.length > 0) diagnostics.push(semanticDiagnostic("flow_design.human_task_in_system_lane", `process ${processId}: system lane contains human-owned tasks: ${humanTasks.slice(0, 8).join(", ")}.`, "Move human/manual actions to a human lane or use an evidenced automated activity type."));
|
|
207
222
|
const genericTasks = systemActivities.filter(([, tag]) => tag === "task").map(([nodeId]) => nodeId).sort();
|
|
@@ -209,12 +224,12 @@ function semanticErrors(xml, processId, process) {
|
|
|
209
224
|
if (systemResponsibilities.length > 0 && !systemActivities.some(([, tag]) => BPMN_SYSTEM_ACTIVITY_TAGS.has(tag))) diagnostics.push(semanticDiagnostic("flow_design.system_responsibility_unrealized", `process ${processId}: no typed automated activity realizes the supplied system responsibilities.`, "Add system-lane semantic activities for established responsibilities without inventing new ones."));
|
|
210
225
|
}
|
|
211
226
|
for (const [role, refs] of laneNodes) {
|
|
212
|
-
if (role ===
|
|
227
|
+
if (role === systemName) continue;
|
|
213
228
|
const automated = refs.filter((ref) => {
|
|
214
229
|
const tag = nodes.get(ref)?.tag;
|
|
215
230
|
return tag !== void 0 && BPMN_SYSTEM_ACTIVITY_TAGS.has(tag);
|
|
216
231
|
}).sort();
|
|
217
|
-
if (automated.length > 0) diagnostics.push(semanticDiagnostic("flow_design.automation_in_human_lane", `process ${processId}: human lane ${JSON.stringify(role)} owns automated activities: ${automated.slice(0, 8).join(", ")}.`, "Move automated work to the
|
|
232
|
+
if (automated.length > 0) diagnostics.push(semanticDiagnostic("flow_design.automation_in_human_lane", `process ${processId}: human lane ${JSON.stringify(role)} owns automated activities: ${automated.slice(0, 8).join(", ")}.`, "Move automated work to the canonical System role's lane and keep human work as userTask or manualTask."));
|
|
218
233
|
}
|
|
219
234
|
const hintedKinds = new Set(triggerHints.map((hint) => typeof hint.kind === "string" ? hint.kind : ""));
|
|
220
235
|
const presentKinds = new Set(Object.entries(BPMN_TRIGGER_DEFINITIONS).filter(([, definition]) => new RegExp(`<bpmn:${definition}\\b`).test(xml)).map(([kind]) => kind));
|
|
@@ -404,7 +419,7 @@ async function validateFlowDesignProducerArtifacts(state, artifacts) {
|
|
|
404
419
|
const stakeholders = Array.isArray(process.stakeholders) ? process.stakeholders : [];
|
|
405
420
|
diagnostics.push(...layoutErrors(xml).map((message) => `process ${processId}: ${message}`));
|
|
406
421
|
diagnostics.push(...structuralErrors(structure, processId, stakeholders.length).map((message) => `process ${processId}: ${message}`));
|
|
407
|
-
diagnostics.push(...semanticErrors(structure, processId, process));
|
|
422
|
+
diagnostics.push(...semanticErrors(structure, processId, process, state.roles));
|
|
408
423
|
}
|
|
409
424
|
return Object.freeze(diagnostics);
|
|
410
425
|
}
|
|
@@ -447,7 +462,7 @@ try {
|
|
|
447
462
|
...sourceDiagnostics,
|
|
448
463
|
...(operation === "validate-final-bpmn-file" ? layoutErrors(xml) : []),
|
|
449
464
|
...structuralErrors(structure, processId, (Array.isArray(processRecord.stakeholders) ? processRecord.stakeholders : []).length),
|
|
450
|
-
...semanticErrors(structure, processId, processRecord)
|
|
465
|
+
...semanticErrors(structure, processId, processRecord, context.roles)
|
|
451
466
|
]);
|
|
452
467
|
} else throw new Error("usage: bpmn-validator.mjs <validate-bpmn-file|validate-final-bpmn-file>");
|
|
453
468
|
} catch (error) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"bundleDescription": "- **Capability**: organize the product into user-facing function cards.\n- **Resolves**: S gaps by turning an established product goal and core scenarios into a non-overlapping capability map.\n- **Candidate when**: the outcome, primary users, and material boundary are established, or the user explicitly asks to split or revise functions.\n- **Do not infer**: an app category, domain name, or generic product goal is not enough evidence to invent a function map.\n- **Output**: a function-module panel grouped by Epic for browsing.",
|
|
3
3
|
"functions": "Function modules", "function": "Function", "empty": "Add a function, or describe the capability in the conversation.",
|
|
4
|
-
"details": "
|
|
4
|
+
"details": "Function details", "functionId": "Function ID", "name": "Function name", "description": "Description", "epic": "Group", "epicHelp": "Groups are labels on functions, not separate design records.",
|
|
5
5
|
"priority": "Priority", "high": "High", "medium": "Medium", "low": "Low", "rejected": "Rejected",
|
|
6
|
-
"source": "Origin", "ai": "AI proposal", "user": "User added", "reason": "Notes", "references": "
|
|
6
|
+
"source": "Origin", "ai": "AI proposal", "user": "User added", "reason": "Notes", "references": "Source references",
|
|
7
7
|
"situation": "Usage scenario", "behaviors": "Core behaviors", "behavior": "Behavior", "inputs": "Inputs", "input": "Input",
|
|
8
8
|
"outputs": "Outcomes", "output": "Outcome", "limits": "Scope boundaries", "limit": "Boundary", "exceptions": "Exception handling", "exception": "Exception", "condition": "Condition", "response": "System response",
|
|
9
9
|
"guidance": "Check that the functions cover what users need to accomplish. Look for omissions, overlap or excess scope, and adjust descriptions and priorities.",
|
|
@@ -75,6 +75,11 @@ do not send it to a differently pinned validator or rewrite its retained state.
|
|
|
75
75
|
}
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
+
- Optional `function_order` holds function map keys in the user’s chosen reading order.
|
|
79
|
+
Preserve it during revisions, remove deleted keys and append new keys without
|
|
80
|
+
changing unaffected positions. If absent, existing map order is used; the Panel
|
|
81
|
+
writes an order only when the user actually moves a card. Grouping still comes
|
|
82
|
+
from `function_epic`, not another membership list.
|
|
78
83
|
- `function_id`, `function_name`, `function_description`, `function_epic`
|
|
79
84
|
are required for every function. `priority` is optional (panel default Medium).
|
|
80
85
|
- `rejected` means the user rejected the function. It remains visible in the
|