@shundoo-ai/dsh-cosmic 1.0.21 → 1.0.22

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 (218) hide show
  1. package/package.json +1 -1
  2. package/skills/cosmic-build/LOCAL-PATCHES.md +43 -14
  3. package/skills/cosmic-build/SKILL.md +24 -9
  4. package/skills/cosmic-build/examples/java-rules/CosmicReportAggregation.java +26 -17
  5. package/skills/cosmic-build/examples/java-rules/CosmicReportFilters.java +96 -2
  6. package/skills/cosmic-build/knowledge/cosmic/arch/security/security_standard.md +4 -4
  7. package/skills/cosmic-build/knowledge/cosmic/platform/allimport.md +2 -1
  8. package/skills/cosmic-build/knowledge/cosmic/platform/core/dynamic-object-collection.md +6 -4
  9. package/skills/cosmic-build/knowledge/cosmic/platform/core/model.md +9 -9
  10. package/skills/cosmic-build/knowledge/cosmic/platform/core/view.md +5 -5
  11. package/skills/cosmic-build/knowledge/cosmic/platform/form-plugin.md +8 -4
  12. package/skills/cosmic-build/knowledge/cosmic/platform/list-plugin.md +5 -3
  13. package/skills/cosmic-build/knowledge/cosmic/platform/print-plugin-guide.md +1 -0
  14. package/skills/cosmic-build/knowledge/cosmic/platform/report-plugin.md +269 -57
  15. package/skills/cosmic-build/knowledge/cosmic/platform/reportlistdata-plugin.md +130 -23
  16. package/skills/cosmic-build/knowledge/cosmic/platform/reporttreedata-plugin.md +48 -28
  17. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/_index.md +12 -3
  18. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/common/attachment-name-process.md +17 -13
  19. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/common/dynamic-update-field.md +4 -4
  20. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/control/filter-grid/filter-grid-set-value.md +1 -1
  21. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/control/list/filter-basedatafield.md +2 -3
  22. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/control/list/filter-container-init.md +0 -1
  23. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/control/list/filter-popup.md +0 -1
  24. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/control/list/filter-value-parse.md +5 -6
  25. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/control/list/list-show-form.md +1 -1
  26. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/control/list/query-field-dynamic.md +0 -7
  27. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/data-access/business-data/delete-service.md +24 -29
  28. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/data-access/ksql/db-batch.md +4 -0
  29. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/data-access/ksql/db-direct-access.md +4 -0
  30. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/data-access/qfilter/entity-object-access.md +8 -3
  31. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/data-access/qfilter/qfilter-compose.md +6 -5
  32. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/event/after-bind-data-set-visible.md +5 -1
  33. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/event/click-return-data.md +2 -2
  34. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/event/closed-call-back-set-value.md +2 -2
  35. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/event/register-listener.md +1 -1
  36. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/event/set-filter-tab-org.md +3 -0
  37. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/infra/dispatch-service/microservice-dev.md +18 -11
  38. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/infra/dist-lock/dist-lock-basic.md +3 -6
  39. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/infra/mq/mq-subscribe.md +5 -1
  40. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/infra/thread-pool/async-operation.md +10 -6
  41. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/infra/thread-pool/big-task-async.md +4 -2
  42. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/infra/thread-pool/schedule-task.md +9 -7
  43. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/operation/operation-interactive.md +33 -34
  44. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/operation/operation-plugin-events.md +30 -22
  45. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-async-query.md +133 -0
  46. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-batch-query.md +26 -22
  47. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-chart.md +112 -0
  48. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-dataset-assembly.md +200 -0
  49. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-head-filter.md +177 -0
  50. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-hyperlink-drill.md +216 -0
  51. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-list-data-query.md +12 -12
  52. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-merge-column.md +44 -6
  53. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-print-data.md +163 -0
  54. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-row-data-toolbar.md +188 -0
  55. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-subtotal-total.md +139 -0
  56. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-tree-data-query.md +108 -12
  57. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-tree-list.md +181 -0
  58. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/system-service/report-plugin-interface.md +3 -0
  59. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/tree/tree-basedata-cascade-confirm.md +14 -11
  60. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/tree/tree-list-before-item-validate.md +1 -1
  61. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/tree/tree-list-build-filter.md +1 -1
  62. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/tree/tree-list-multi-level-filter.md +11 -11
  63. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/tree/tree-list-refresh-node.md +22 -15
  64. package/skills/cosmic-build/knowledge/cosmic/platform/sdk/sdk-algo.md +2 -2
  65. package/skills/cosmic-build/knowledge/cosmic/platform/sdk/sdk-entity-model.md +3 -4
  66. package/skills/cosmic-build/knowledge/cosmic/platform/sdk/sdk-exception.md +9 -5
  67. package/skills/cosmic-build/knowledge/cosmic/platform/sdk/sdk-orm-access.md +4 -0
  68. package/skills/cosmic-build/knowledge/cosmic/platform/sdk/sdk-request-context.md +7 -3
  69. package/skills/cosmic-build/knowledge/cosmic/platform/standards.md +28 -3
  70. package/skills/cosmic-build/references/compile-guide.md +36 -1
  71. package/skills/cosmic-build/references/dcs-code-rules.md +180 -0
  72. package/skills/cosmic-build/references/delivery.md +16 -2
  73. package/skills/cosmic-build/references/execution-contract.md +15 -3
  74. package/skills/cosmic-build/references/java-plugin-delivery.md +21 -11
  75. package/skills/cosmic-build/references/plugin-handoff-input.md +82 -24
  76. package/skills/cosmic-build/references/plugin-runtime-routing.md +23 -6
  77. package/skills/cosmic-build/references/report-filter-contract.md +53 -15
  78. package/skills/cosmic-build/references/sdk-inspection.md +4 -1
  79. package/skills/cosmic-build/references/type-registry.json +26 -17
  80. package/skills/cosmic-build/schemas/data-model-authoring.schema.json +1 -1
  81. package/skills/cosmic-build/scripts/_http_client.py +3 -0
  82. package/skills/cosmic-build/scripts/compile_plugin_source.py +251 -42
  83. package/skills/cosmic-build/scripts/configure_list.py +112 -0
  84. package/skills/cosmic-build/scripts/dcs-rule-catalog.json +799 -0
  85. package/skills/cosmic-build/scripts/dcs_code_gate.py +1976 -0
  86. package/skills/cosmic-build/scripts/execution_binding.py +25 -0
  87. package/skills/cosmic-build/scripts/platform_api_contract.py +352 -7
  88. package/skills/cosmic-build/scripts/plugin_source_gate.py +9 -1
  89. package/skills/cosmic-build/scripts/plugin_target_sdk.py +12 -8
  90. package/skills/cosmic-build/scripts/prepare_plugin_handoff.py +488 -88
  91. package/skills/cosmic-build/scripts/query_plugin_handoff.py +207 -20
  92. package/skills/cosmic-build/scripts/register_plugins.py +27 -10
  93. package/skills/cosmic-build/scripts/render_output_cards.py +57 -20
  94. package/skills/cosmic-build/scripts/resolve_output_path.py +60 -26
  95. package/skills/cosmic-build/scripts/run_java_tests.py +162 -0
  96. package/skills/cosmic-build/scripts/sync_generated_locale_assets.py +28 -0
  97. package/skills/cosmic-build/scripts/test/fixtures/ReportSdkCheck.java +1 -22
  98. package/skills/cosmic-build/scripts/test/fixtures/list_column_property_declarations.json +887 -0
  99. package/skills/cosmic-build/scripts/test/fixtures/operation-entry-field-prepare.java +78 -0
  100. package/skills/cosmic-build/scripts/test/test_add_field_required_contract.py +12 -0
  101. package/skills/cosmic-build/scripts/test/test_batch5_drift_governance.py +23 -2
  102. package/skills/cosmic-build/scripts/test/test_compile_plugin_source.py +287 -4
  103. package/skills/cosmic-build/scripts/test/test_configure_list_delivery.py +132 -0
  104. package/skills/cosmic-build/scripts/test/test_cosmic_sdk_examples.py +58 -1
  105. package/skills/cosmic-build/scripts/test/test_data_model_contract.py +19 -0
  106. package/skills/cosmic-build/scripts/test/test_dcs_code_gate.py +901 -0
  107. package/skills/cosmic-build/scripts/test/test_delivery_stage_boundary.py +1 -1
  108. package/skills/cosmic-build/scripts/test/test_direct_cli_architecture.py +2 -0
  109. package/skills/cosmic-build/scripts/test/test_http_client.py +6 -0
  110. package/skills/cosmic-build/scripts/test/test_java_toolchain_feedback.py +206 -0
  111. package/skills/cosmic-build/scripts/test/test_kd_api.py +21 -0
  112. package/skills/cosmic-build/scripts/test/test_list_configuration_closure.py +184 -0
  113. package/skills/cosmic-build/scripts/test/test_mcp_cli.py +139 -2
  114. package/skills/cosmic-build/scripts/test/test_menu_creation_closure.py +16 -0
  115. package/skills/cosmic-build/scripts/test/test_modeling_input_recovery.py +55 -1
  116. package/skills/cosmic-build/scripts/test/test_open_world_cli_catalog.py +1 -1
  117. package/skills/cosmic-build/scripts/test/test_operation_field_preparation.py +84 -0
  118. package/skills/cosmic-build/scripts/test/test_platform_api_contract.py +322 -1
  119. package/skills/cosmic-build/scripts/test/test_plugin_handoff.py +951 -4
  120. package/skills/cosmic-build/scripts/test/test_plugin_source_gate.py +30 -2
  121. package/skills/cosmic-build/scripts/test/test_plugin_target_sdk.py +21 -0
  122. package/skills/cosmic-build/scripts/test/test_property_reroute.py +165 -0
  123. package/skills/cosmic-build/scripts/test/test_property_schema_first.py +35 -0
  124. package/skills/cosmic-build/scripts/test/test_query_plugin_handoff.py +221 -0
  125. package/skills/cosmic-build/scripts/test/test_register_plugins.py +76 -4
  126. package/skills/cosmic-build/scripts/test/test_render_output_cards.py +75 -3
  127. package/skills/cosmic-build/scripts/test/test_report_business_contract.py +27 -5
  128. package/skills/cosmic-build/scripts/test/test_report_doc_contract_sync.py +103 -11
  129. package/skills/cosmic-build/scripts/test/test_report_plugin_source_gate.py +46 -16
  130. package/skills/cosmic-build/scripts/test/test_report_properties.py +74 -15
  131. package/skills/cosmic-build/scripts/test/test_report_query_data_source.py +3 -1
  132. package/skills/cosmic-build/scripts/test/test_report_sdk_optimization.py +1 -2
  133. package/skills/cosmic-build/scripts/test/test_test_environment.py +76 -1
  134. package/skills/cosmic-build/scripts/test_environment.py +67 -1
  135. package/skills/cosmic-build/skills/cosmic-coding-impl/SKILL.md +52 -10
  136. package/skills/cosmic-build/skills/cosmic-meta-api/apis/ai_meta.md +16 -3
  137. package/skills/cosmic-build/skills/cosmic-meta-api/contracts/cli/report-write-contracts.json +59 -26
  138. package/skills/cosmic-build/skills/cosmic-meta-api/contracts/cli/rule-domain.json +1 -1
  139. package/skills/cosmic-build/skills/cosmic-meta-api/contracts/schema/report-write.schema.json +75 -18
  140. package/skills/cosmic-build/skills/cosmic-meta-api/modules/pdm/scripts/pdm_auto.py +39 -0
  141. package/skills/cosmic-build/skills/cosmic-meta-api/modules/pdm/scripts/pdm_client.py +97 -10
  142. package/skills/cosmic-build/skills/cosmic-meta-api/modules/verify/SKILL.md +10 -12
  143. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_apps.py +3 -1
  144. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_formactions.py +38 -29
  145. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_listui.py +400 -233
  146. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_metaops.py +87 -45
  147. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_properties.py +42 -15
  148. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_rules.py +135 -5
  149. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/config.py +1 -1
  150. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/execution_errors.py +1 -1
  151. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/formatters.py +17 -11
  152. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/property_reroute.py +15 -5
  153. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/report_ops.py +1429 -238
  154. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/validators.py +56 -28
  155. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/cosmic_api.py +380 -134
  156. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/field_decorator.py +1 -1
  157. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/meta_export.py +12 -11
  158. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/meta_verifier.py +42 -0
  159. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_add_field_placement_closure.py +8 -8
  160. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_build_configuration_readback.py +94 -0
  161. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_build_receipt_resume.py +47 -1
  162. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_metadata_unchanged_fail_closed.py +87 -0
  163. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_dym_evidence.py +23 -23
  164. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_entity_integrity.py +279 -4
  165. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_field_guard.py +1 -1
  166. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_plugin_contract.py +509 -32
  167. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_readback_derivation.py +178 -1
  168. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_recreate_plan.py +125 -10
  169. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_serve_contract.py +208 -0
  170. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_typed_filters.py +259 -50
  171. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_rule_inventory_perf.py +29 -0
  172. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_rule_write_closure.py +20 -0
  173. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_run_batch_post_build_recovery.py +18 -0
  174. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_run_batch_verification_evidence.py +35 -0
  175. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_run_identity_guard.py +25 -0
  176. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_time_range_rule.py +98 -0
  177. package/skills/cosmic-build/skills/cosmic-meta-knowledge/domain-model/report-model.md +20 -9
  178. package/skills/cosmic-build/skills/cosmic-meta-knowledge/generation/report-modeling-guide.md +55 -25
  179. package/skills/cosmic-build/skills/cosmic-meta-knowledge/property-guides/report-column-properties.md +15 -39
  180. package/skills/cosmic-build/skills/cosmic-meta-modeling/SKILL.md +19 -17
  181. package/skills/cosmic-build/skills/cosmic-meta-modeling/modules/report/SKILL.md +82 -38
  182. package/skills/cosmic-build/skills/cosmic-meta-modeling/modules/report/examples/golden-example-report-batch.md +64 -19
  183. package/skills/cosmic-build/skills/cosmic-meta-modeling/modules/report/examples/golden-example-report-plugin.md +32 -20
  184. package/skills/cosmic-build/skills/cosmic-meta-modeling/modules/report/examples/golden-example-report-tree.md +78 -31
  185. package/skills/cosmic-build/skills/cosmic-meta-modeling/modules/report/report-artifact-schema.json +2 -1
  186. package/skills/cosmic-build/skills/cosmic-meta-modeling/references/authoring-companion-fields.md +3 -0
  187. package/skills/cosmic-build/skills/cosmic-meta-modeling/references/authoring-list-configuration.md +2 -0
  188. package/skills/cosmic-build/skills/cosmic-meta-modeling/scripts/data_model_contract.py +3 -1
  189. package/skills/cosmic-build/skills/cosmic-meta-modeling/scripts/data_model_emit.py +27 -4
  190. package/skills/cosmic-build/skills/cosmic-meta-modeling/scripts/report_validator.py +99 -44
  191. package/skills/cosmic-build/skills/cosmic-meta-modeling/scripts/test_report_examples.py +31 -4
  192. package/skills/cosmic-build/skills/cosmic-meta-modeling/scripts/test_report_validator.py +129 -29
  193. package/skills/cosmic-build/skills/cosmic-meta-modifier/SKILL.md +6 -2
  194. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/operation/validation.md +2 -0
  195. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/property/SKILL.md +1 -1
  196. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/report-op/SKILL.md +104 -25
  197. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/rule/SKILL.md +9 -0
  198. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/verify/usage-guide.md +2 -2
  199. package/skills/cosmic-build/skills/cosmic-meta-modifier/references/list-filter-modification.md +39 -12
  200. package/skills/cosmic-build/skills/mcp-server/SKILL.md +39 -24
  201. package/skills/cosmic-build/skills/mcp-server/scripts/mcp_cli.py +20 -6
  202. package/skills/cosmic-dev-best-practices/SKILL.md +1 -1
  203. package/skills/cosmic-dev-best-practices/references/README.md +2 -2
  204. package/skills/cosmic-dev-best-practices/references/basedata-dev-convention.md +2 -2
  205. package/skills/cosmic-dev-best-practices/references/bill-dev-convention.md +4 -4
  206. package/skills/cosmic-dev-best-practices/references/design-document-convention.md +2 -2
  207. package/skills/cosmic-dev-best-practices/references/design-examples/basedata-design-example.md +4 -4
  208. package/skills/cosmic-dev-best-practices/references/design-examples/bill-design-example.md +13 -13
  209. package/skills/cosmic-dev-best-practices/references/elements/CustomerField.md +1 -1
  210. package/skills/cosmic-dev-best-practices/references/elements/README.md +1 -1
  211. package/skills/cosmic-dev-best-practices/references/elements/SupplierField.md +1 -1
  212. package/skills/cosmic-dev-best-practices/references/elements/common-field-property-conventions.md +109 -13
  213. package/skills/cosmic-dev-best-practices/references/layout-control-convention.md +1 -1
  214. package/skills/erp-analysis/references/delivery-contract.md +2 -1
  215. package/skills/erp-analysis/templates/AGENTS.template.md +3 -1
  216. package/skills/cosmic-build/assets/platform-report-filters/TypedReportFilterFields.java +0 -169
  217. package/skills/cosmic-build/assets/platform-report-filters/platform.patch +0 -98
  218. package/skills/cosmic-build/scripts/apply_report_filter_extension.py +0 -39
@@ -332,7 +332,6 @@ def do_resolve_project_form_read_target(cfg, token, name, project_root,
332
332
  }}
333
333
 
334
334
 
335
-
336
335
  def do_resolve_form_action_target(cfg, token, name, app_root, limit=5):
337
336
  """Resolve one form without exposing an unbounded fuzzy result to the model."""
338
337
  archive = _read_app_identity_json(
@@ -545,7 +544,12 @@ def _extension_terminal(error_code, message, phase, *, precheck=None,
545
544
 
546
545
 
547
546
  def _form_selection_required(error_code, message, phase, candidates, *, extra=None):
548
- """在用户选择准确表单编码前停止本次修改。"""
547
+ """Stop one mutation until the user selects an exact form number.
548
+
549
+ Candidate order, archive order, naming style, and a form that looks like an
550
+ "original" are not selection evidence. The result makes that boundary
551
+ explicit for every domain command that uses form preparation.
552
+ """
549
553
  rows = [item for item in candidates or [] if isinstance(item, dict)]
550
554
  data = {
551
555
  "phase": phase,
@@ -1454,7 +1458,7 @@ def normalize_add_field_biz_word(value):
1454
1458
  return raw
1455
1459
 
1456
1460
 
1457
- def validate_add_field_input(field_name, biz_word, field_type="TextField",
1461
+ def validate_add_field_input(field_name, biz_word, field_type=None,
1458
1462
  combo=None, combo_json=None, basedata=None,
1459
1463
  mul_table=None, unit_field=None, flex_type=None,
1460
1464
  ref_base_field=None, ref_display_prop=None,
@@ -1592,7 +1596,7 @@ def _verify_add_field_contract(cfg, token, form_number, field_type,
1592
1596
  return {
1593
1597
  "ok": False,
1594
1598
  "scope": ["identity", "fieldType", "tableName"],
1595
- "message": "MulBasedataField 的关联表未通过独立回读验证",
1599
+ "message": "MulBasedataField association table was not independently verified",
1596
1600
  "tableNameReadBack": {
1597
1601
  "requested": requested,
1598
1602
  "observed": observed,
@@ -1714,7 +1718,7 @@ def _ensure_add_field_complex_properties(
1714
1718
 
1715
1719
 
1716
1720
  def do_add_field(cfg, token, form_name, field_name, biz_word,
1717
- field_type="TextField", app_root=None,
1721
+ field_type=None, app_root=None,
1718
1722
  project_root=None, app_name=None, app_code=None,
1719
1723
  selected_ext_app_id=None, required=False,
1720
1724
  entry=False, entity_name=None, entity_key=None,
@@ -1824,7 +1828,8 @@ def do_add_field(cfg, token, form_name, field_name, biz_word,
1824
1828
  if not hit.get("inLayout"):
1825
1829
  return _extension_terminal(
1826
1830
  "FIELD_CONTROL_MISSING",
1827
- "实体字段存在,但没有对应的 FieldAp/EntryFieldAp;可见字段并未完整创建。",
1831
+ "The entity field exists but has no rendered FieldAp/EntryFieldAp; "
1832
+ "the requested visible field is incomplete",
1828
1833
  "verify_field",
1829
1834
  extra={"editableTarget": editable, "field": hit,
1830
1835
  "writeAttempted": False},
@@ -1839,7 +1844,7 @@ def do_add_field(cfg, token, form_name, field_name, biz_word,
1839
1844
  ):
1840
1845
  return _extension_terminal(
1841
1846
  "FIELD_READBACK_MISMATCH",
1842
- "现有 MulBasedataField 的关联表无法修复并验证",
1847
+ "Existing MulBasedataField association table could not be repaired",
1843
1848
  "verify_field", cause=complex_result,
1844
1849
  extra={"editableTarget": editable, "field": hit},
1845
1850
  )
@@ -1903,7 +1908,8 @@ def do_add_field(cfg, token, form_name, field_name, biz_word,
1903
1908
  if not verification.get("inLayout"):
1904
1909
  return _extension_terminal(
1905
1910
  "FIELD_CONTROL_MISSING_AFTER_WRITE",
1906
- "字段已写入实体,但独立回读没有对应 FieldAp/EntryFieldAp;禁止报告为完成。",
1911
+ "The field was created in the entity but no FieldAp/EntryFieldAp was "
1912
+ "present on independent read-back; do not report the field as complete",
1907
1913
  "verify_field", cause=quick,
1908
1914
  extra={"editableTarget": editable, "writeAttempted": True},
1909
1915
  )
@@ -1917,7 +1923,7 @@ def do_add_field(cfg, token, form_name, field_name, biz_word,
1917
1923
  ):
1918
1924
  return _extension_terminal(
1919
1925
  "UNKNOWN_AFTER_WRITE",
1920
- "字段已创建,但多选基础资料关联表未通过验证",
1926
+ "Field was created but its multi-select association table did not verify",
1921
1927
  "verify_field", cause=complex_result,
1922
1928
  extra={"editableTarget": editable, "field": verification},
1923
1929
  )
@@ -2017,7 +2023,7 @@ def validate_add_fields_input(fields):
2017
2023
  f"FIELD_BATCH_INVALID: fields[{index}] non-ASCII selection labels require "
2018
2024
  "comboJson/comboOptions with explicit stable values"
2019
2025
  )
2020
- result = validate_add_field_input(field.get("name"), field.get("bizWord"), field.get("fieldType", "TextField"),
2026
+ result = validate_add_field_input(field.get("name"), field.get("bizWord"), field.get("fieldType"),
2021
2027
  combo=field.get("combo"), combo_json=field.get("comboJson"),
2022
2028
  **_batch_field_options(field))
2023
2029
  if not result.get("status"):
@@ -2030,7 +2036,7 @@ def validate_add_fields_input(fields):
2030
2036
  def do_add_fields(cfg, token, form_name, fields, *, app_root=None, project_root=None,
2031
2037
  app_name=None, app_code=None, entry=False, entity_name=None,
2032
2038
  entity_key=None, _prepared=None):
2033
- """一次经过鉴权的领域批量写入,逐字段独立回读,并显式暴露部分失败。"""
2039
+ """One authenticated domain batch, verified per field, with explicit partial failure."""
2034
2040
  validate_add_fields_input(fields)
2035
2041
  prepared = _prepared or do_prepare_form_mutation_target(
2036
2042
  cfg, token, name=form_name, app_root=app_root,
@@ -2043,14 +2049,14 @@ def do_add_fields(cfg, token, form_name, fields, *, app_root=None, project_root=
2043
2049
  results = []
2044
2050
  for index, field in enumerate(fields):
2045
2051
  result = do_add_field(cfg, token, form_name, field["name"], field["bizWord"],
2046
- field_type=field.get("fieldType", "TextField"), combo=field.get("combo"), combo_json=field.get("comboJson"),
2052
+ field_type=field.get("fieldType"), combo=field.get("combo"), combo_json=field.get("comboJson"),
2047
2053
  required=field.get("required", False), app_root=app_root, project_root=project_root,
2048
2054
  app_name=app_name, app_code=app_code, entry=entry, entity_name=entity_name, entity_key=entity_key,
2049
2055
  _prepared=prepared, **_batch_field_options(field))
2050
2056
  results.append(result)
2051
2057
  if not _is_api_success(result) or not (result.get("data") or {}).get("verified"):
2052
2058
  return {"status": False, "errorCode": "FIELD_BATCH_INCOMPLETE",
2053
- "message": "批量写入在第一个未通过回读的字段处停止;请勿重放已完成的条目",
2059
+ "message": "Batch stopped at the first unverified field; do not replay completed items",
2054
2060
  "data": {"results": results, "failedIndex": index, "pending": fields[index + 1:],
2055
2061
  "editableTarget": data.get("editableTarget")}}
2056
2062
  return {"status": True, "data": {"verified": True, "results": results,
@@ -2058,7 +2064,7 @@ def do_add_fields(cfg, token, form_name, fields, *, app_root=None, project_root=
2058
2064
 
2059
2065
 
2060
2066
  def do_add_simple_field(cfg, token, form_name, field_name, biz_word,
2061
- field_type="TextField", app_root=None,
2067
+ field_type=None, app_root=None,
2062
2068
  project_root=None, app_name=None, app_code=None,
2063
2069
  selected_ext_app_id=None, required=False,
2064
2070
  entry=False, entity_name=None, entity_key=None):
@@ -2073,7 +2079,7 @@ def do_add_simple_field(cfg, token, form_name, field_name, biz_word,
2073
2079
 
2074
2080
 
2075
2081
  def summary_delete_dependencies(metadata, fields):
2076
- """查找仍然指向本次待删除字段的汇总来源字段。"""
2082
+ """Find surviving summary sources that point at a requested deletion."""
2077
2083
  keys = {str(field.get("fieldKey") or "") for field in fields}
2078
2084
  dependencies = []
2079
2085
  def visit(value):
@@ -2121,11 +2127,11 @@ def rule_delete_dependencies(metadata, fields):
2121
2127
  def do_remove_field(cfg, token, form_name, field_name, *, app_root=None,
2122
2128
  project_root=None, app_name=None, app_code=None,
2123
2129
  entity_key=None, before_delete=None):
2124
- """在一次删除与独立回读前,先解析全部请求字段。"""
2130
+ """Resolve all requested fields before one deletion and independent read-back."""
2125
2131
  form_name = str(form_name or "").strip()
2126
2132
  field_names = field_name if isinstance(field_name, list) else [field_name]
2127
2133
  if not field_names or any(not isinstance(name, str) or not name.strip() for name in field_names):
2128
- return _extension_terminal("REMOVE_FIELD_INPUT_INVALID", "请提供非空的准确字段名/字段标识数组", "preflight")
2134
+ return _extension_terminal("REMOVE_FIELD_INPUT_INVALID", "Provide a non-empty array of exact field names/keys", "preflight")
2129
2135
  field_names = [name.strip() for name in field_names]
2130
2136
  entity_key = str(entity_key or "").strip()
2131
2137
  if not form_name or not field_name:
@@ -2175,7 +2181,7 @@ def do_remove_field(cfg, token, form_name, field_name, *, app_root=None,
2175
2181
  return {
2176
2182
  "status": False,
2177
2183
  "errorCode": "FIELD_NOT_FOUND" if not matches else "FIELD_TARGET_AMBIGUOUS",
2178
- "message": "删除前每个字段都必须唯一解析;请使用准确的字段标识或 --entity-key",
2184
+ "message": "Every field must resolve uniquely before any deletion; use an exact key or --entity-key",
2179
2185
  "data": {"writeAttempted": False, "requestedField": selector,
2180
2186
  "phase": "resolve_field", "success": False,
2181
2187
  "candidates": [{"fieldKey": row.get("key"), "fieldName": row.get("name"),
@@ -2209,7 +2215,7 @@ def do_remove_field(cfg, token, form_name, field_name, *, app_root=None,
2209
2215
  "FIELD_DEPENDENCY_READ_FAILED", "Legacy entity read did not return field metadata",
2210
2216
  "preflight", cause=metadata, extra={"writeAttempted": False})
2211
2217
  if not _is_api_success(metadata) or not isinstance(metadata.get("data"), dict):
2212
- return _extension_terminal("FIELD_DEPENDENCY_READ_FAILED", "删除前无法校验字段依赖关系",
2218
+ return _extension_terminal("FIELD_DEPENDENCY_READ_FAILED", "Cannot verify field dependencies before deletion",
2213
2219
  "preflight", cause=metadata, extra={"writeAttempted": False})
2214
2220
  dependencies = (summary_delete_dependencies(metadata.get("data"), candidates)
2215
2221
  + rule_delete_dependencies(metadata.get("data"), candidates))
@@ -2268,7 +2274,7 @@ def do_remove_field(cfg, token, form_name, field_name, *, app_root=None,
2268
2274
  if remaining or after_ids != before_ids - requested:
2269
2275
  return _extension_terminal(
2270
2276
  "UNKNOWN_AFTER_WRITE",
2271
- "字段删除后的回读结果与请求的最终字段集合不一致",
2277
+ "Field deletion read-back differs from the requested final field set",
2272
2278
  "verify_field", cause={"remaining": remaining, "unexpectedMissing": sorted(before_ids - requested - after_ids),
2273
2279
  "unexpectedAdded": sorted(after_ids - before_ids)},
2274
2280
  extra={"editableTarget": editable, "field": field, "fields": candidates, "writeAttempted": True},
@@ -2941,7 +2947,7 @@ def do_move_form(cfg, token, form_id, biz_app_id, target_biz_unit_id):
2941
2947
 
2942
2948
  if _is_api_success(result):
2943
2949
  data = result.get("data") or {}
2944
- # 仅写入回执:权威结果由调用方的独立回读给出。
2950
+ # Write receipt only: the authoritative outcome comes from the caller's read-back.
2945
2951
  print(f"[moveForm] 写入回执succeeded (待回读验证): formId={data.get('formId')} → bizUnitId={data.get('targetBizUnitId')}", flush=True)
2946
2952
  else:
2947
2953
  msg = _extract_error_message(result)
@@ -3174,11 +3180,13 @@ def _unit_node_in_tree(units, unit_id, *, root=True):
3174
3180
 
3175
3181
 
3176
3182
  def _read_form_unit_state(cfg, token, app_id, form_id, form_number):
3177
- """解析表单当前功能分组。内部路由保持内部。
3183
+ """Resolve a form's current functional group. Internal routing stays internal.
3178
3184
 
3179
- 调用方与模型只应看到 getFormUnit 契约:由哪些平台端点回答这个问题属于实现细节,
3180
- 因此内部调用的诊断输出一律捕获而不打印。直接返回内部错误码会泄漏同样的细节,
3181
- 所以失败统一映射到 getFormUnit 已发布的错误码。
3185
+ Callers and the model only ever see the getFormUnit contract: which platform
3186
+ endpoints answer the question is an implementation detail, so every internal
3187
+ call's diagnostics are captured instead of printed. Returning the internal
3188
+ error codes would leak the same detail, so failures are mapped onto the
3189
+ published getFormUnit codes.
3182
3190
  """
3183
3191
  import contextlib
3184
3192
  import io
@@ -3243,17 +3251,18 @@ def _read_form_unit_state(cfg, token, app_id, form_id, form_number):
3243
3251
 
3244
3252
 
3245
3253
  def do_get_form_unit(cfg, token, biz_app_id, form_id=None, form_number=None):
3246
- """通过已注册的回退查询读取表单当前功能分组。
3254
+ """Read a form's current functional group through registered fallback queries.
3247
3255
 
3248
- 内部平台路由不属于公开 CLI 契约。formId 与 formNumber 二选一,同时提供时以 formId 为准。
3256
+ Internal platform routes are deliberately not part of this public CLI contract.
3257
+ formId and formNumber are alternatives; formId wins when both are present.
3249
3258
  """
3250
3259
  app_id = str(biz_app_id or "").strip()
3251
3260
  if not app_id:
3252
- raise ValueError("getFormUnit 需要 --bizAppId")
3261
+ raise ValueError("getFormUnit requires --bizAppId")
3253
3262
  resolved_form_id = str(form_id or "").strip()
3254
3263
  resolved_form_number = str(form_number or "").strip()
3255
3264
  if not resolved_form_id and not resolved_form_number:
3256
- raise ValueError("getFormUnit 需要 --formId 或 --formNumber 之一")
3265
+ raise ValueError("getFormUnit requires --formId or --formNumber")
3257
3266
 
3258
3267
  state, failure = _read_form_unit_state(
3259
3268
  cfg, token, app_id, resolved_form_id, resolved_form_number