@shundoo-ai/dsh-cosmic 1.0.19 → 1.0.21

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 (245) hide show
  1. package/cordis.patch.yml +5 -5
  2. package/package.json +1 -1
  3. package/skills/cosmic-build/CHANGELOG.md +4 -0
  4. package/skills/cosmic-build/LOCAL-PATCHES.md +91 -40
  5. package/skills/cosmic-build/SKILL.md +46 -13
  6. package/skills/cosmic-build/assets/platform-report-filters/TypedReportFilterFields.java +169 -0
  7. package/skills/cosmic-build/assets/platform-report-filters/platform.patch +98 -0
  8. package/skills/cosmic-build/assets/report-algo-benchmark/ReportAlgoBenchmark.java +48 -0
  9. package/skills/cosmic-build/assets/report-algo-benchmark/ReportBenchmarkLogFactory.java +7 -0
  10. package/skills/cosmic-build/examples/java-rules/CosmicEntryQuery.java +26 -0
  11. package/skills/cosmic-build/examples/java-rules/CosmicReportAggregation.java +35 -0
  12. package/skills/cosmic-build/examples/java-rules/CosmicReportFilters.java +77 -0
  13. package/skills/cosmic-build/examples/java-rules/CosmicTimeAdapter.java +25 -0
  14. package/skills/cosmic-build/examples/java-rules/CosmicTimeAdapterCheck.java +26 -0
  15. package/skills/cosmic-build/knowledge/cosmic/platform/api/algo/GroupbyDataSet.md +47 -0
  16. package/skills/cosmic-build/knowledge/cosmic/platform/api/entity/report/FilterInfo.md +12 -12
  17. package/skills/cosmic-build/knowledge/cosmic/platform/api/entity/report/FilterItemInfo.md +2 -0
  18. package/skills/cosmic-build/knowledge/cosmic/platform/form-plugin.md +2 -4
  19. package/skills/cosmic-build/knowledge/cosmic/platform/java-type-contracts.md +11 -2
  20. package/skills/cosmic-build/knowledge/cosmic/platform/list-plugin.md +18 -14
  21. package/skills/cosmic-build/knowledge/cosmic/platform/operation-plugin.md +4 -4
  22. package/skills/cosmic-build/knowledge/cosmic/platform/reportlistdata-plugin.md +17 -9
  23. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/operation/cross-entity-aggregate-writeback.md +2 -0
  24. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/operation/pre-post-operation.md +15 -7
  25. package/skills/cosmic-build/knowledge/cosmic/platform/sdk/sdk-algo.md +24 -68
  26. package/skills/cosmic-build/knowledge/cosmic/platform/workflow-plugin.md +2 -7
  27. package/skills/cosmic-build/references/application-context.md +35 -1
  28. package/skills/cosmic-build/references/common-reference.md +1 -1
  29. package/skills/cosmic-build/references/compile-guide.md +55 -68
  30. package/skills/cosmic-build/references/delivery.md +59 -7
  31. package/skills/cosmic-build/references/execution-contract.md +38 -0
  32. package/skills/cosmic-build/references/form-discovery.md +7 -1
  33. package/skills/cosmic-build/references/java-plugin-delivery.md +32 -162
  34. package/skills/cosmic-build/references/operation-dispatch.md +17 -0
  35. package/skills/cosmic-build/references/plugin-handoff-input.md +131 -0
  36. package/skills/cosmic-build/references/plugin-runtime-routing.md +1 -1
  37. package/skills/cosmic-build/references/report-filter-contract.md +78 -0
  38. package/skills/cosmic-build/references/sdk-inspection.md +23 -0
  39. package/skills/cosmic-build/schemas/data-model-authoring.schema.json +2 -3
  40. package/skills/cosmic-build/scripts/_http_client.py +55 -55
  41. package/skills/cosmic-build/scripts/appconfig_load.py +2 -2
  42. package/skills/cosmic-build/scripts/apply_report_filter_extension.py +39 -0
  43. package/skills/cosmic-build/scripts/bootstrap_cosmic_context.py +37 -2
  44. package/skills/cosmic-build/scripts/compile_plugin_source.py +279 -156
  45. package/skills/cosmic-build/scripts/execution_binding.py +40 -0
  46. package/skills/cosmic-build/scripts/inspect_platform_sdk.py +169 -0
  47. package/skills/cosmic-build/scripts/kd_api.py +23 -22
  48. package/skills/cosmic-build/scripts/kd_auth.py +1 -1
  49. package/skills/cosmic-build/scripts/kd_env_loader.py +19 -10
  50. package/skills/cosmic-build/scripts/kd_token_cache.py +2 -2
  51. package/skills/cosmic-build/scripts/kingscript_sdk_sync.py +350 -0
  52. package/skills/cosmic-build/scripts/kingscript_source_gate.py +11 -8
  53. package/skills/cosmic-build/scripts/platform_api_contract.py +246 -11
  54. package/skills/cosmic-build/scripts/plugin_corpus/build_index.py +403 -0
  55. package/skills/cosmic-build/scripts/plugin_corpus/jvm_classfile.py +281 -0
  56. package/skills/cosmic-build/scripts/plugin_corpus/measure_api_usage.py +446 -0
  57. package/skills/cosmic-build/scripts/plugin_source_gate.py +48 -7
  58. package/skills/cosmic-build/scripts/plugin_target_sdk.py +45 -0
  59. package/skills/cosmic-build/scripts/prepare_plugin_handoff.py +493 -47
  60. package/skills/cosmic-build/scripts/preview_url.py +35 -6
  61. package/skills/cosmic-build/scripts/query_plugin_handoff.py +250 -0
  62. package/skills/cosmic-build/scripts/register_plugins.py +28 -2
  63. package/skills/cosmic-build/scripts/render_output_cards.py +42 -9
  64. package/skills/cosmic-build/scripts/report_algo_benchmark.py +46 -0
  65. package/skills/cosmic-build/scripts/run.py +2 -2
  66. package/skills/cosmic-build/scripts/sync_generated_locale_assets.py +43 -0
  67. package/skills/cosmic-build/scripts/test/fixtures/ReportSdkCheck.java +64 -0
  68. package/skills/cosmic-build/scripts/test/fixtures/java_context_booking_native.json +541 -0
  69. package/skills/cosmic-build/scripts/test/test_add_rule_business_contract.py +85 -14
  70. package/skills/cosmic-build/scripts/test/test_batch5_drift_governance.py +12 -3
  71. package/skills/cosmic-build/scripts/test/test_build_meta_order.py +0 -16
  72. package/skills/cosmic-build/scripts/test/test_cli_continuation.py +87 -0
  73. package/skills/cosmic-build/scripts/test/test_compile_plugin_source.py +224 -3
  74. package/skills/cosmic-build/scripts/test/test_control_authoring.py +123 -4
  75. package/skills/cosmic-build/scripts/test/test_cosmic_sdk_examples.py +141 -0
  76. package/skills/cosmic-build/scripts/test/test_data_model_contract.py +30 -5
  77. package/skills/cosmic-build/scripts/test/test_delivery_stage_boundary.py +2 -10
  78. package/skills/cosmic-build/scripts/test/test_dym_sync_background.py +11 -0
  79. package/skills/cosmic-build/scripts/test/test_dynamic_form_metadata_only_contract.py +59 -1
  80. package/skills/cosmic-build/scripts/test/test_guide_skeleton_contract.py +87 -43
  81. package/skills/cosmic-build/scripts/test/test_inspect_platform_sdk.py +71 -0
  82. package/skills/cosmic-build/scripts/test/test_kd_api.py +67 -19
  83. package/skills/cosmic-build/scripts/test/test_kingscript_sdk_sync.py +221 -0
  84. package/skills/cosmic-build/scripts/test/test_kingscript_source_gate.py +10 -0
  85. package/skills/cosmic-build/scripts/test/test_list_configuration_closure.py +18 -0
  86. package/skills/cosmic-build/scripts/test/test_long_session_regressions.py +116 -0
  87. package/skills/cosmic-build/scripts/test/test_mcp_cli.py +524 -0
  88. package/skills/cosmic-build/scripts/test/test_modeling_input_recovery.py +141 -0
  89. package/skills/cosmic-build/scripts/test/test_open_world_cli_catalog.py +36 -2
  90. package/skills/cosmic-build/scripts/test/test_platform_api_contract.py +161 -1
  91. package/skills/cosmic-build/scripts/test/test_plugin_business_contract.py +91 -0
  92. package/skills/cosmic-build/scripts/test/test_plugin_corpus.py +195 -0
  93. package/skills/cosmic-build/scripts/test/test_plugin_handoff.py +346 -1
  94. package/skills/cosmic-build/scripts/test/test_plugin_target_sdk.py +70 -0
  95. package/skills/cosmic-build/scripts/test/test_preview_url.py +44 -1
  96. package/skills/cosmic-build/scripts/test/test_property_batch.py +22 -0
  97. package/skills/cosmic-build/scripts/test/test_property_input_discovery.py +13 -11
  98. package/skills/cosmic-build/scripts/test/test_query_plugin_handoff.py +160 -0
  99. package/skills/cosmic-build/scripts/test/test_register_plugins.py +31 -1
  100. package/skills/cosmic-build/scripts/test/test_render_output_cards.py +50 -4
  101. package/skills/cosmic-build/scripts/test/test_report_business_contract.py +27 -0
  102. package/skills/cosmic-build/scripts/test/test_report_doc_contract_sync.py +5 -4
  103. package/skills/cosmic-build/scripts/test/test_report_sdk_optimization.py +36 -0
  104. package/skills/cosmic-build/scripts/test/test_rule_batch_evidence.py +1 -1
  105. package/skills/cosmic-build/scripts/test/test_rule_domain_contract.py +20 -0
  106. package/skills/cosmic-build/scripts/test/test_rule_function_formula.py +16 -6
  107. package/skills/cosmic-build/scripts/test/test_skill_entry_contract.py +1 -0
  108. package/skills/cosmic-build/scripts/test/test_test_environment.py +45 -0
  109. package/skills/cosmic-build/scripts/test/test_verify_plugin_loading.py +79 -0
  110. package/skills/cosmic-build/scripts/test_environment.py +49 -0
  111. package/skills/cosmic-build/scripts/verify_plugin_loading.py +71 -0
  112. package/skills/cosmic-build/skills/cosmic-coding-impl/SKILL.md +86 -162
  113. package/skills/cosmic-build/skills/cosmic-coding-script/ATTRIBUTION.md +1 -1
  114. package/skills/cosmic-build/skills/cosmic-coding-script/SKILL.md +45 -14
  115. package/skills/cosmic-build/skills/cosmic-coding-script/references/kwc-controller-authoring.md +6 -0
  116. package/skills/cosmic-build/skills/cosmic-coding-script/references/sdk/README.md +29 -19
  117. package/skills/cosmic-build/skills/cosmic-coding-script/references/sdk/docs//350/204/232/346/234/254SDK.md +3 -4
  118. package/skills/cosmic-build/skills/cosmic-coding-script/references/sdk/indexes/package-index.md +1 -1
  119. package/skills/cosmic-build/skills/cosmic-coding-script/references/sdk/strategy.md +27 -18
  120. package/skills/cosmic-build/skills/cosmic-meta-api/SKILL.md +11 -17
  121. package/skills/cosmic-build/skills/cosmic-meta-api/apis/ai_meta.md +1 -1
  122. package/skills/cosmic-build/skills/cosmic-meta-api/apis/app_menu.md +1 -1
  123. package/skills/cosmic-build/skills/cosmic-meta-api/apis/meta_log.md +1 -1
  124. package/skills/cosmic-build/skills/cosmic-meta-api/contracts/cli/control-authoring.json +45 -4
  125. package/skills/cosmic-build/skills/cosmic-meta-api/contracts/cli/form-control-traits.json +1 -1
  126. package/skills/cosmic-build/skills/cosmic-meta-api/contracts/cli/layout-ui.json +18 -0
  127. package/skills/cosmic-build/skills/cosmic-meta-api/contracts/cli/menu-publish.json +8 -2
  128. package/skills/cosmic-build/skills/cosmic-meta-api/contracts/cli/property-batch.json +7 -0
  129. package/skills/cosmic-build/skills/cosmic-meta-api/contracts/cli/property-input-index.json +3 -3
  130. package/skills/cosmic-build/skills/cosmic-meta-api/contracts/cli/report-write-contracts.json +1 -0
  131. package/skills/cosmic-build/skills/cosmic-meta-api/contracts/cli/rule-domain.json +37 -5
  132. package/skills/cosmic-build/skills/cosmic-meta-api/contracts/cli/rule-event-contract.json +24 -3
  133. package/skills/cosmic-build/skills/cosmic-meta-api/contracts/cli/run-build-meta.json +61 -12
  134. package/skills/cosmic-build/skills/cosmic-meta-api/contracts/schema/dropdown-menu.schema.json +69 -0
  135. package/skills/cosmic-build/skills/cosmic-meta-api/contracts/schema/report-write.schema.json +2 -1
  136. package/skills/cosmic-build/skills/cosmic-meta-api/contracts/schema/rule-set.schema.json +1 -0
  137. package/skills/cosmic-build/skills/cosmic-meta-api/contracts/schema/rule-write.schema.json +14 -7
  138. package/skills/cosmic-build/skills/cosmic-meta-api/docs/api-summary.md +2 -2
  139. package/skills/cosmic-build/skills/cosmic-meta-api/modules/app-action/SKILL.md +6 -3
  140. package/skills/cosmic-build/skills/cosmic-meta-api/modules/develop/SKILL.md +1 -2
  141. package/skills/cosmic-build/skills/cosmic-meta-api/modules/export/SKILL.md +5 -6
  142. package/skills/cosmic-build/skills/cosmic-meta-api/modules/init/SKILL.md +13 -36
  143. package/skills/cosmic-build/skills/cosmic-meta-api/modules/pdm/SKILL.md +8 -9
  144. package/skills/cosmic-build/skills/cosmic-meta-api/modules/pdm/scripts/config.json.example +5 -15
  145. package/skills/cosmic-build/skills/cosmic-meta-api/modules/reset/SKILL.md +6 -6
  146. package/skills/cosmic-build/skills/cosmic-meta-api/modules/usage/SKILL.md +20 -148
  147. package/skills/cosmic-build/skills/cosmic-meta-api/modules/verify/SKILL.md +1 -1
  148. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/build_receipts.py +171 -0
  149. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_apps.py +25 -6
  150. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_controls.py +55 -21
  151. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_fields.py +10 -3
  152. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_formactions.py +63 -6
  153. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_forms.py +59 -2
  154. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_listui.py +8 -0
  155. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_metaops.py +36 -1
  156. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_plugins.py +115 -90
  157. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_properties.py +666 -4
  158. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_rules.py +1415 -87
  159. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/commands.py +6 -1
  160. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/config.py +28 -15
  161. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/execution_errors.py +40 -0
  162. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/formatters.py +32 -5
  163. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/property_policy_contract.py +6 -0
  164. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/report_ops.py +113 -17
  165. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/reset.py +3 -3
  166. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/rule_contract.py +107 -26
  167. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/build_meta_order.py +50 -49
  168. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/cosmic_api.py +856 -150
  169. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/field_decorator.py +47 -14
  170. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_build_receipt_resume.py +374 -0
  171. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_cli_failure_contract.py +24 -0
  172. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_creation_identity_boundary.py +4 -2
  173. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_dropdown_menu_contract.py +382 -0
  174. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_existing_form_ui.py +0 -25
  175. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_field_decorator.py +50 -6
  176. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_functional_group_resolution.py +83 -16
  177. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_identity_template_resolution.py +103 -0
  178. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_plugin_contract.py +28 -2
  179. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_readback_derivation.py +22 -0
  180. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_typed_filters.py +65 -0
  181. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_rule_write_closure.py +1041 -15
  182. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_run_batch_post_build_recovery.py +65 -0
  183. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_run_batch_verification_evidence.py +17 -0
  184. package/skills/cosmic-build/skills/cosmic-meta-knowledge/generation/api-param-checklist.md +1 -1
  185. package/skills/cosmic-build/skills/cosmic-meta-knowledge/generation/rule-modeling-guide.md +7 -4
  186. package/skills/cosmic-build/skills/cosmic-meta-modeling/SKILL.md +61 -13
  187. package/skills/cosmic-build/skills/cosmic-meta-modeling/modules/app-menu/SKILL.md +8 -0
  188. package/skills/cosmic-build/skills/cosmic-meta-modeling/modules/formtemplate/SKILL.md +5 -0
  189. package/skills/cosmic-build/skills/cosmic-meta-modeling/modules/formtemplate/dynamic-form-artifact-schema.md +5 -0
  190. package/skills/cosmic-build/skills/cosmic-meta-modeling/modules/report/SKILL.md +21 -9
  191. package/skills/cosmic-build/skills/cosmic-meta-modeling/references/authoring-entity-graphs.md +1 -1
  192. package/skills/cosmic-build/skills/cosmic-meta-modeling/references/authoring-storage-constraints.md +5 -3
  193. package/skills/cosmic-build/skills/cosmic-meta-modeling/references/authoring-ui-composition.md +6 -3
  194. package/skills/cosmic-build/skills/cosmic-meta-modeling/references/creation-recovery.md +13 -0
  195. package/skills/cosmic-build/skills/cosmic-meta-modeling/references/parse-core.md +3 -0
  196. package/skills/cosmic-build/skills/cosmic-meta-modeling/scripts/data_model_contract.py +6 -1
  197. package/skills/cosmic-build/skills/cosmic-meta-modeling/scripts/data_model_emit.py +135 -87
  198. package/skills/cosmic-build/skills/cosmic-meta-modeling/scripts/field_type_registry.py +11 -1
  199. package/skills/cosmic-build/skills/cosmic-meta-modeling/scripts/isv_resolver.py +1 -3
  200. package/skills/cosmic-build/skills/cosmic-meta-modeling/scripts/report_validator.py +29 -0
  201. package/skills/cosmic-build/skills/cosmic-meta-modifier/SKILL.md +4 -2
  202. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/context/SKILL.md +2 -2
  203. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/execute/SKILL.md +1 -1
  204. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/operation/SKILL.md +5 -4
  205. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/operation/operation-write.md +6 -2
  206. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/operation/validation.md +2 -0
  207. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/property/SKILL.md +20 -5
  208. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/property/complex-apis.md +1 -1
  209. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/property/policy-grammar.md +4 -1
  210. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/report-op/SKILL.md +9 -0
  211. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/rule/SKILL.md +61 -4
  212. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/rule/raw-rule-authoring.md +3 -1
  213. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/rule/rule-actions.md +2 -2
  214. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/rule/rule-reference.md +6 -6
  215. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/rule/state.md +1 -1
  216. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/unit/SKILL.md +6 -3
  217. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/verify/usage-guide.md +4 -4
  218. package/skills/cosmic-build/skills/cosmic-meta-modifier/references/list-filter-modification.md +4 -1
  219. package/skills/cosmic-build/skills/cosmic-meta-ui/SKILL.md +9 -1
  220. package/skills/cosmic-build/skills/cosmic-meta-ui/modules/button/SKILL.md +3 -0
  221. package/skills/cosmic-build/skills/mcp-server/SKILL.md +210 -0
  222. package/skills/cosmic-build/skills/mcp-server/scripts/mcp_cli.py +431 -0
  223. package/skills/cosmic-build/skills/openapi-gen/SKILL.md +3 -3
  224. package/skills/cosmic-build/skills/openapi-gen/scripts/api/gen_runner.py +2 -2
  225. package/skills/cosmic-dev-best-practices/references/bill-dev-convention.md +19 -9
  226. package/skills/cosmic-dev-best-practices/references/cosmic-meta-api.md +14 -11
  227. package/skills/cosmic-dev-best-practices/references/design-examples/basedata-design-example.md +1 -1
  228. package/skills/cosmic-dev-best-practices/references/design-examples/bill-design-example.md +1 -1
  229. package/skills/cosmic-dev-best-practices/references/elements/AssistantField.md +1 -1
  230. package/skills/cosmic-dev-best-practices/references/elements/BasedataField.md +2 -2
  231. package/skills/cosmic-dev-best-practices/references/elements/BasedataPropField.md +3 -3
  232. package/skills/cosmic-dev-best-practices/references/elements/CreaterField.md +2 -2
  233. package/skills/cosmic-dev-best-practices/references/elements/CurrencyField.md +2 -2
  234. package/skills/cosmic-dev-best-practices/references/elements/CustomerField.md +2 -2
  235. package/skills/cosmic-dev-best-practices/references/elements/FlexField.md +1 -1
  236. package/skills/cosmic-dev-best-practices/references/elements/MaterielField.md +2 -2
  237. package/skills/cosmic-dev-best-practices/references/elements/OrgField.md +2 -2
  238. package/skills/cosmic-dev-best-practices/references/elements/SupplierField.md +2 -2
  239. package/skills/cosmic-dev-best-practices/references/elements/UnitField.md +1 -1
  240. package/skills/cosmic-dev-best-practices/references/elements/UserField.md +3 -3
  241. package/skills/cosmic-dev-best-practices/references/elements/common-field-property-conventions.md +16 -11
  242. package/skills/cosmic-dev-best-practices/references/layout-control-convention.md +5 -4
  243. package/skills/erp-analysis/references/delivery-contract.md +4 -2
  244. package/skills/erp-analysis/templates/AGENTS.template.md +1 -1
  245. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/.dsh/cosmic/.kd/config.json +0 -21
@@ -24,6 +24,28 @@ ZH_ROOT = APP_BUILD_ROOT / ".locales" / "zh"
24
24
  # unit: schema -> direct CLI normalizer/readback -> artifact validator. The two
25
25
  # report SKILL.md files are deliberately absent because their prose is localized.
26
26
  GENERATED_FAMILIES: dict[str, tuple[str, ...]] = {
27
+ # Batch recovery must not differ between the canonical and zh entry.
28
+ # These files publish machine results and use the same locale-aware runtime.
29
+ "execution-recovery-v1": (
30
+ "scripts/kd_api.py",
31
+ "scripts/_http_client.py",
32
+ "scripts/test/test_kd_api.py",
33
+ "scripts/test/test_http_client.py",
34
+ "scripts/execution_binding.py",
35
+ "scripts/bootstrap_cosmic_context.py",
36
+ "skills/cosmic-meta-api/scripts/cosmic_api.py",
37
+ "skills/cosmic-meta-api/scripts/_core/build_receipts.py",
38
+ "skills/cosmic-meta-api/scripts/_core/execution_errors.py",
39
+ "skills/cosmic-meta-api/scripts/_core/cmd_metaops.py",
40
+ "skills/cosmic-meta-api/scripts/_core/cmd_rules.py",
41
+ "skills/cosmic-meta-api/scripts/_core/formatters.py",
42
+ "skills/cosmic-meta-api/scripts/test/test_build_receipt_resume.py",
43
+ "skills/cosmic-meta-api/scripts/test/test_creation_identity_boundary.py",
44
+ "scripts/test/test_rule_batch_evidence.py",
45
+ ),
46
+ "property-policy-contract-v1": (
47
+ "skills/cosmic-meta-api/scripts/_core/property_policy_contract.py",
48
+ ),
27
49
  "control-authoring-v1": (
28
50
  "skills/cosmic-meta-api/contracts/cli/control-authoring.json",
29
51
  "skills/cosmic-meta-api/scripts/_core/cmd_controls.py",
@@ -73,6 +95,7 @@ GENERATED_FAMILIES: dict[str, tuple[str, ...]] = {
73
95
  "skills/cosmic-meta-api/contracts/cli/layout-ui.json",
74
96
  "skills/cosmic-meta-api/contracts/schema/container-layout.schema.json",
75
97
  "skills/cosmic-meta-api/contracts/schema/entry-grid.schema.json",
98
+ "skills/cosmic-meta-api/contracts/schema/dropdown-menu.schema.json",
76
99
  "skills/cosmic-meta-api/contracts/schema/form-composition.schema.json",
77
100
  "skills/cosmic-meta-api/contracts/schema/form-grid.schema.json",
78
101
  "skills/cosmic-meta-api/contracts/schema/panel-order.schema.json",
@@ -131,6 +154,14 @@ GENERATED_FAMILIES: dict[str, tuple[str, ...]] = {
131
154
  "skills/cosmic-meta-api/scripts/_core/mutation_contract.py",
132
155
  "skills/cosmic-meta-api/scripts/test/test_rule_write_closure.py",
133
156
  ),
157
+ # MCP service management is one CLI talking to the devportal/ai-meta/mcp
158
+ # family. The CLI and its contract tests are machine-synced executable code
159
+ # (nothing to localize); a translated copy would only diverge from the
160
+ # endpoint mapping over time.
161
+ "mcp-server-v1": (
162
+ "skills/mcp-server/scripts/mcp_cli.py",
163
+ "scripts/test/test_mcp_cli.py",
164
+ ),
134
165
  "report-write-v1": (
135
166
  "skills/cosmic-meta-api/contracts/cli/report-write-contracts.json",
136
167
  "skills/cosmic-meta-api/contracts/schema/report-write.schema.json",
@@ -164,6 +195,15 @@ GENERATED_FAMILIES: dict[str, tuple[str, ...]] = {
164
195
  "scripts/plugin_source_gate.py",
165
196
  "scripts/java_write_guard.js",
166
197
  "scripts/platform_api_contract.py",
198
+ "scripts/inspect_platform_sdk.py",
199
+ "scripts/plugin_target_sdk.py",
200
+ "scripts/test/test_plugin_target_sdk.py",
201
+ ),
202
+ # JSON pointer queries are read-only and language-neutral. Mirror the single implementation
203
+ # and its CLI regression to the zh skill so either locale can inspect the same native handoff.
204
+ "plugin-handoff-query-v1": (
205
+ "scripts/query_plugin_handoff.py",
206
+ "scripts/test/test_query_plugin_handoff.py",
167
207
  ),
168
208
  # KingScript has no platform correctness signal (createScript returns success for
169
209
  # any content, compiled is always false, the record cannot be deleted, and
@@ -179,11 +219,14 @@ GENERATED_FAMILIES: dict[str, tuple[str, ...]] = {
179
219
  "kingscript-gate-v1": (
180
220
  "scripts/kingscript_source_gate.py",
181
221
  "scripts/kingscript_gate.mjs",
222
+ "scripts/kingscript_sdk_sync.py",
182
223
  "scripts/test/test_kingscript_source_gate.py",
224
+ "scripts/test/test_kingscript_sdk_sync.py",
183
225
  "skills/cosmic-meta-api/scripts/test/test_kingscript_write_guard.py",
184
226
  ),
185
227
  "report-tests-v1": (
186
228
  "scripts/test/test_plugin_handoff.py",
229
+ "scripts/test/fixtures/java_context_booking_native.json",
187
230
  "scripts/test/test_guide_skeleton_contract.py",
188
231
  "scripts/test/test_compile_plugin_source.py",
189
232
  "scripts/test/test_plugin_source_gate.py",
@@ -0,0 +1,64 @@
1
+ import kd.bos.algo.*;
2
+ import kd.bos.designer.property.setting.TypedReportFilterFields;
3
+ import kd.bos.metadata.entity.commonfield.ComboField;
4
+ import kd.bos.metadata.entity.commonfield.ComboItem;
5
+ import kd.bos.metadata.entity.commonfield.DateField;
6
+ import kd.bos.metadata.entity.commonfield.DateRangeField;
7
+ import kd.bos.metadata.entity.businessfield.BasedataField;
8
+ import kd.bos.dataentity.entity.LocaleString;
9
+ import java.util.*;
10
+ import java.math.BigDecimal;
11
+ import java.util.concurrent.*;
12
+
13
+ public class ReportSdkCheck {
14
+ // Isolate logging only. All metadata, DataSet joins and aggregates are actual SDK objects.
15
+ public static class TestLogFactory extends kd.bos.logging.LogFactory {
16
+ protected kd.bos.logging.Log _getLog(String name) {
17
+ return (kd.bos.logging.Log) java.lang.reflect.Proxy.newProxyInstance(kd.bos.logging.Log.class.getClassLoader(),
18
+ new Class[]{kd.bos.logging.Log.class}, (proxy, method, args) -> method.getReturnType() == boolean.class ? false : null);
19
+ }
20
+ }
21
+ static void fields() {
22
+ BasedataField source = new BasedataField(); source.setKey("supplier");source.setBaseEntityId("bd_supplier");source.setDisplayProp("name");
23
+ kd.bos.metadata.entity.commonfield.Field<?> copied = TypedReportFilterFields.create(source,"67");
24
+ if (copied == source || !"bd_supplier".equals(((BasedataField)copied).getBaseEntityId())) throw new AssertionError("reference");
25
+ ComboField combo = new ComboField();combo.setItems(Arrays.asList(new ComboItem(0,new LocaleString("zero"),"0")));
26
+ ComboField cloned = (ComboField)TypedReportFilterFields.create(combo,"67");
27
+ if (cloned.getItems()==combo.getItems() || !"0".equals(cloned.getItems().get(0).getValue())) throw new AssertionError("enum");
28
+ if (!(TypedReportFilterFields.create(new DateField(),"13") instanceof DateRangeField)) throw new AssertionError("range");
29
+ if (!(TypedReportFilterFields.create(new DateField(),"105") instanceof DateField)) throw new AssertionError("date");
30
+ source.setOrgFieldId("source-org-id");
31
+ try { TypedReportFilterFields.create(source,"67");throw new AssertionError("organization dependency silently lost"); }
32
+ catch(IllegalArgumentException expected) { }
33
+ }
34
+ static RowMeta headersMeta() {
35
+ return new RowMeta(new Field("id",DataType.LongType),new Field("supplier",DataType.StringType),
36
+ new Field("bill_date",DataType.DateType),new Field("base_amount",DataType.createBigDecimalType(18,2)));
37
+ }
38
+ static RowMeta detailMeta() { return new RowMeta(new Field("main_id",DataType.LongType),new Field("amount",DataType.createBigDecimalType(18,2))); }
39
+ static void amounts() {
40
+ Algo algo=Algo.create("report-check");
41
+ DataSet header=algo.createDataSet(Arrays.asList(new Object[]{1L,"A",new Date(0),new BigDecimal("10")},new Object[]{2L,"A",new Date(1000),new BigDecimal("20")},new Object[]{3L,"B",new Date(2000),new BigDecimal("5")}),headersMeta());
42
+ DataSet add=algo.createDataSet(Arrays.asList(new Object[]{1L,new BigDecimal("2")},new Object[]{1L,new BigDecimal("3")},new Object[]{2L,new BigDecimal("4")}),detailMeta());
43
+ DataSet deduct=algo.createDataSet(Arrays.asList(new Object[]{1L,new BigDecimal("1")},new Object[]{1L,new BigDecimal("2")},new Object[]{1L,new BigDecimal("3")}),detailMeta());
44
+ DataSet result=CosmicReportAggregation.aggregate(header,add,deduct);
45
+ int count=0;
46
+ while(result.hasNext()) {
47
+ Row row=result.next();count++;
48
+ if ("A".equals(row.getString("supplier"))) {
49
+ if(row.getBigDecimal("base_amount").compareTo(new BigDecimal("30"))!=0 || row.getBigDecimal("add_amount").compareTo(new BigDecimal("9"))!=0 || row.getBigDecimal("deduct_amount").compareTo(new BigDecimal("6"))!=0 || row.getLong("bill_count")!=2L) throw new AssertionError("fanout aggregation");
50
+ if(row.getDate("first_date").getTime()!=0 || row.getDate("last_date").getTime()!=1000) throw new AssertionError("date bounds");
51
+ } else if(row.getBigDecimal("add_amount").signum()!=0 || row.getBigDecimal("deduct_amount").signum()!=0) throw new AssertionError("empty entries");
52
+ }
53
+ if(count!=2) throw new AssertionError("supplier membership");result.close();
54
+ }
55
+ public static void main(String[] args) throws Exception {
56
+ fields();
57
+ ExecutorService executor=kd.bos.threads.ThreadPools.newExecutorService("report-check",1);
58
+ java.util.concurrent.atomic.AtomicBoolean completed=new java.util.concurrent.atomic.AtomicBoolean();
59
+ try { executor.submit(() -> { try(AlgoContext context=Algo.newContext()) { amounts();completed.set(true); } }).get(20,TimeUnit.SECONDS); } catch(Exception error) { error.printStackTrace();System.exit(2); }
60
+ executor.shutdownNow();
61
+ if(!completed.get()) throw new AssertionError("managed task did not execute");
62
+ System.out.println("report SDK checks passed");System.exit(0);
63
+ }
64
+ }
@@ -0,0 +1,541 @@
1
+ {
2
+ "status": true,
3
+ "data": {
4
+ "BizAppNumber": "sample_app",
5
+ "BillStatus": "billstatus",
6
+ "DefaultPageSetting": "{\"mblist\":\"\",\"pclist\":\"\",\"pcbill\":\"\",\"mbbill\":\"\"}",
7
+ "Properties": [
8
+ {
9
+ "_Type_": "LongProp"
10
+ },
11
+ {
12
+ "_Type_": "TextProp",
13
+ "Alias": "fbillno",
14
+ "MustInput": true,
15
+ "DisplayName": {
16
+ "resId": "sample_app.FORM.bdJvQ9RWla.Name",
17
+ "zh_CN": "单据编号"
18
+ },
19
+ "MaxLenth": 30,
20
+ "Name": "billno"
21
+ },
22
+ {
23
+ "DefValue": "A",
24
+ "_Type_": "BillStatusProp",
25
+ "Alias": "fbillstatus",
26
+ "MustInput": true,
27
+ "DisplayName": {
28
+ "resId": "sample_app.FORM.6q69iznvHX.Name",
29
+ "zh_CN": "单据状态"
30
+ },
31
+ "StatusItems": [
32
+ {
33
+ "StatusKey": "A",
34
+ "_Type_": "StatusItemPro",
35
+ "OperationDateKey": "auditdate",
36
+ "ClearOperationKey": true,
37
+ "StatusName": {
38
+ "resId": "sample_app.FORM.1.Name",
39
+ "zh_CN": "暂存"
40
+ },
41
+ "OperationerKey": "auditor"
42
+ },
43
+ {
44
+ "StatusKey": "B",
45
+ "_Type_": "StatusItemPro",
46
+ "StatusName": {
47
+ "resId": "sample_app.FORM.2.Name",
48
+ "zh_CN": "已提交"
49
+ }
50
+ },
51
+ {
52
+ "StatusKey": "C",
53
+ "_Type_": "StatusItemPro",
54
+ "OperationDateKey": "auditdate",
55
+ "StatusName": {
56
+ "resId": "sample_app.FORM.3.Name",
57
+ "zh_CN": "已审核"
58
+ },
59
+ "OperationerKey": "auditor"
60
+ }
61
+ ],
62
+ "OptionDisplayMode": "combo",
63
+ "MaxLength": 50,
64
+ "ComboItems": [
65
+ {
66
+ "_Type_": "ValueMapItem",
67
+ "Value": "A",
68
+ "Name": {
69
+ "resId": "sample_app.FORM.1.Name",
70
+ "zh_CN": "暂存"
71
+ }
72
+ },
73
+ {
74
+ "_Type_": "ValueMapItem",
75
+ "Value": "B",
76
+ "Name": {
77
+ "resId": "sample_app.FORM.2.Name",
78
+ "zh_CN": "已提交"
79
+ }
80
+ },
81
+ {
82
+ "_Type_": "ValueMapItem",
83
+ "Value": "C",
84
+ "Name": {
85
+ "resId": "sample_app.FORM.3.Name",
86
+ "zh_CN": "已审核"
87
+ }
88
+ }
89
+ ],
90
+ "Name": "billstatus"
91
+ },
92
+ {
93
+ "_Type_": "CreaterProp",
94
+ "Alias": "fcreatorid",
95
+ "DisplayName": {
96
+ "resId": "sample_app.FORM.mGJPp5Qux7.Name",
97
+ "zh_CN": "创建人"
98
+ },
99
+ "RefIdPropName": "creator_id",
100
+ "Name": "creator"
101
+ },
102
+ {
103
+ "_Type_": "ModifierProp",
104
+ "Alias": "fmodifierid",
105
+ "DisplayName": {
106
+ "resId": "sample_app.FORM.z7HtZmkVaA.Name",
107
+ "zh_CN": "修改人"
108
+ },
109
+ "RefIdPropName": "modifier_id",
110
+ "Name": "modifier"
111
+ },
112
+ {
113
+ "_Type_": "UserProp",
114
+ "Alias": "fauditorid",
115
+ "DisplayName": {
116
+ "resId": "sample_app.FORM.GnxpBjqGJ5.Name",
117
+ "zh_CN": "审核人"
118
+ },
119
+ "RefIdPropName": "auditor_id",
120
+ "Name": "auditor"
121
+ },
122
+ {
123
+ "_Type_": "DateTimeProp",
124
+ "TimeZoneTransType": 1,
125
+ "Alias": "fauditdate",
126
+ "DisplayName": {
127
+ "resId": "sample_app.FORM.AcFosbN4Er.Name",
128
+ "zh_CN": "审核日期"
129
+ },
130
+ "UseRegion": false,
131
+ "Name": "auditdate"
132
+ },
133
+ {
134
+ "_Type_": "ModifyDateProp",
135
+ "TimeZoneTransType": 1,
136
+ "Alias": "fmodifytime",
137
+ "DisplayName": {
138
+ "resId": "sample_app.FORM.ZmbqWNZPUl.Name",
139
+ "zh_CN": "修改时间"
140
+ },
141
+ "UseRegion": false,
142
+ "Name": "modifytime"
143
+ },
144
+ {
145
+ "_Type_": "CreateDateProp",
146
+ "TimeZoneTransType": 1,
147
+ "Alias": "fcreatetime",
148
+ "DisplayName": {
149
+ "resId": "sample_app.FORM.UoRNfdrXDX.Name",
150
+ "zh_CN": "创建时间"
151
+ },
152
+ "UseRegion": false,
153
+ "Name": "createtime"
154
+ },
155
+ {
156
+ "_Type_": "DateProp",
157
+ "RegionType": 1,
158
+ "Alias": "fk_sample_booking_date",
159
+ "MustInput": true,
160
+ "DisplayName": {
161
+ "resId": "sample_app.FORM.2MmFhwx5.Name",
162
+ "zh_CN": "定场日期"
163
+ },
164
+ "UseRegion": false,
165
+ "Name": "sample_booking_date"
166
+ },
167
+ {
168
+ "_Type_": "BasedataProp",
169
+ "Alias": "fk_sample_member",
170
+ "DisplayName": {
171
+ "resId": "sample_app.FORM.2MfrzkjF.Name",
172
+ "zh_CN": "会员"
173
+ },
174
+ "RefIdPropName": "sample_member_id",
175
+ "Name": "sample_member",
176
+ "BaseEntityId": "sample_member"
177
+ },
178
+ {
179
+ "_Type_": "TextProp",
180
+ "Alias": "fk_sample_customer_name",
181
+ "MustInput": true,
182
+ "DisplayName": {
183
+ "resId": "sample_app.FORM.jBjXiZh3.Name",
184
+ "zh_CN": "客户姓名"
185
+ },
186
+ "MaxLenth": 255,
187
+ "Name": "sample_customer_name"
188
+ },
189
+ {
190
+ "_Type_": "TelephoneProp",
191
+ "Alias": "fk_sample_contact_phone",
192
+ "MustInput": true,
193
+ "DisplayName": {
194
+ "resId": "sample_app.FORM.Q09P1MoQ.Name",
195
+ "zh_CN": "联系电话"
196
+ },
197
+ "MaxLenth": 30,
198
+ "Name": "sample_contact_phone"
199
+ },
200
+ {
201
+ "_Type_": "TelephoneProp",
202
+ "Alias": "fk_sample_contact_phone_2",
203
+ "DisplayName": {
204
+ "resId": "sample_app.FORM.f25hFX7c.Name",
205
+ "zh_CN": "会员手机号"
206
+ },
207
+ "MaxLenth": 30,
208
+ "Name": "sample_contact_phone_2"
209
+ },
210
+ {
211
+ "DefValue": 0,
212
+ "_Type_": "AmountProp",
213
+ "Alias": "fk_sample_total_amount",
214
+ "MustInput": true,
215
+ "DisplayName": {
216
+ "resId": "sample_app.FORM.jPXUPN34.Name",
217
+ "zh_CN": "总金额"
218
+ },
219
+ "Name": "sample_total_amount"
220
+ },
221
+ {
222
+ "_Type_": "ComboProp",
223
+ "Alias": "fk_sample_status",
224
+ "MustInput": true,
225
+ "DisplayName": {
226
+ "resId": "sample_app.FORM.uD0Wd5RN.Name",
227
+ "zh_CN": "状态"
228
+ },
229
+ "OptionDisplayMode": "combo",
230
+ "MaxLength": 50,
231
+ "ComboItems": [
232
+ {
233
+ "_Type_": "ValueMapItem",
234
+ "Value": "pending",
235
+ "Name": {
236
+ "resId": "sample_app.FORM.pending.Name",
237
+ "zh_CN": "待确认"
238
+ }
239
+ },
240
+ {
241
+ "_Type_": "ValueMapItem",
242
+ "Value": "confirmed",
243
+ "Name": {
244
+ "resId": "sample_app.FORM.confirmed.Name",
245
+ "zh_CN": "已确认"
246
+ }
247
+ },
248
+ {
249
+ "_Type_": "ValueMapItem",
250
+ "Value": "completed",
251
+ "Name": {
252
+ "resId": "sample_app.FORM.completed.Name",
253
+ "zh_CN": "已完成"
254
+ }
255
+ },
256
+ {
257
+ "_Type_": "ValueMapItem",
258
+ "Value": "cancelled",
259
+ "Name": {
260
+ "resId": "sample_app.FORM.cancelled.Name",
261
+ "zh_CN": "已取消"
262
+ }
263
+ }
264
+ ],
265
+ "Name": "sample_status"
266
+ },
267
+ {
268
+ "_Type_": "TextAreaProp",
269
+ "Alias": "fk_sample_remark",
270
+ "MustInput": true,
271
+ "DisplayName": {
272
+ "resId": "sample_app.FORM.0OE8HIWk.Name",
273
+ "zh_CN": "备注"
274
+ },
275
+ "MaxLenth": 500,
276
+ "Name": "sample_remark"
277
+ },
278
+ {
279
+ "_Type_": "EntryProp",
280
+ "ItemType": {
281
+ "_Type_": "EntryType",
282
+ "Alias": "tk_sample_bookin_order_line",
283
+ "DisplayName": {
284
+ "resId": "sample_app.FORM.635M85RZ8KK_.Name",
285
+ "zh_CN": "订场明细"
286
+ },
287
+ "Properties": [
288
+ {
289
+ "_Type_": "LongProp",
290
+ "Alias": "FEntryId"
291
+ },
292
+ {
293
+ "_Type_": "IntegerProp",
294
+ "Alias": "FSeq",
295
+ "DisplayName": {
296
+ "zh_CN": "分录行号"
297
+ },
298
+ "Scale": 0,
299
+ "Sys": true,
300
+ "Name": "seq"
301
+ },
302
+ {
303
+ "_Type_": "ModifierProp",
304
+ "Alias": "fmodifierfield",
305
+ "DisplayName": {
306
+ "resId": "sample_app.FORM.635M85RZ8JX0.Name",
307
+ "zh_CN": "修改人"
308
+ },
309
+ "RefIdPropName": "modifierfield_id",
310
+ "Name": "modifierfield"
311
+ },
312
+ {
313
+ "_Type_": "ModifyDateProp",
314
+ "TimeZoneTransType": 1,
315
+ "Alias": "fmodifydatefield",
316
+ "DisplayName": {
317
+ "resId": "sample_app.FORM.635M85RZ8KKA.Name",
318
+ "zh_CN": "修改时间"
319
+ },
320
+ "UseRegion": false,
321
+ "Name": "modifydatefield"
322
+ },
323
+ {
324
+ "_Type_": "BasedataProp",
325
+ "Alias": "fk_sample_court",
326
+ "MustInput": true,
327
+ "DisplayName": {
328
+ "resId": "sample_app.FORM.Gzb9IIQ8.Name",
329
+ "zh_CN": "场地"
330
+ },
331
+ "RefIdPropName": "sample_court_id",
332
+ "Name": "sample_court",
333
+ "BaseEntityId": "sample_court"
334
+ },
335
+ {
336
+ "_Type_": "TimeProp",
337
+ "Alias": "fk_sample_start_time",
338
+ "MustInput": true,
339
+ "DisplayName": {
340
+ "resId": "sample_app.FORM.LDtArwYs.Name",
341
+ "zh_CN": "开始时间"
342
+ },
343
+ "Name": "sample_start_time"
344
+ },
345
+ {
346
+ "_Type_": "TimeProp",
347
+ "Alias": "fk_sample_end_time",
348
+ "MustInput": true,
349
+ "DisplayName": {
350
+ "resId": "sample_app.FORM.JZ0GlyQf.Name",
351
+ "zh_CN": "结束时间"
352
+ },
353
+ "Name": "sample_end_time"
354
+ },
355
+ {
356
+ "DefValue": 0,
357
+ "_Type_": "DecimalProp",
358
+ "Alias": "fk_sample_duration",
359
+ "MustInput": true,
360
+ "DisplayName": {
361
+ "resId": "sample_app.FORM.iL1UnP1i.Name",
362
+ "zh_CN": "时长(小时)"
363
+ },
364
+ "Scale": 2,
365
+ "Name": "sample_duration"
366
+ },
367
+ {
368
+ "DefValue": 0,
369
+ "_Type_": "PriceProp",
370
+ "Alias": "fk_sample_unit_price",
371
+ "MustInput": true,
372
+ "DisplayName": {
373
+ "resId": "sample_app.FORM.6rxthEDW.Name",
374
+ "zh_CN": "单价"
375
+ },
376
+ "Name": "sample_unit_price"
377
+ },
378
+ {
379
+ "DefValue": 0,
380
+ "_Type_": "AmountProp",
381
+ "SummaryToField": {
382
+ "SumType": 1,
383
+ "_Type_": "SummaryToField",
384
+ "FieldId": "jPXUPN34",
385
+ "FieldName": "总金额",
386
+ "FieldKey": "sample_total_amount"
387
+ },
388
+ "Alias": "fk_sample_line_amount",
389
+ "MustInput": true,
390
+ "DisplayName": {
391
+ "resId": "sample_app.FORM.ycW4S2vF.Name",
392
+ "zh_CN": "金额小计"
393
+ },
394
+ "Name": "sample_line_amount"
395
+ },
396
+ {
397
+ "_Type_": "SubEntryProp",
398
+ "ItemType": {
399
+ "_Type_": "SubEntryType",
400
+ "Alias": "tk_sample_boo_ord_lin_addon",
401
+ "DisplayName": {
402
+ "resId": "sample_app.FORM.jJSEaQn7.Name",
403
+ "zh_CN": "附加服务"
404
+ },
405
+ "Properties": [
406
+ {
407
+ "_Type_": "LongProp",
408
+ "Alias": "FDetailId"
409
+ },
410
+ {
411
+ "_Type_": "IntegerProp",
412
+ "Alias": "FSeq",
413
+ "DisplayName": {
414
+ "zh_CN": "分录行号"
415
+ },
416
+ "Scale": 0,
417
+ "Sys": true,
418
+ "Name": "seq"
419
+ },
420
+ {
421
+ "_Type_": "TextProp",
422
+ "Alias": "fk_sample_svc_name",
423
+ "MustInput": true,
424
+ "DisplayName": {
425
+ "resId": "sample_app.FORM.HUcH8krC.Name",
426
+ "zh_CN": "服务项目"
427
+ },
428
+ "MaxLenth": 255,
429
+ "Name": "sample_svc_name"
430
+ },
431
+ {
432
+ "DefValue": 0,
433
+ "_Type_": "IntegerProp",
434
+ "Precision": 10,
435
+ "Alias": "fk_sample_svc_qty",
436
+ "MustInput": true,
437
+ "DisplayName": {
438
+ "resId": "sample_app.FORM.j58E5TWI.Name",
439
+ "zh_CN": "数量"
440
+ },
441
+ "Scale": 0,
442
+ "Name": "sample_svc_qty"
443
+ },
444
+ {
445
+ "DefValue": 0,
446
+ "_Type_": "PriceProp",
447
+ "Alias": "fk_sample_svc_price",
448
+ "MustInput": true,
449
+ "DisplayName": {
450
+ "resId": "sample_app.FORM.a2dloudh.Name",
451
+ "zh_CN": "单价"
452
+ },
453
+ "Name": "sample_svc_price"
454
+ },
455
+ {
456
+ "DefValue": 0,
457
+ "_Type_": "AmountProp",
458
+ "Alias": "fk_sample_svc_amt",
459
+ "MustInput": true,
460
+ "DisplayName": {
461
+ "resId": "sample_app.FORM.i7oSzmVW.Name",
462
+ "zh_CN": "金额"
463
+ },
464
+ "Name": "sample_svc_amt"
465
+ },
466
+ {
467
+ "_Type_": "TextAreaProp",
468
+ "Alias": "fk_sample_svc_note",
469
+ "MustInput": true,
470
+ "DisplayName": {
471
+ "resId": "sample_app.FORM.Lkr95E0e.Name",
472
+ "zh_CN": "备注"
473
+ },
474
+ "MaxLenth": 500,
475
+ "Name": "sample_svc_note"
476
+ }
477
+ ],
478
+ "Name": "sample_booking_order_e"
479
+ },
480
+ "DisplayName": {
481
+ "resId": "sample_app.FORM.jJSEaQn7.Name",
482
+ "zh_CN": "附加服务"
483
+ },
484
+ "Name": "sample_booking_order_e"
485
+ },
486
+ {
487
+ "_Type_": "ModifierIdProp",
488
+ "Alias": "fmodifierfield",
489
+ "PrimaryKey": false,
490
+ "Name": "modifierfield_id"
491
+ },
492
+ {
493
+ "_Type_": "LongProp",
494
+ "Alias": "fk_sample_court",
495
+ "PrimaryKey": false,
496
+ "Name": "sample_court_id"
497
+ }
498
+ ],
499
+ "Name": "sample_bookin_order_line"
500
+ },
501
+ "DisplayName": {
502
+ "resId": "sample_app.FORM.635M85RZ8KK_.Name",
503
+ "zh_CN": "订场明细"
504
+ },
505
+ "Name": "sample_bookin_order_line"
506
+ },
507
+ {
508
+ "_Type_": "LongProp",
509
+ "Alias": "fcreatorid",
510
+ "PrimaryKey": false,
511
+ "Name": "creator_id"
512
+ },
513
+ {
514
+ "_Type_": "ModifierIdProp",
515
+ "Alias": "fmodifierid",
516
+ "PrimaryKey": false,
517
+ "Name": "modifier_id"
518
+ },
519
+ {
520
+ "_Type_": "LongProp",
521
+ "Alias": "fauditorid",
522
+ "PrimaryKey": false,
523
+ "Name": "auditor_id"
524
+ },
525
+ {
526
+ "_Type_": "LongProp",
527
+ "Alias": "fk_sample_member",
528
+ "PrimaryKey": false,
529
+ "Name": "sample_member_id"
530
+ }
531
+ ],
532
+ "BillParameter": "bos_billparametertpl",
533
+ "Name": "sample_booking_order",
534
+ "_Type_": "BillEntityType",
535
+ "Alias": "tk_sample_booking_order",
536
+ "DisplayName": {
537
+ "resId": "sample_app.FORM.00305e8b000007ac.Name",
538
+ "zh_CN": "定场单"
539
+ }
540
+ }
541
+ }