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.
Files changed (221) hide show
  1. package/README.md +4 -4
  2. package/bin/npm-agent-installation.mjs +12 -5
  3. package/bin/npm-desktop-preparation.mjs +47 -33
  4. package/bin/npm-installer-dsh.mjs +2 -1
  5. package/bin/npm-node-runtime.mjs +4 -3
  6. package/package.json +1 -1
  7. package/payload/desktop-preparation/materials.json +46 -46
  8. package/payload/desktop-preparation/qwenwork-package.mjs +26 -11
  9. package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/material.json +1 -1
  10. package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/bundle-checklist.md +1 -1
  11. package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/panel-authoring.md +6 -4
  12. package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/inspect-panel-component.mjs +27 -33
  13. package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/docs/dsl-spec.md +104 -19
  14. package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/docs/panel-uiux-standard.md +361 -90
  15. package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/docs/system-design-baseline.md +1 -1
  16. package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/SKILL.md +7 -4
  17. package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/artifact-contract.md +12 -5
  18. package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/bpmn_authoring.md +13 -10
  19. package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/canvas-guide.md +2 -1
  20. package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/schema.yaml +1 -1
  21. package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/artifact-contract.md +5 -0
  22. package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/preview.json +1 -0
  23. package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/schema.yaml +4 -0
  24. package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/SKILL.md +4 -2
  25. package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/reference/artifact-contract.md +16 -8
  26. package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/schema.yaml +2 -2
  27. package/payload/desktop-preparation/qwenwork-template/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/SKILL.md +4 -0
  28. 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
  29. package/payload/desktop-preparation/qwenwork-template/scripts/native-hook-transport.mjs +21 -15
  30. package/payload/desktop-preparation/qwenwork-template/scripts/qwenwork-connection.mjs +56 -11
  31. package/payload/desktop-preparation/src/native-hook-transport.mjs +21 -15
  32. package/payload/desktop-preparation/src/qwenwork-connection.mjs +56 -11
  33. package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/material.json +1 -1
  34. package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/bundle-checklist.md +1 -1
  35. package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/panel-authoring.md +6 -4
  36. package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/inspect-panel-component.mjs +27 -33
  37. package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/docs/dsl-spec.md +104 -19
  38. package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/docs/panel-uiux-standard.md +361 -90
  39. package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/docs/system-design-baseline.md +1 -1
  40. package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/SKILL.md +7 -4
  41. package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/artifact-contract.md +12 -5
  42. package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/bpmn_authoring.md +13 -10
  43. package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/canvas-guide.md +2 -1
  44. package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/schema.yaml +1 -1
  45. package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/artifact-contract.md +5 -0
  46. package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/preview.json +1 -0
  47. package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/schema.yaml +4 -0
  48. package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/SKILL.md +4 -2
  49. package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/reference/artifact-contract.md +16 -8
  50. package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/schema.yaml +2 -2
  51. package/payload/desktop-preparation/studio-authoring-template/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/SKILL.md +4 -0
  52. 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
  53. package/payload/desktop-preparation/workbuddy-package.mjs +13 -8
  54. package/payload/overlays/claude-code/.claude-plugin/plugin.json +1 -1
  55. package/payload/overlays/claude-code/authoring/studio-creators/material.json +1 -1
  56. package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/bundle-checklist.md +1 -1
  57. package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/panel-authoring.md +6 -4
  58. package/payload/overlays/claude-code/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/inspect-panel-component.mjs +27 -33
  59. package/payload/overlays/claude-code/authoring/studio-creators/source/docs/dsl-spec.md +104 -19
  60. package/payload/overlays/claude-code/authoring/studio-creators/source/docs/panel-uiux-standard.md +361 -90
  61. package/payload/overlays/claude-code/authoring/studio-creators/source/docs/system-design-baseline.md +1 -1
  62. package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/SKILL.md +7 -4
  63. package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/artifact-contract.md +12 -5
  64. package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/bpmn_authoring.md +13 -10
  65. package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/canvas-guide.md +2 -1
  66. package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/schema.yaml +1 -1
  67. package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/artifact-contract.md +5 -0
  68. package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/preview.json +1 -0
  69. package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/schema.yaml +4 -0
  70. package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/SKILL.md +4 -2
  71. package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/reference/artifact-contract.md +16 -8
  72. package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/schema.yaml +2 -2
  73. package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/SKILL.md +4 -0
  74. package/payload/overlays/claude-code/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/reference/artifact-contract.md +6 -0
  75. package/payload/overlays/claude-code/scripts/native-hook-transport.mjs +21 -15
  76. package/payload/overlays/codex/.codex-plugin/plugin.json +1 -1
  77. package/payload/overlays/codex/authoring/studio-creators/material.json +1 -1
  78. package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/bundle-checklist.md +1 -1
  79. package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/panel-authoring.md +6 -4
  80. package/payload/overlays/codex/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/inspect-panel-component.mjs +27 -33
  81. package/payload/overlays/codex/authoring/studio-creators/source/docs/dsl-spec.md +104 -19
  82. package/payload/overlays/codex/authoring/studio-creators/source/docs/panel-uiux-standard.md +361 -90
  83. package/payload/overlays/codex/authoring/studio-creators/source/docs/system-design-baseline.md +1 -1
  84. package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/SKILL.md +7 -4
  85. package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/artifact-contract.md +12 -5
  86. package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/bpmn_authoring.md +13 -10
  87. package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/canvas-guide.md +2 -1
  88. package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/schema.yaml +1 -1
  89. package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/artifact-contract.md +5 -0
  90. package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/preview.json +1 -0
  91. package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/schema.yaml +4 -0
  92. package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/SKILL.md +4 -2
  93. package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/reference/artifact-contract.md +16 -8
  94. package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/schema.yaml +2 -2
  95. package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/SKILL.md +4 -0
  96. package/payload/overlays/codex/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/reference/artifact-contract.md +6 -0
  97. package/payload/overlays/qoder/.qoder-plugin/plugin.json +1 -1
  98. package/payload/overlays/qoder/authoring/studio-creators/material.json +1 -1
  99. package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/bundle-checklist.md +1 -1
  100. package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/panel-authoring.md +6 -4
  101. package/payload/overlays/qoder/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/inspect-panel-component.mjs +27 -33
  102. package/payload/overlays/qoder/authoring/studio-creators/source/docs/dsl-spec.md +104 -19
  103. package/payload/overlays/qoder/authoring/studio-creators/source/docs/panel-uiux-standard.md +361 -90
  104. package/payload/overlays/qoder/authoring/studio-creators/source/docs/system-design-baseline.md +1 -1
  105. package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/SKILL.md +7 -4
  106. package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/artifact-contract.md +12 -5
  107. package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/bpmn_authoring.md +13 -10
  108. package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/canvas-guide.md +2 -1
  109. package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/schema.yaml +1 -1
  110. package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/artifact-contract.md +5 -0
  111. package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/preview.json +1 -0
  112. package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/schema.yaml +4 -0
  113. package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/SKILL.md +4 -2
  114. package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/reference/artifact-contract.md +16 -8
  115. package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/schema.yaml +2 -2
  116. package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/SKILL.md +4 -0
  117. package/payload/overlays/qoder/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/reference/artifact-contract.md +6 -0
  118. package/payload/overlays/qoder/scripts/native-hook-transport.mjs +21 -15
  119. package/payload/shared/authoring/panel-components.json +1015 -878
  120. package/payload/shared/authoring/studio-creators/material.json +1 -1
  121. package/payload/shared/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/bundle-checklist.md +1 -1
  122. package/payload/shared/authoring/studio-creators/source/.agents/skills/design-bundle-creator/references/panel-authoring.md +6 -4
  123. package/payload/shared/authoring/studio-creators/source/.agents/skills/design-bundle-creator/scripts/inspect-panel-component.mjs +27 -33
  124. package/payload/shared/authoring/studio-creators/source/docs/dsl-spec.md +104 -19
  125. package/payload/shared/authoring/studio-creators/source/docs/panel-uiux-standard.md +361 -90
  126. package/payload/shared/authoring/studio-creators/source/docs/system-design-baseline.md +1 -1
  127. package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/SKILL.md +7 -4
  128. package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/artifact-contract.md +12 -5
  129. package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/bpmn_authoring.md +13 -10
  130. package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/reference/canvas-guide.md +2 -1
  131. package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/flow_design/schema.yaml +1 -1
  132. package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/artifact-contract.md +5 -0
  133. package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/reference/preview.json +1 -0
  134. package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/function_modules/schema.yaml +4 -0
  135. package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/SKILL.md +4 -2
  136. package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/reference/artifact-contract.md +16 -8
  137. package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/smart_questions/schema.yaml +2 -2
  138. package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/SKILL.md +4 -0
  139. package/payload/shared/authoring/studio-creators/source/packages/skills-web-app/bundles/web_app_prd_assembly/reference/artifact-contract.md +6 -0
  140. package/payload/shared/bundles/ai_agent_capabilities/locales/en-US.json +29 -28
  141. package/payload/shared/bundles/ai_agent_capabilities/locales/zh-CN.json +35 -34
  142. package/payload/shared/bundles/ai_agent_capabilities/panel.yaml +55 -75
  143. package/payload/shared/bundles/business_data/locales/en-US.json +2 -2
  144. package/payload/shared/bundles/business_data/locales/zh-CN.json +1 -1
  145. package/payload/shared/bundles/business_rules/locales/en-US.json +2 -3
  146. package/payload/shared/bundles/business_rules/locales/zh-CN.json +2 -3
  147. package/payload/shared/bundles/business_rules/panel.yaml +4 -10
  148. package/payload/shared/bundles/design_style/locales/en-US.json +4 -4
  149. package/payload/shared/bundles/design_style/locales/zh-CN.json +4 -4
  150. package/payload/shared/bundles/flow_design/LICENSE +202 -0
  151. package/payload/shared/bundles/flow_design/NOTICE +13 -0
  152. package/payload/shared/bundles/flow_design/SKILL.md +7 -4
  153. package/payload/shared/bundles/flow_design/THIRD_PARTY_NOTICES.md +35 -0
  154. package/payload/shared/bundles/flow_design/licenses/bundled-js/bpmn-moddle@9.0.4/LICENSE +21 -0
  155. package/payload/shared/bundles/flow_design/licenses/bundled-js/min-dash@4.2.3/LICENSE +21 -0
  156. package/payload/shared/bundles/flow_design/licenses/bundled-js/moddle-xml@11.0.0/LICENSE +21 -0
  157. package/payload/shared/bundles/flow_design/licenses/bundled-js/moddle@7.2.0/LICENSE +21 -0
  158. package/payload/shared/bundles/flow_design/licenses/bundled-js/rolldown@1.2.4/LICENSE +25 -0
  159. package/payload/shared/bundles/flow_design/licenses/bundled-js/rolldown@1.2.4/THIRD-PARTY-LICENSE +33 -0
  160. package/payload/shared/bundles/flow_design/licenses/bundled-js/saxen@10.0.0/LICENSE +21 -0
  161. package/payload/shared/bundles/flow_design/licenses/flow-build.json +204 -0
  162. package/payload/shared/bundles/flow_design/licenses/third-party/elkjs-0.10.2/DEPENDENCIES +631 -0
  163. package/payload/shared/bundles/flow_design/licenses/third-party/elkjs-0.10.2/LICENSE.md +264 -0
  164. package/payload/shared/bundles/flow_design/licenses/third-party/elkjs-0.10.2/NOTICE.md +55 -0
  165. package/payload/shared/bundles/flow_design/licenses/third-party/elkjs-0.10.2/SOURCE.md +62 -0
  166. package/payload/shared/bundles/flow_design/licenses/third-party/elkjs-0.10.2/graph-layout-worker.ts +33 -0
  167. package/payload/shared/bundles/flow_design/licenses/third-party/elkjs-0.10.2/release-source-binding.json +81 -0
  168. package/payload/shared/bundles/flow_design/licenses/third-party/elkjs-0.10.2/upstream-README.md +391 -0
  169. package/payload/shared/bundles/flow_design/licenses/third-party/elkjs-0.10.2/upstream-build.gradle +322 -0
  170. package/payload/shared/bundles/flow_design/licenses/third-party/elkjs-0.10.2/upstream-ci.yml +67 -0
  171. package/payload/shared/bundles/flow_design/reference/artifact-contract.md +12 -5
  172. package/payload/shared/bundles/flow_design/reference/bpmn_authoring.md +13 -10
  173. package/payload/shared/bundles/flow_design/reference/canvas-guide.md +2 -1
  174. package/payload/shared/bundles/flow_design/schema.yaml +1 -1
  175. package/payload/shared/bundles/flow_design/scripts/bpmn-validator.mjs +35 -20
  176. package/payload/shared/bundles/function_modules/locales/en-US.json +2 -2
  177. package/payload/shared/bundles/function_modules/panel.yaml +1 -0
  178. package/payload/shared/bundles/function_modules/reference/artifact-contract.md +5 -0
  179. package/payload/shared/bundles/function_modules/reference/preview.json +1 -0
  180. package/payload/shared/bundles/function_modules/schema.yaml +4 -0
  181. package/payload/shared/bundles/integration_design/locales/en-US.json +3 -1
  182. package/payload/shared/bundles/integration_design/locales/zh-CN.json +3 -1
  183. package/payload/shared/bundles/integration_design/panel.yaml +18 -2
  184. package/payload/shared/bundles/notification_design/locales/en-US.json +2 -0
  185. package/payload/shared/bundles/notification_design/locales/zh-CN.json +2 -0
  186. package/payload/shared/bundles/notification_design/panel.yaml +18 -6
  187. package/payload/shared/bundles/page_design/locales/en-US.json +12 -1
  188. package/payload/shared/bundles/page_design/locales/zh-CN.json +12 -1
  189. package/payload/shared/bundles/page_design/panel.yaml +23 -1
  190. package/payload/shared/bundles/quality_acceptance/locales/en-US.json +2 -2
  191. package/payload/shared/bundles/quality_acceptance/locales/zh-CN.json +2 -2
  192. package/payload/shared/bundles/quality_acceptance/panel.yaml +10 -7
  193. package/payload/shared/bundles/role_access/locales/en-US.json +5 -5
  194. package/payload/shared/bundles/role_access/locales/zh-CN.json +5 -5
  195. package/payload/shared/bundles/smart_questions/SKILL.md +4 -2
  196. package/payload/shared/bundles/smart_questions/reference/artifact-contract.md +16 -8
  197. package/payload/shared/bundles/smart_questions/schema.yaml +2 -2
  198. package/payload/shared/bundles/web_app_prd_assembly/SKILL.md +4 -0
  199. package/payload/shared/bundles/web_app_prd_assembly/locales/en-US.json +2 -2
  200. package/payload/shared/bundles/web_app_prd_assembly/locales/zh-CN.json +1 -1
  201. package/payload/shared/bundles/web_app_prd_assembly/reference/artifact-contract.md +6 -0
  202. package/payload/shared/bundles/web_app_prd_assembly/scripts/prd.mjs +28 -16
  203. package/payload/shared/scripts/{content-archive-CnwVcuWA.mjs → content-archive-BvVmbecb.mjs} +2 -2
  204. package/payload/shared/scripts/{core-entry-DESmwP78.mjs → core-entry-S65aB8cC.mjs} +47 -0
  205. package/payload/shared/scripts/design.mjs +2 -2
  206. package/payload/shared/scripts/git-runtime-check.mjs +1 -1
  207. package/payload/shared/scripts/knowledge-snapshot-query.mjs +1 -1
  208. package/payload/shared/scripts/{load-C-RwS23Y.mjs → load-D1xLlKL_.mjs} +1 -1
  209. package/payload/shared/scripts/{panel-preview-BeVRYFk1.mjs → panel-preview-D-OD9mro.mjs} +2 -2
  210. package/payload/shared/scripts/{server-BnEtfptI.mjs → server-B6kGo8xO.mjs} +159 -55
  211. package/payload/shared/scripts/{studio-CFUWk0vJ.mjs → studio-DumCCbFT.mjs} +6 -6
  212. package/payload/shared/scripts/{studio-instance-composition-BJzYMyvV.mjs → studio-instance-composition-DfbZVetl.mjs} +2 -2
  213. package/payload/shared/scripts/{studio-instances-gQFR9yqL.mjs → studio-instances-BnVSHNCf.mjs} +3 -3
  214. package/payload/shared/scripts/{studio-panel-drafts-Dq171F6x.mjs → studio-panel-drafts-DSxfgHfk.mjs} +1 -1
  215. package/payload/shared/scripts/workbuddy-panel-service.mjs +1 -1
  216. 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
  217. 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
  218. 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
  219. package/payload/shared/web/client.js +3373 -1842
  220. package/release-hosts.json +1 -1
  221. package/release-manifest.json +223 -203
@@ -27,7 +27,7 @@
27
27
 
28
28
  控件和组件是封闭集合,写入前读 `panel-dsl.ts` 中相应类型与绑定规则。例如当前有 `list` / `multi_select`,没有一个可任意猜用的 `tags` 控件;子表格控件还受 `ROW_COLUMN_CONTROLS` 限制。按数据和交互目标选类型,不照搬其他 UI 框架的命名。
29
29
 
30
- 问题清单优先使用标准 `question_workspace`(无侧栏需求的极小清单可用 `question_list`),不要用 `record_form` 重新拼一套问答 UI。工作区复用通用 `panel_workspace` 的左侧导航和主内容边界;左侧只承载导航,工作区说明写在 `description`,由共享的顶部悬浮 Tip Bar 呈现,不要把长说明塞进窄侧栏。可选 `round` 自动形成轮次,未声明轮次时仍形成一个“当前问题”分组。记录的通用字段是 `prompt`、可选 `note`、`kind`(`text | single | multiple`)、可选 `choices`、`answer` 和可选 `detail`;其中 `choices` 仅服务交互选项,用户事实以非空 `answer` 为准。文本题只编辑一个 `answer` 文本框,已有 `detail` 作为只读上下文保留;选择题可用 `detail` 补充所选答案。可选 `rejected` 只表达问题交互状态;可选 `multimodal_answer` 使用标准本地附件引用,上传字节由 Host 的浏览器传输与 Panel Save 原子保存,绝不能进入 canonical JSON。不要为不需要的 Bundle 强制添加轮次、拒答或附件字段。
30
+ 问题清单优先使用标准 `question_workspace`(无侧栏需求的极小清单可用 `question_list`),不要用 `record_form` 重新拼一套问答 UI。工作区复用通用 `panel_workspace` 的左侧导航和主内容边界;左侧只承载导航,工作区说明写在 `description`,由共享的顶部悬浮 Tip Bar 呈现,不要把长说明塞进窄侧栏。可选 `round` 自动形成轮次,未声明轮次时仍形成一个“当前问题”分组。记录的通用字段是 `prompt`、可选 `note`、`kind`(`text | single | multiple`)、可选 `choices`、`answer` 和可选 `detail`;其中 `choices` 仅服务交互选项,用户事实以非空 `answer` 为准。文本题只显示一个 `answer` 文本框,不另显示 `detail` 输入或历史只读区;选择题可用 `detail` 补充所选答案。可选 `rejected` 只表达问题交互状态;可选 `multimodal_answer` 使用标准本地附件引用,上传字节由 Host 的浏览器传输与 Panel Save 原子保存,绝不能进入 canonical JSON。不要为不需要的 Bundle 强制添加轮次、拒答或附件字段。
31
31
 
32
32
  需要 Panel 内左侧导航的其他信息切片使用 `panel_workspace` 的 `sidebar` / `main` slots,复用统一的 containment、滚动和窄宽度退化;不要只为某个 Kit 复制一套双栏 CSS。该布局只定义交互骨架,不改变 Bundle 的 canonical 所有权和领域结构。
33
33
 
@@ -155,8 +155,10 @@ Kit loader 检查条件约束。结构校验不等于 schema、交互或保存
155
155
  - 嵌套表单复用完整字段组与重复集合:组间16px、组内8px,添加位于所属集合尾部,
156
156
  折叠只改变可见性。不靠空白节点、分割线或 CSS 补偿共享组件的排版缺陷;
157
157
  发现缺陷应修共享实现并横向验证至少一个同形态的其他面板。
158
- 内联折叠的标题文字对齐正文左边界,箭头紧跟标题、间隔8px,不继承普通按钮
159
- 的水平内边距;展开不额外缩进,首组仍间隔16px。不要用字段声明补空格。
158
+ 已有语义灰组统一支持整体折叠、默认展开,允许并开,不按条目或字段数量判断,
159
+ 不为普通字段或选项另添包装。标题文字对齐正文左边界,整条标题栏按“标题 → 帮助/数量/操作 → 最右折叠箭头”排列,
160
+ 箭头不能停在题干后、操作前,同类内容组不保留居中箭头例外;
161
+ 展开不额外缩进,标题到所属正文8px,独立内容组间16px(紧凑6px/12px)。不要用字段声明补空格。
160
162
  这不是结构树规则:树的前置层级箭头与缩进保持不变。
161
163
  - 简短同级单选显式使用 `choice_layout: row_wrap`,横向排列并随内容区宽度自然
162
164
  换行,复用共享行间8px/列间20px;不拉伸选项、不缩字、不增加横向滚动。
@@ -322,8 +324,8 @@ reference_field);普通关联绝不自动级联删除。当前契约仅支
322
324
  用户文件。显示标签与领域绑定归 Bundle,运行时不能按 Bundle 名选择特例。
323
325
 
324
326
  长记录可使用静态 `form.body` 的 `kind: tabs`(id/title/tabs,每页 id/title/items),
325
- 页内复用 field/row/group,禁止递归 tabs;字段不能跨页重复。低频字段组可声明
326
- `collapsible: true` 并提供明确标题。共享页签与折叠只改变显示,保留完整编辑内容;
327
+ 页内复用 field/row/group,禁止递归 tabs;字段不能跨页重复。语义灰组的折叠沿用共享默认展开,
328
+ 已有 `collapsible` / `default_open` 声明仍遵循目标运行时契约,不因低频另定一套开关规则。共享页签与折叠只改变显示,保留完整编辑内容;
327
329
  默认页先回答用户最重要的产品问题,不以技术配置开场。这些静态 form 扩展不
328
330
  自动进入生成式 A2UI 白名单。实际作者仍须核对当前 DSL 与渲染回归。
329
331
 
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  /** Source-derived authoring reference, not another schema or runtime validator. */
3
- import { readFile, readdir } from 'node:fs/promises'
3
+ import { readFile } from 'node:fs/promises'
4
4
  import { createRequire } from 'node:module'
5
- import { resolve, relative, join } from 'node:path'
5
+ import { resolve, join } from 'node:path'
6
6
  import { pathToFileURL } from 'node:url'
7
7
 
8
8
  // The complete trusted shared guide has a separate budget from each focused
9
9
  // component section (16 KiB), the DSL document (256 KiB), and the packaged
10
- // authoring artifact (4 MB). Keep the guide whole; never truncate its methods.
11
- const MAX_SHARED_STANDARD_BYTES = 128 * 1024
10
+ // authoring artifact (6,000,000 bytes). Keep the guide whole; never truncate its methods.
11
+ const MAX_SHARED_STANDARD_BYTES = 256 * 1024
12
12
 
13
13
  async function inspectionContext(repo) {
14
14
  repo = resolve(repo)
@@ -161,34 +161,23 @@ async function inspectWithContext(context, name, typeName, options = {}) {
161
161
  const { parsePanelManifest } = await import(pathToFileURL(join(repo, contractPath)).href)
162
162
  const examples = []
163
163
  const invalidExamples = []
164
- const packages = join(repo, 'packages')
165
- const packageEntries = (await readdir(packages, { withFileTypes: true }))
166
- .filter(entry => entry.isDirectory() && entry.name.startsWith('skills-'))
167
- .sort((a, b) => a.name.localeCompare(b.name))
168
- for (const entry of packageEntries) {
169
- const packageRoot = join(packages, entry.name)
170
- const manifest = JSON.parse(await readFile(join(packageRoot, 'package.json'), 'utf8'))
171
- const skills = join(packageRoot, manifest.designSystem?.kit?.bundles ?? manifest.designSystem?.kit?.skills ?? './skills')
172
- let bundles
173
- try { bundles = await readdir(skills, { withFileTypes: true }) }
174
- catch (error) { if (error.code === 'ENOENT') continue; throw error }
175
- for (const bundle of bundles.filter(item => item.isDirectory()).sort((a, b) => a.name.localeCompare(b.name))) {
176
- const path = join(skills, bundle.name, 'panel.yaml')
177
- let text
178
- try { text = await readFile(path, 'utf8') }
179
- catch (error) { if (error.code === 'ENOENT') continue; throw error }
180
- let manifest
181
- try { manifest = parsePanelManifest(text) }
182
- catch (error) { invalidExamples.push({ file: relative(repo, path), error: error.message }); continue }
183
- function visit(node, pointer) {
184
- if (node.component === name) examples.push({
185
- file: relative(repo, path), pointer, node, validation: 'panel-structure-only',
186
- })
187
- for (const [index, child] of (node.children ?? []).entries()) visit(child, `${pointer}/children/${index}`)
188
- for (const [slot, child] of Object.entries(node.slots ?? {})) if (child) visit(child, `${pointer}/slots/${slot}`)
189
- }
190
- visit(manifest.ui, '/ui')
164
+ // Share the exact build-time source paths used by input hashing. Runtime
165
+ // package declarations can point to lib/, but source examples never read it.
166
+ const { panelAuthoringInputPaths } = await import(pathToFileURL(join(repo, 'scripts/companion-authoring-material.mjs')).href)
167
+ for (const file of (await panelAuthoringInputPaths(repo)).filter(path => path.endsWith('/panel.yaml'))) {
168
+ const path = join(repo, file)
169
+ const text = await readFile(path, 'utf8')
170
+ let manifest
171
+ try { manifest = parsePanelManifest(text) }
172
+ catch (error) { invalidExamples.push({ file, error: error.message }); continue }
173
+ function visit(node, pointer) {
174
+ if (node.component === name) examples.push({
175
+ file, pointer, node, validation: 'panel-structure-only',
176
+ })
177
+ for (const [index, child] of (node.children ?? []).entries()) visit(child, `${pointer}/children/${index}`)
178
+ for (const [slot, child] of Object.entries(node.slots ?? {})) if (child) visit(child, `${pointer}/slots/${slot}`)
191
179
  }
180
+ visit(manifest.ui, '/ui')
192
181
  }
193
182
  return {
194
183
  ...base,
@@ -229,10 +218,15 @@ export async function exportPanelAuthoringReference(repo) {
229
218
  else names.push(name)
230
219
  }
231
220
  const components = Object.create(null), contracts = Object.create(null)
221
+ let sharedStandards
232
222
  for (const name of COMPONENT_KINDS) {
233
223
  const reference = await inspectWithContext(context, name)
234
224
  const documentation = await inspectWithContext(context, name, undefined, { documentationOnly: true })
235
- components[name] = { ...reference, documentation: documentation.documentation }
225
+ // Store the complete common guide once; component-specific documentation
226
+ // remains inline. Packaged docs queries restore the existing response shape.
227
+ const { sharedStandards: guide, ...componentDocumentation } = documentation.documentation
228
+ sharedStandards ??= guide
229
+ components[name] = { ...reference, documentation: componentDocumentation }
236
230
  }
237
231
  // Contract names are source-derived, including focused nested properties;
238
232
  // they are not another component vocabulary or a per-component JSON Schema.
@@ -241,7 +235,7 @@ export async function exportPanelAuthoringReference(repo) {
241
235
  }
242
236
  const callbackSource = await readFile(join(repo, 'packages/panel/src/interpreter.ts'), 'utf8')
243
237
  return {
244
- format: 'panel-authoring-reference/v1', catalogIdentity: panelAuthoringCatalogIdentity(), components, contracts,
238
+ format: 'panel-authoring-reference/v1', catalogIdentity: panelAuthoringCatalogIdentity(), components, contracts, sharedStandards,
245
239
  hostCallbackContract: {
246
240
  file: 'packages/panel/src/interpreter.ts', type: 'RenderOptions',
247
241
  declaration: (() => {
@@ -120,11 +120,13 @@ manifest against the actual target version before publishing it.
120
120
 
121
121
  ### Long text editing
122
122
 
123
- Authored `textarea` fields may opt into `textarea_rows: 3..20` to give complete
124
- instructions or configuration text a readable initial viewport. This is finite
125
- presentation only: it does not trim text, parse it, change storage or impose a
123
+ Multiline fields fit actual content from one line up to five automatic lines,
124
+ then scroll internally. Users can resize them beyond that automatic limit.
125
+ `textarea_rows`, when provided, chooses an automatic row budget between three
126
+ and five; larger existing values are capped at five, never used as a minimum
127
+ height. This is finite presentation only: it does not trim text, parse it, change storage or impose a
126
128
  character limit. Typed `record_map.item_fields` use the same leaf rule. Omission
127
- preserves existing sizing; generated-origin panels do not expose this option.
129
+ uses the five-line automatic budget; generated-origin panels do not expose this option.
128
130
 
129
131
  ### Same-record inspector views
130
132
 
@@ -200,14 +202,17 @@ are read on demand through the existing host artifact port, only when the path
200
202
  is safe, is present in `artifactFiles`, and an exact `sourceRevision` is available.
201
203
  The source revision is passed to the reader. The preview is escaped plain text,
202
204
  bounded to 262,144 characters, with unavailable and retry states; no code, HTML or
203
- model is executed. Nonempty provenance/evidence uses a folded readonly view;
205
+ model is executed. File reading starts only when the user explicitly opens that
206
+ file preview; opening a surrounding group does not activate it.
207
+ Nonempty provenance/evidence uses an initially open readonly group;
204
208
  empty technical fields are not presented as a form. Other unbound fields retain
205
209
  their original field controls, not an inferred metadata role.
206
210
 
207
211
  Each statement is a collapsible card, expanded initially, containing its business explanation, formula
208
- and relevant shared symbol definitions, with a source disclosure at the bottom.
209
- Per-formula symbol definitions are initially folded, showing their count; source,
210
- complete-model and technical-record disclosures also start folded.
212
+ and relevant shared symbol definitions, with readonly source context at the bottom.
213
+ Per-formula symbol definitions, the complete model and technical records reuse
214
+ the shared initially open disclosure groups. Users can close each independently;
215
+ neither one-item content nor property count removes the disclosure control.
211
216
  The complete formulation is a separate collapsible card containing the editable
212
217
  symbol glossary. Folds are local presentation, not saved facts or approval.
213
218
  Symbol usage is a read-only projection of matching rendered MathML notation; it
@@ -634,12 +639,25 @@ contain only the existing field/row/group items: no nested tabs or groups.
634
639
  They reuse the shared `tabs` component, including keyboard navigation, stable
635
640
  ID selection and mounted inactive editors. Fields remain unique across all
636
641
  pages and the record header; fallback fields are appended once outside tabs.
642
+ Section `description` supplies whole-record guidance in the shared record header;
643
+ group descriptions and field help appear beside their captions through shared
644
+ hover/focus/click help, not as trailing paragraphs. Saved descriptive fields
645
+ remain ordinary editable business content.
637
646
  Changing page, language or disclosure state emits no canonical edit and never
638
647
  clears existing values. Readonly follows the original field's authority.
639
- `group.collapsible: true` requires a nonempty title, starts closed and uses the
640
- shared disclosure glyph with native keyboard-accessible details semantics.
641
- Its content remains mounted; display state is not another data field. Choose
642
- this only for optional material, not to hide an unresolved blocking decision.
648
+ `group.collapsible: true` requires a nonempty title and uses the shared disclosure
649
+ glyph with native keyboard-accessible details semantics. All existing semantic
650
+ grey content groups support disclosure and start open by default; several groups
651
+ may remain open together. Item, property and option counts do not decide whether
652
+ a group can collapse. Ordinary fields and choices do not gain extra wrappers.
653
+ The complete content header orders the title, existing help/count/actions, then
654
+ the disclosure glyph at its far right; actions must not follow the glyph.
655
+ This does not change the leading chevrons of ordinary navigation trees.
656
+ The existing optional `default_open` boolean remains valid only on an explicitly
657
+ collapsible authored group; an explicit `false` retains its initial-state meaning.
658
+ Later renders, locale changes and readonly changes do
659
+ not reset the user's disclosure choice. Content remains mounted; display state
660
+ is not another data field. Never hide an unresolved blocking decision by default.
643
661
  Both additions are static authored form presentation; generated-origin A2UI
644
662
  still rejects the complete `form` extension rather than silently dropping it.
645
663
 
@@ -987,10 +1005,30 @@ Ordinary `detail_sections` retain their existing same-record nested-form meaning
987
1005
  directly, cards have no artificial group heading, and the overview connects the
988
1006
  root directly to records. Do not bind long summaries merely to satisfy grouping;
989
1007
  this projection never adds a grouping field to canonical records.
990
- Sidebar selection scrolls to a card; it does not start editing. Description and
991
- badge drafts have explicit Save/Cancel, while rejected records remain inspectable
992
- without granting edit access. Optional `board.id_field` binds a declared visible,
993
- readonly `text` field and displays its existing string beside the card title and
1008
+ Sidebar selection scrolls the board's own content to the card title; it does not
1009
+ start editing or move the host conversation. Manual scrolling updates the current
1010
+ sidebar record, including a current cue on a collapsed navigation group. The
1011
+ reading order honors the section's durable order; grouping preserves first-group
1012
+ and within-group order without changing stored data. `board.overview: false`
1013
+ omits the generated mind-map entry when it does not help the task.
1014
+
1015
+ Optional `board.body_fields` declares an ordered list of visible text/textarea
1016
+ fields, including `description`. It replaces the unlabeled description with labeled
1017
+ content using the existing field labels. Editable cards expose those fields and the
1018
+ optional group field directly in the shared Panel draft. Readonly cards retain labels
1019
+ for required fields even when empty; optional empty values do not occupy reading space.
1020
+ Header, group and detail
1021
+ bindings cannot duplicate the body fields. Ordinary section creation/deletion and
1022
+ reordering remain available when the existing section allows them; request-based
1023
+ creation retains its host-owned workflow.
1024
+ Grouped reordering swaps adjacent visible records within their current group in
1025
+ the durable order, leaving other groups and filtered-out records in place. The
1026
+ first and last records in that group disable their respective move actions.
1027
+ Description, body, title and badge edits use the Panel's existing Save/Cancel boundary;
1028
+ cards do not add a second save mode. Rejected records remain inspectable without
1029
+ granting edit access. Available move/delete actions remain visible on the right of
1030
+ the card title. Optional `board.id_field` binds a declared visible,
1031
+ readonly `text` field and displays its existing string before the card title and
994
1032
  at the top of cover details. Inline details retain the same card header. It does
995
1033
  not add an ID editor, generate a fallback ID or write state; omission retains the
996
1034
  existing title-only presentation. `board.detail_fields` restricts the parent fields
@@ -1097,9 +1135,13 @@ authored extension.
1097
1135
 
1098
1136
  Each group may declare a `presentation` object containing only optional boolean
1099
1137
  `always_expanded`, `show_detail`, and `show_attachments` properties. These select
1100
- shared component behavior, not Bundle-specific styling. Omission preserves the
1101
- usual collapse, detail, and attachment controls. Hiding a control preserves its
1102
- canonical data; keeping a card expanded does not grant editing permission.
1138
+ shared component behavior, not Bundle-specific styling. `always_expanded` selects
1139
+ the answer area's reading/editing presentation; it does not prevent the user from
1140
+ collapsing the outer grey question frame. That frame starts open, and its
1141
+ disclosure is independent of editing, finishing or rejecting an answer.
1142
+ Omission preserves the usual answer, detail and attachment behavior. Hiding a
1143
+ control or closing the frame preserves canonical data and mounted drafts;
1144
+ keeping an answer expanded does not grant editing permission.
1103
1145
  Read-only, disabled, protected, historical and rejection guards still apply.
1104
1146
 
1105
1147
  `question_workspace` composes the same question cards with the standard
@@ -1282,6 +1324,49 @@ mounting does not collide with host navigation. Hosts must load shared Panel
1282
1324
  styles; the component does not inject CSS. Test keyboard/hidden behavior and
1283
1325
  narrow-container overflow in a real browser in addition to structural checks.
1284
1326
 
1327
+ ## Reading nested saved facts
1328
+
1329
+ `structured_data` reads its existing `source` path. Optional `read_fields`
1330
+ declares display labels and reading order without adding fields to Design JSON:
1331
+
1332
+ ```yaml
1333
+ component: structured_data
1334
+ id: shared-reading
1335
+ source: common_spec
1336
+ read_fields:
1337
+ - {key: layout, label: '$t:layout'}
1338
+ - key: navigation
1339
+ label: $t:navigation
1340
+ item_label_field: label
1341
+ fields:
1342
+ - {key: target_page_id, label: '$t:targetPage', options_from_section: pages}
1343
+ - {key: icon_ref, label: '$t:iconReference', collapsed: true}
1344
+ - {key: source, label: '$t:source', collapsed: true}
1345
+ ```
1346
+
1347
+ Each declaration has a direct own-property `key` and nonempty `label`.
1348
+ `fields` describes a nested object, or each object in an array;
1349
+ `item_label_field` uses an existing scalar property as an array item's heading.
1350
+ That property is not repeated as a separate row when its value is shown in the
1351
+ heading. Missing, empty or non-scalar headings leave the original property
1352
+ readable. String arrays remain ordinary text lists. `collapsed: true` folds
1353
+ low-frequency details, including scalar references; declared content otherwise
1354
+ opens directly. Labels use the existing `$t:` resources recursively; property
1355
+ keys, source paths, reference IDs and saved values never translate.
1356
+
1357
+ `options_from_section` names an existing declared section. Its current record
1358
+ label is shown beside the original ID; unresolved references keep their ID.
1359
+ This is the existing section/record-label lookup, not an external lookup or
1360
+ permission grant. Declared keys appear first in authored order, followed by
1361
+ undeclared keys in their saved order with their original names. Declarations
1362
+ never remove unknown properties, rewrite values, create missing content, or
1363
+ make this reading view editable. Without `read_fields`, existing generic
1364
+ reading remains unchanged. The same bounded traversal (eight levels and 100
1365
+ entries per level, with visible overflow feedback) applies. Declarations are
1366
+ limited to eight levels and 100 entries per level; duplicate keys, unsafe
1367
+ property names, unknown section references and invalid option types fail
1368
+ manifest validation.
1369
+
1285
1370
  ## Validation rules (fail loud)
1286
1371
 
1287
1372
  `parsePanelManifest` / `validatePanelManifest` reject a manifest when: