@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
@@ -1,180 +1,104 @@
1
- # Cosmic Coding Impl
1
+ # Cosmic Java 编码实现
2
2
 
3
- 根据调用方提供的已验证编码上下文生成或修改可注册 Java 插件。应用、元数据和操作身份已经
4
- 绑定,禁止从会话、`archive.json` 或完整 Schema 重新发现;源码结构和调试方式由 AI 正常判断。
5
- 注册和平台读回由调用方负责;本技能负责实现及其窄范围编译证明。
3
+ 针对用户已绑定的表单实现或修改 Java。未提供当前 handoff 时,按
4
+ [plugin-handoff-input.md](../../references/plugin-handoff-input.md) 准备。优先读取准备好的 `coding-start`
5
+ 文件;否则从准确 handoff 查询 `coding-start`,缺失事实
6
+ 通过准确 pointer 查询,不重复准备。
7
+ `{ROOT_DIR}` 是根技能的技能包目录。完整字段归属和运行时集合路径以 `formGraph` /
8
+ `relatedForms` 为准,可选 `fields` 别名不是完整字段清单。使用已准备的项目、包与源码路径,
9
+ 不搜索兄弟项目或旧插件测试来重新推导。必需元数据缺失时,通过该目标的原生读取契约补齐;
10
+ 结构不完整不能猜测。无需额外规划文档或编码 Agent。
6
11
 
7
- `ROOT_DIR` 是根 app-build 技能提供的技能包目录。下文所有知识、指南和脚本路径
8
- 都必须逐字使用它;本地化技能自身的 Base directory 不是 `ROOT_DIR`。
12
+ ## 使用已提供的证据
9
13
 
10
- ## 输入契约
14
+ `codingEvidence` 从唯一的类型/基类/后缀映射 `references/type-registry.json` 解析指南与 API
15
+ 契约。其中的准确签名、导入和弃用提示已经是 API 证据,不要求为满足“本轮已读”而重复打开
16
+ 页面。`coreLogic` 中的业务事件名不是 SDK 签名。
11
17
 
12
- 必填:`appRoot`、`projectRoot`、`packagePath`、`type`、`coreLogic`、`formNumber`、
13
- `trigger`、`ownershipMode`。`coreLogic` 必须是精确行为数组。
18
+ 只读取缺失或适用的知识:
14
19
 
15
- 按场景必填:
20
+ - 已有证据不能确定事件位置、必需 `super` 调用或异常行为时,读所选指南的相关生命周期/场景。
21
+ 没有指南的类型,按实际实现读取准确 API 参考。
22
+ - 值访问、过滤或数据服务超出 `fieldContracts` 与 API 证据时,读
23
+ `knowledge/cosmic/platform/java-type-contracts.md` 的相关段落。
24
+ - 从 `knowledge/cosmic/platform/standards.md` 的严格禁止事项中读取适用平台约束;专项标准
25
+ 只读 `specialized.hitModules` 点名的部分。源码检查覆盖部分生命周期错误,不覆盖全部生产约束。
16
26
 
17
- - `type=operation`:`operationKeys` 为非空字符串数组。
18
- - Java 访问字段/实体:`fields` / `entities` 必须提供业务名到真实 key 的映射。随之提供
19
- `fieldContracts` 时,其中带有每个字段已验证的 `fieldType`,引用字段还带
20
- `valueAccessor`、`idAccessor`、`filterValue`。这些取值方式必须照抄使用;已有契约的字段
21
- 不得用自行推导或凭记忆的取值方式读取。
22
- - `ownershipMode=modify`:`sourcePath` 和 `existingMethods` 已提供。`sourcePath` 指向交接
23
- 编译器已经读取过的文件;`existingMethods` 列出该文件最外层类体已声明的方法签名。
24
- - 命中安全、幂等、大数据或审计约束:通过 `specialized.hitModules/constraints/evidence`
25
- 直接提供;已验证产物之外的数据或服务精确契约通过 `specialized.externalContracts` 提供
26
- (`externalApis` 仅为旧别名)。
27
- 交接编译器已保证 `specialized.unresolvedDependencies` 为空。禁止在编码阶段重新设计。
27
+ 缺少 API 证据时,在一次本地查询中批量指定接收者类与所需成员:
28
28
 
29
- 可选:`className`、`relateFormNumber`、`processingSteps`、`specialized`。
30
- 缺少必填或出现未解析字段、实体、操作标识时立即失败;禁止重新拉取元数据或猜 key。
31
-
32
- `coreLogic` 只按业务语义处理。若其中混入 Java 事件、Helper、方法名或 SDK 调用步骤,不得
33
- 照抄;以已选 guide 的验证 API 为准。必须依赖的外部集成若没有精确的
34
- `specialized.externalContracts`,返回 `L3-BLOCK`,不得猜服务名或用空值/默认值掩盖失败。
35
-
36
- ## 1. 确定类和路径
37
-
38
- - `modify + sourcePath`:先完整读取该文件。起点是它,不是 guide 骨架。只写本次要求的改动
39
- 及直接相关辅助代码;为遵循工程惯例,可以窄范围读取同包附近已有插件。
40
- - 新建:`className` 已给出则直接使用;否则将 `formNumber` 转为 PascalCase 后追加下表
41
- `classSuffix`。类名只能包含 `[A-Za-z0-9]`。
42
- - 新建输出固定为
43
- `{projectRoot}/src/main/java/{packagePath}/{className}.java`。
44
- - `packagePath` 直接转成 Java package;禁止重新发现其他模块或读取兄弟工程。
45
-
46
- ## 2. 最小知识读取
47
-
48
- 写任何取值、过滤条件或数据服务调用之前,先只读取一次
49
- `{ROOT_DIR}/knowledge/cosmic/platform/java-type-contracts.md`。它收录的是"两种写法都能编译
50
- 通过"的类型事实:引用字段存的是记录而不是它的 id、`QFilter` 的值可以是什么、每个比较操作符
51
- 对应哪个 `QCP` 常量、以及最常被凭记忆写错的返回类型。编译边界会拒绝与登记返回类型矛盾的
52
- 声明,但取值类型写错只会在数据库层暴露。
53
-
54
- 生成源码之前,先只读取一次 `{ROOT_DIR}/knowledge/cosmic/platform/standards.md` 的
55
- `强制禁止项` 一节。那是平台的生产事故清单:循环内不能做什么、日志/多语言/线程池/缓存 key 必须用
56
- 哪些 API、`initialize()` 里不能碰什么。本流程没有任何闸门检查其中任何一条,违反了照样能编译、能
57
- 注册,并进入生产环境。
29
+ ```text
30
+ {python} "{ROOT_DIR}/scripts/platform_api_contract.py" --describe-class "<receiver class>" [--describe-class "<another class>"] [--member "<required member>"]
31
+ ```
58
32
 
59
- 按映射表只读取一次当前 `type` 的 guide。先使用 guide 中的事件签名、骨架和 top-1 场景;
60
- 已经覆盖实现时立即停止读取。
33
+ 查询包含已文档化父类。未记载不等于不存在,剩余缺口查所选场景,或按返回的 `sdkLookup` 使用
34
+ [SDK 查证](../../references/sdk-inspection.md) 核对实际目标库。
35
+ 插件、校验器和事件对象上的同名调用具有不同契约。需要搜索时,仅搜索相关平台知识或目标
36
+ 模块附近代码。必需 API 或外部契约仍无法确定时返回 `L3-BLOCK`。
61
37
 
62
- 发出 `kd.bos.*` 调用前先遵循当前 guide 的 API 证据路由。所需调用仍无精确
63
- import/方法签名时,只读取 guide 点名的一份 API 参考,或在平台知识和目标模块附近插件代码中
64
- 做窄范围搜索;禁止巡游目录索引、整套 SDK、无关场景或兄弟工程。仍无准确依据时返回
65
- `L3-BLOCK`,禁止写 TODO、占位方法或猜 API。
38
+ 查询、加载、保存调用直接使用已准备场景的 `apiContracts`。`EntryType` 或
39
+ `collectionPath` 能证明字段归属,不能证明 `QueryServiceHelper` 接受该分录作为独立查询根。
40
+ 缺少查询用法时,先按目标 SDK 示例或限定范围的只读平台验证查证。状态行为依据 `operationContracts`
41
+ 和已验证枚举值,写源码前解决 `stateWarnings`;编译和注册保持已准备的操作键。
42
+ 多操作插件使用 `codingEvidence.operationDispatch`:校验器 `getOperateKey()` 与事务参数
43
+ `getOperationKey()` 是不同接收者的契约。[操作分派参考](../../references/operation-dispatch.md)
44
+ 给出 SDK 查证范围,不能把猜测的 `operateMeta` Map 键作为操作契约。
66
45
 
67
- 平台类自身的参考文档位于 `{ROOT_DIR}/knowledge/cosmic/platform/api/**/{Class}.md`,其方法列表
68
- 只包含该类自己声明的方法。所需方法不在其中时,先读该页 Overview 中 `inherits from` 指向的那个
69
- 类,再断定方法不存在 —— 继承来的方法记录在父类页面,不在子类页面。继承平台基类时,无论 guide
70
- 路由到哪里,该基类页面都是必读项:它是你所重写方法的签名,以及获取上下文、结果等对象的 getter
71
- 的唯一来源。
46
+ 读取表头与分录时,可按需参考 [CosmicEntryQuery.java](../../../../examples/java-rules/CosmicEntryQuery.java):
47
+ 在表单根查询 ID,再加载结构化对象并读取集合属性。示例通过 8.0 SDK 编译验证;实际表单编码、
48
+ 集合属性、过滤条件与返回字段需在已授权目标中验证。展开查询继续使用已有 `query-entities.md` 场景。
72
49
 
73
- `specialized.hitModules` 非空时,只读取其中明确命名的对应规范;为空时不读取架构、安全、
74
- OOM、幂等专项文档。`constraints` 必须逐项落实。
50
+ ## 写入源码
75
51
 
76
- ## 3. 生成源码
52
+ modify 先完整读取现有文件,以它为起点。在已有触发方法内添加行为,`existingMethods` 是
53
+ 方法清单,不是要求重新声明。保留无关代码、包、类与导入。create 使用所选类型的基类及生命
54
+ 周期契约,写入返回的 `sourcePath`。
77
55
 
78
- 写入前执行:
56
+ 写入前复用准备阶段的 `sourceGate.state="coding"`;只有缺少该状态时才执行:
79
57
 
80
58
  ```text
81
59
  {python} "{ROOT_DIR}/scripts/plugin_source_gate.py" --project-root "{projectRoot}" --class-name "{className}" --write coding
82
60
  ```
83
61
 
84
- `create-new`:按 guide 生成完整可编译类。
85
-
86
- `modify`:修改已经存在的那个类。guide 只提供事件签名和 API 用法,永远不提供文件的整体形状。
87
-
88
- - 每条行为写进已经承载对应触发时机的那个方法。所需方法出现在 `existingMethods` 中时,把逻辑
89
- 加进**那个已有声明的方法体内**;重复声明会被判为 `PLUGIN_SOURCE_DUPLICATE_METHOD`。
90
- guide 骨架里写着 `afterCreateNewData`,不等于要新写一个 `afterCreateNewData`。
91
- - 只有签名不在 `existingMethods` 中的方法才允许新增。
92
- - 保持原有 package、类声明、基类、字段和无关方法不变。import 采用追加,不要替换整段 import。
93
-
94
- 两种模式共同遵守:
95
-
96
- - 每个平台标识可回溯到本轮读取的 guide/场景/API 文档:在平台类型上调用的每个方法、每个 import
97
- 的类,不只是 `kd.bos.*` 引用。任何文档都没出现过的方法名、参数或包名就是臆想,哪怕变量是
98
- 局部的、类型很明显。
99
- - 基类及其 import 以类型注册表中该 `type` 的 `baseClass`/`baseImport` 为准,大小写与包路径
100
- 照登记原文。形如把 `kd.bos.bill.AbstractBillPlugIn` 写成
101
- `kd.bos.form.plugin.AbstractBillPlugin` 的近似拼错是凭记忆写出的名字,并非平台类:最好情况也
102
- 只会以一句裸的符号错误暴露,跳过编译时更会注册一个平台根本加载不了的类。
103
- - 每条 `kd.bos` import、每个平台成员调用都携带登记拼写,大小写一致——登记名的 case-fold 或近似
104
- 拼错(把 `AbstractBillPlugIn` 写成 `AbstractBillPlugin`、把 `getEntryRowCount` 写成
105
- `getEntryCount`)是凭记忆的名字,在哪儿都编译不过,会被编译边界拒绝。
106
- - `@Override` 照抄基类页面给出的签名,包括参数。绝不添加基类未声明的参数;方法需要但未接收的对象,
107
- 来自基类自身的 getter。参数类型与登记签名不一致——如把 `PropertyChangedArgs` 写成
108
- `PropertyChangedEventArgs`——会使该方法变成平台永远不会调用的重载。
109
- - 字段和实体常量只使用 payload `fields/entities` 中的真实 key。
110
- - `QFilter` 的比较操作符绝不写等价的字符串字面量。操作符表里该行给出 `首选` 辅助方法时就用它
111
- (多数 `QCP` 成员是 `@SdkInternal`,其中四个有 `@SdkPublic` 的 `QFilter` 辅助方法),否则写
112
- `QCP` 常量。编译边界会拒绝字面量,并按该行规定的那一种给出改法。
113
- - 带有 `fieldContracts` 条目的字段一律按其给出的取值方式读取,其 `javaType` 就是该值的声明
114
- 类型。引用字段的 `get()` 拿到的是被引用记录,因此过滤条件或 id 比较必须用 `filterValue`
115
- 或 `idAccessor`,不能直接用字段值。
116
- - `operationKeys` 只决定事件与注册位置,不得把多个 key 拼成一个平台 key。
117
- - `modify` 只做与 `coreLogic` 相关的最小改动。
118
- - 调用重写方法所需的 `super`、事件签名、国际化和异常处理以当前 guide 为准;禁止用一套
119
- 通用规则覆盖不同插件基类。
120
- - 代码标识符使用英文;注释和用户可见文本跟随当前回复语言。
121
-
122
- 只做一次源码自检:import/基类/override 签名、类体内无签名被声明两次、跨 package 的类与成员
123
- 可见性、字段 key、空值与集合边界、异常不吞噬、`specialized.constraints`。发现问题直接修复
124
- 源码,不扩展业务范围。
125
-
126
- ## 4. 编译、归档并返回
127
-
128
- 只读一次 `{ROOT_DIR}/references/compile-guide.md`,调用其中唯一编译脚本处理本轮
129
- `sourcePath`。按结构化诊断做正常的窄范围调试,必要时查看目标模块相关代码或准确 API 证据。
130
- 禁止手工运行 Gradle、检查构建配置,或搜索 jar、兄弟工程、元数据、Gradle 缓存及外部源码。
131
- 现有证据不能解决时返回 `L3-BLOCK`。
132
-
133
- 编译命令同时写入当前类的归档项,并且只在编译和归档都成功后标记 gate。每个操作 key 单独
134
- 传参,数组为空时整项省略。禁止再单独调用 `write_archive_json.py` 或
135
- `plugin_source_gate.py --write source_ready`。
136
-
137
- 最后只输出一行:
138
-
139
- ```text
140
- ::TASK_STATUS::{"status":"source_ready","className":"<className>","fqcn":"<package.className>","sourcePath":"<绝对路径>","formNumber":"<formNumber>","operationKeys":["<key>"]}
141
- ```
142
-
143
- 失败只输出 `status=failed` 和简短 `error`。禁止输出源码、长推理、编译或注册结果。
144
-
145
- ## 插件映射
146
-
147
- | type | classSuffix | guide |
148
- |---|---|---|
149
- | `form` | `FormPlugin` | `{ROOT_DIR}/knowledge/cosmic/platform/form-plugin.md` |
150
- | `billform` | `BillPlugin` | `{ROOT_DIR}/knowledge/cosmic/platform/form-plugin.md` |
151
- | `baseform` | `FormPlugin` | `{ROOT_DIR}/knowledge/cosmic/platform/form-plugin.md` |
152
- | `form_plugin` | `FormPlugin` | `{ROOT_DIR}/knowledge/cosmic/platform/form-plugin.md` |
153
- | `listform` | `ListPlugin` | `{ROOT_DIR}/knowledge/cosmic/platform/list-plugin.md` |
154
- | `mobbill` | `MobBillPlugin` | `{ROOT_DIR}/knowledge/cosmic/platform/form-plugin.md` |
155
- | `mobform` | `MobPlugin` | `{ROOT_DIR}/knowledge/cosmic/platform/form-plugin.md` |
156
- | `moblist` | `MobListPlugin` | `{ROOT_DIR}/knowledge/cosmic/platform/list-plugin.md` |
157
- | `treelist` | `TreeListPlugin` | `{ROOT_DIR}/knowledge/cosmic/platform/standardtreelist-plugin.md` |
158
- | `operation` | `OpPlugin` | `{ROOT_DIR}/knowledge/cosmic/platform/operation-plugin.md` |
159
- | `workflow` | `WorkflowPlugin` | `{ROOT_DIR}/knowledge/cosmic/platform/workflow-plugin.md` |
160
- | `task` | `Task` | `{ROOT_DIR}/knowledge/cosmic/platform/task-plugin.md` |
161
- | `customapi` | `ApiController` | `{ROOT_DIR}/knowledge/cosmic/platform/openapi-customapi-java-plugin.md` |
162
- | `apiplugin` | `ApiPlugin` | `{ROOT_DIR}/knowledge/cosmic/platform/openapi-ext-plugin.md` |
163
- | `reportform` | `ReportPlugin` | `{ROOT_DIR}/knowledge/cosmic/platform/report-plugin.md` |
164
- | `reportlist` | `ReportListPlugin` | `{ROOT_DIR}/knowledge/cosmic/platform/reportlistdata-plugin.md` |
165
- | `reporttreelist` | `ReportTreePlugin` | `{ROOT_DIR}/knowledge/cosmic/platform/reporttreedata-plugin.md` |
166
- | `report-plugin` | `ReportListPlugin` | `{ROOT_DIR}/knowledge/cosmic/platform/reportlistdata-plugin.md` |
167
- | `compareplugin` | `FilterContantParser` | `{ROOT_DIR}/knowledge/cosmic/platform/compare-plugin.md` |
168
- | `printplugin` | `PrintPlugin` | `{ROOT_DIR}/knowledge/cosmic/platform/print-plugin-guide.md` |
169
- | `kwc` | `Controller` | `{ROOT_DIR}/knowledge/cosmic/platform/kwc-controller-plugin.md` |
170
- | `writeback` | `WriteBackPlugin` | `{ROOT_DIR}/knowledge/cosmic/platform/writeback-plugin.md` |
171
- | `botp` | `BotpPlugin` | `{ROOT_DIR}/knowledge/cosmic/platform/botp-plugin.md` |
172
- | `import` | `ImportPlugin` | `{ROOT_DIR}/knowledge/cosmic/platform/import-plugin.md` |
173
- | `service` | `Service` | 无 guide;所需 API 必须逐项取得文档依据 |
174
-
175
- ## 禁止行为
176
-
177
- - 调用 app-build、建模技能、修改技能或插件设计。
178
- - 读取 `archive.json` 作为输入,重新发现应用、表单、字段、操作或路径。
179
- - 执行插件注册、`prepareFormMutationTarget`、describe/catalog 搜索或平台读回。
180
- - 在 `{projectRoot}` 和 `{appRoot}/archive.json` 之外写文件。
62
+ - 使用已验证的 `fields` / `entities` 键,以及 `fieldContracts` 中的准确访问器和值类型。
63
+ 引用字段的记录不是 ID,比较时使用其 `idAccessor` 或 `filterValue`。
64
+ 目标 8.0 SDK 的 `TimeProp` 是距午夜的整秒数,使用返回的 `getInt` 访问器,
65
+ 不用 `getDate`;空值及跨日情形另按实际业务规则处理。
66
+ [CosmicTimeAdapter.java](../../../../examples/java-rules/CosmicTimeAdapter.java)
67
+ 示例演示先拒绝异常值,再转换为普通 Java 时间。
68
+ - 准确复制基类导入和重写签名,包括大小写与参数类型。按接收者证据核对平台调用,不靠近似名称猜 API。
69
+ - `QFilter` 使用操作符表推荐的辅助方法,否则使用对应 `QCP` 常量,不能用字符串操作符。
70
+ 仅在所需操作符尚无证据时读取该表。
71
+ - 实现 `coreLogic`、已提供的 `reportContract` 和 `specialized.constraints`。
72
+ 报表过滤读取 [report-filter-contract.md](../../references/report-filter-contract.md),
73
+ 绑定实际取值 key、源字段类型、F7 组织身份、拆分日期和加载证据。
74
+ 多个 `operationKeys` 保持独立;外部调用需要已提供的准确契约。
75
+ - 每项行为绑定到真实操作/事件,注册多个操作时分别使用对应条件,不能每个操作都执行全部行为。
76
+ 从操作数据包读取的字段要在属性准备钩子中声明。
77
+ - 按真实状态字段和值显式实现所需业务状态变化;标准操作的 `statusFieldKey` 可能指向另一字段。
78
+ 覆盖本任务要求的每条流转及其关联副作用。
79
+ - 独立加载的关联对象通过已验证保存/更新 API 持久化,核对事务边界及所需幂等性;
80
+ `set` 本身不代表关联对象已保存。
81
+ - 副作用保持在需求范围内,余额校验不隐含扣减或退款。附近测试/代码用于参考工程约定,
82
+ 原始需求和 `coreLogic` 决定业务行为。
83
+ - 对存在边界情况的时段、金额或状态规则,将判定写成可脱离平台对象检查的普通 Java 代码;
84
+ 元数据读取、事件绑定和持久化留在轻量的苍穹适配层。简单校验无需机械拆类。
85
+ 测试时检查实际生产规则,不要为了脱离平台运行而把规则复制到测试专用类。
86
+ 返回真实命令与结果,未执行时如实标记未运行。本地规则测试不能证明平台事件绑定或运行态业务覆盖。
87
+ - 按所选生命周期处理空值、异常和 `super`。标识符用英文,注释和用户可见文本跟随回复语言。
88
+
89
+ 检查修改源码中的重复签名、导入/可见性、字段访问、空值和集合边界、吞异常及已提供约束,
90
+ 在任务范围内修复。
91
+ 将每项所需行为对应到源码方法/条件及可观察结果;对照原始 AC 索引和可用操作,明确返回冻结键
92
+ 之外的未实现行为、缺少操作或依赖。常量或状态标签本身不代表实现了流转及关联副作用。
93
+ 未经验证的修复原因保留为假设;
94
+ 编译通过不能证明 SDK 查询行为正确或业务缺陷已经修复。
95
+
96
+ ## 编译并继续交付
97
+
98
+ 按 [compile-guide.md](../../references/compile-guide.md) 执行原生编译/归档边界。
99
+ 该命令同时推进源码门禁,不单独写归档或标记 `source_ready`。
100
+ 实施者随后继续 [java-plugin-delivery.md](../../references/java-plugin-delivery.md) 完成注册与交付;
101
+ 达到 `source_ready` 不代表用户整体请求结束。
102
+
103
+ 报告原生结果中的真实源码身份、编译/归档结果、`compileSkipped` 和未验证项。
104
+ 源码及编译/归档写入保持在已验证项目和应用路径内。
@@ -26,7 +26,7 @@ action-catalog record) is Chinese-free.
26
26
  | `references/examples/plugins/` | Plugin `templates/`, `community/`, and the source-language scenario-example directory (event/scenario-split real examples) |
27
27
  | `references/docs/` | Custom-development runtime guides and pitfall docs |
28
28
  | `references/typescript/` | `tsconfig.json` + `package.json` reference for a full `tsc --noEmit` setup |
29
- | `references/sdk/` | **Retrieval layer only**: `README.md`, `strategy.md`, `docs/`, `templates/`, the small `indexes/` entry points, and the small `manifests/` |
29
+ | `references/sdk/` | **Retrieval layer only**: `README.md`, `strategy.md`, `docs/`, `templates/`, and the small `indexes/` entry points |
30
30
 
31
31
  ## What was intentionally NOT ported
32
32
 
@@ -1,5 +1,9 @@
1
1
  # Cosmic Coding Script
2
2
 
3
+ KWC 工程的 Controller(`app/ks/controller/*.ts`)使用
4
+ [KWC Controller 编写入口](references/kwc-controller-authoring.md),完成后返回 KWC。
5
+ 该入口复用目标环境 SDK 检索和本地源码检查,不执行下方的插件注册流程。
6
+
3
7
  根据调用方提供的已验证编码上下文,编写可注册的 KingScript 插件或脚本控制器,用本地
4
8
  KingScript 门禁验证,并返回已验证源码。本技能是 `cosmic-coding-impl`(Java)的 KingScript
5
9
  姊妹技能。应用、表单、目标类型、字段标识与脚本身份均已绑定;禁止从会话、留档或完整
@@ -16,6 +20,8 @@ false、脚本记录不可修改也不可删除,`registerPlugin` 对坏源码
16
20
  - `{ROOT_DIR}` 为 app-build 根目录;`{python}` 为 Python 解释器。
17
21
  - 技能知识根:`{KS_ROOT}` = `{ROOT_DIR}/skills/cosmic-coding-script`。
18
22
  - 本地门禁:`{ROOT_DIR}/scripts/kingscript_source_gate.py`。
23
+ - 环境 SDK 同步:`{ROOT_DIR}/scripts/kingscript_sdk_sync.py`;其构建的缓存位于
24
+ `~/.kd/kingscript-sdk/<envName>/`。
19
25
 
20
26
  下方所有知识路径均为加载时解析的 inline-code 引用;每个只读一次,当前层足够时绝不预加载
21
27
  更高层。
@@ -61,8 +67,9 @@ false、脚本记录不可修改也不可删除,`registerPlugin` 对坏源码
61
67
  字符数,达到上限即停止。绝不预加载整棵树、全部模板或全部示例。
62
68
 
63
69
  - **Tier 0(始终加载)**:`{KS_ROOT}/references/examples/kingscript/README.md`(语法、命名、
64
- 保留关键字、模块/引用规则)+ `{KS_ROOT}/references/sdk/indexes/quick-lookup.md`(覆盖大部分
65
- SDK 路由)+ `{KS_ROOT}/references/examples/plugins/templates/` 下最匹配的 1 个模板。
70
+ 保留关键字、模块/引用规则)+ `{KS_ROOT}/references/sdk/indexes/quick-lookup.md`(场景路由
71
+ 到候选类;SDK 事实来自环境缓存,而非此处)+
72
+ `{KS_ROOT}/references/examples/plugins/templates/` 下最匹配的 1 个模板。
66
73
  - **Tier 1(Medium+)**:`{KS_ROOT}/references/examples/plugins/community/` 下最贴近的 1 个社区
67
74
  示例 + 事件签名索引 `{KS_ROOT}/references/sdk/indexes/methods-lifecycle.md` 或
68
75
  `methods-hot.md` + `plugin-index.md` / `scenario-index.md` / `keyword-index.md` 之一。
@@ -77,25 +84,47 @@ grep-only 规则:绝不 `read_file` 任何大于 100KB 的文件;`indexes/`
77
84
  `rg -n`(或 `rg --files`)在 `{KS_ROOT}` 上检索。
78
85
 
79
86
  **可选外部 SDK 知识盘(不随仓库分发)。** 完整类卡层(`references/sdk/classes/`、`packages/`、
80
- `indexes/class-index*.md`、`enum-index.md` 及大清单文件)**刻意不在**本仓库内。
81
- `{KS_ROOT}/references/sdk/strategy.md` 将其描述为第 1–3 层;**仅当**维护者在本地挂载了离线 SDK
82
- 资料包时(strategy.md 第 4 层)这些层才可用。当它缺失时,下方检索链从已分发的索引与清单直接
83
- 跳到在线 Javadoc,再跳到有界的 `[D4-PENDING]` 回答。只读了索引时,绝不声称读了类卡。
87
+ `indexes/class-index*.md`、`enum-index.md`)**刻意不在**本仓库内,且在存在性事实上
88
+ 已被下方环境 SDK 缓存——运行中平台自己的声明集——取代。把外部挂载的离线 SDK 资料包
89
+ (strategy.md 第 4 层)仅当作编辑性知识(用法说明、真实示例)的补充,且仅当维护者已在本地挂载
90
+ 时;它绝不是存在性事实的来源。当它缺失时,下方检索链不依赖它也完整。只读了索引时,绝不声称
91
+ 读了类卡。
92
+
93
+ ## SDK 事实来源:目标环境,而非随仓快照
94
+
95
+ SDK 开放面依赖苍穹版本:随仓的 `{KS_ROOT}/references/sdk/` 树只是构建期快照,两个方向的漂移都
96
+ 真实存在——旧环境缺少快照列出的类型,新环境暴露快照从未有过的模块(`@constellation/*` 业务
97
+ 套件)。做任何 import 实证之前,先与运行中的平台对齐:
98
+
99
+ ```text
100
+ {python} "{ROOT_DIR}/scripts/kingscript_sdk_sync.py" ensure
101
+ ```
102
+
103
+ - `ready` / `synced`:动态层是 SDK 存在性、包与签名的唯一事实来源。
104
+ - `failed`(离线,或平台无 poll API):降级为只用随仓索引做路由,并在任务状态返回中携带
105
+ `"sdk": "snapshot-degraded"`——依快照解析出的 import 未经运行平台验证,必须如实报告。
106
+
107
+ 缓存包含 `type-index.tsv`(`<类型>\t<模块>\t<包斜杠>\t<包点号>`,即 D4 三要素查询)与 `dts/`
108
+ (该环境实际的 `@cosmic/*` 声明:包级导出文件,加上携带方法签名、Javadoc 与 `@since` 标记的
109
+ 模块根聚合声明)。使用 ensure 输出中的 `cacheDir` / `typeIndexPath` / `dtsDir` 值;绝不硬编码
110
+ 环境名。
84
111
 
85
112
  ## D4 import 实证门控(写入任何 import 前)
86
113
 
87
114
  只读一次 `{KS_ROOT}/rule/p0-group-d-imports.md`。每个非基础类型的 import(类、接口、事件参数、
88
115
  枚举)在写入前必须实证到三要素:**类型全名 + 所属模块 + 包路径**。
89
116
 
90
- 检索链(已按实际分发文件调整):
117
+ 检索链(动态优先):
91
118
 
92
- 1. `{KS_ROOT}/references/sdk/indexes/quick-lookup.md`
93
- 2. `methods-lifecycle.md` / `methods-hot.md`(由事件/方法解析到其所属类型,再继续)
94
- 3. `plugin-index.md` / `scenario-index.md` / `keyword-index.md` / `package-index.md`
95
- 4. `{KS_ROOT}/references/sdk/manifests/summary.json` + `modules.json`
96
- 5. 可选外部 SDK 知识盘(`classes/`、`class-index-full.md`),**仅在已挂载时**
97
- 6. 在线 Javadoc(`https://dev.kingdee.com/sdk/Cosmic%20V8.0.1/index.html`)
98
- 7. 有界回答
119
+ 1. `rg -F "<TypeName>" <typeIndexPath>`——来自环境缓存的直接三要素证明。
120
+ 2. 方法/签名证明:在 `<dtsDir>` 下 `rg` 方法名,读取命中的包级导出文件,以及声明
121
+ `interface <Type>$ { ... }` 的模块根聚合。聚合还暴露继承链
122
+ (`type X_T = X$ & Parent ...`),因此“该方法属于该变量的类型还是其继承链”可以本地解答。
123
+ 3. 随仓索引(`quick-lookup.md`、`methods-lifecycle.md` / `methods-hot.md`、
124
+ `plugin-index.md` / `scenario-index.md` / `keyword-index.md`)**仅作路由辅助**:它们把场景
125
+ 与事件名映射到候选类型,但每个候选在写入 import 前仍须在第 1–2 步实证。
126
+ 4. 在线 Javadoc(`https://dev.kingdee.com/sdk/Cosmic%20V8.0.1/index.html`)。
127
+ 5. 有界回答。
99
128
 
100
129
  快速失败:最多 3 次 grep 尝试。若三要素仍未解析,在源码中把该 import 标注为
101
130
  `// [D4-PENDING] <类型> — <原因>`,在返回中报告它,并给出保守降级方案。绝不按命名模式臆测
@@ -211,4 +240,6 @@ List/Operation → `p0-group-a-syntax.md`(A1,A3,A4)+ `p0-group-d-imports.md`
211
240
  - 按命名模式臆测 import 路径或 API、写 TODO/占位代码,或编造 SDK 类型、事件、上下文结构。
212
241
  - 绕过门禁(`@ts-ignore`、`as any`、事件参数 `any`、`--skip-syntax`),或把降级/失败的证明报告
213
242
  为已编译或通过。
243
+ - 在环境缓存可用时把随仓 SDK 索引当作存在性证明,或把 snapshot-degraded 的运行报告为完全
244
+ 验证。
214
245
  - 删除任何脚本记录,或在 `sourceArchiveRoot` 之外写入。
@@ -0,0 +1,6 @@
1
+ # KWC Controller 编写入口
2
+
3
+ 请读取唯一维护的 [KWC Controller authoring](../../../../../skills/cosmic-coding-script/references/kwc-controller-authoring.md)。
4
+ 沿该文件所在位置解析 `{ROOT_DIR}`,复用其 SDK 同步和源码检查命令。
5
+ 自然语言仍使用用户当前语言;KWC 保留 `.kws`、adapterApi、部署和最终验收职责。
6
+ 本入口不引入 Java 插件、`createScript`、`registerPlugin` 或独立子 Agent。
@@ -2,6 +2,21 @@
2
2
 
3
3
  这个目录不是原始 `node_modules` 的镜像,而是面向大模型检索和二开使用的 SDK 知识层。
4
4
 
5
+ ## 事实来源:目标环境动态 SDK(权威)
6
+
7
+ SDK 面随苍穹版本变化:旧环境缺少本目录列出的类型,新环境多出本目录没有的模块(如
8
+ `@constellation/*` 业务套件)。**SDK 存在性、包归属、方法签名的事实判定一律以目标环境为准**:
9
+
10
+ ```bash
11
+ # 拉取/校验目标环境的真实 @cosmic/* 声明(缓存 7 天)
12
+ python3 app-build/scripts/kingscript_sdk_sync.py ensure
13
+ # 三要素直查(类型 → 模块 → 包路径)
14
+ python3 app-build/scripts/kingscript_sdk_sync.py lookup --type AbstractFormPlugin
15
+ ```
16
+
17
+ 缓存位于 `~/.kd/kingscript-sdk/<envName>/`:`type-index.tsv`(三要素索引)+ `dts/`(真实声明树)。
18
+ 本目录的索引仅作场景路由与离线回退,不作为存在性证据。
19
+
5
20
  ## 建设目标
6
21
 
7
22
  - 让模型先找到正确的模块、包、类或场景,再读取细节
@@ -42,7 +57,7 @@
42
57
 
43
58
  ### 已知类名
44
59
 
45
- 先读 `indexes/class-index.md`,再打开对应类文档。
60
+ 先用环境缓存直查(`kingscript_sdk_sync.py lookup --type <类名>`),再按需打开外部知识盘类卡。
46
61
 
47
62
  ### 已知业务场景
48
63
 
@@ -70,14 +85,13 @@
70
85
 
71
86
  ## 全量 SDK 检索降级链路
72
87
 
73
- 当知识卡不足以回答问题时,必须按下面的顺序继续查找:
88
+ 当知识卡不足以回答问题时,必须按下面的顺序继续查找(第 -1 层为事实权威,详见 `strategy.md`):
74
89
 
75
- 1. `classes/`、`packages/`
76
- 2. `indexes/`
77
- 3. `manifests/`
78
- 4. 本地 `.d.ts` 源文件
79
- 5. 在线 Javadoc
80
- 6. 如果仍不确定,明确说明假设和缺口
90
+ -1. 环境动态层:`~/.kd/kingscript-sdk/<envName>/`(`type-index.tsv` + `dts/`,事实权威)
91
+ 1. `indexes/`(路由辅助:场景/事件名 → 候选类型;候选仍须回 -1 层实证)
92
+ 2. 外部知识盘类卡与本地 `.d.ts` 源文件(仅在维护者已挂载时)
93
+ 3. 在线 Javadoc
94
+ 4. 如果仍不确定,明确说明假设和缺口
81
95
 
82
96
  当前外部兜底来源:
83
97
 
@@ -89,20 +103,15 @@
89
103
  ```text
90
104
  sdk/
91
105
  ├─ README.md
92
- ├─ strategy.md — 7 层 SDK 检索策略
106
+ ├─ strategy.md — 分层 SDK 检索策略
93
107
  ├─ docs/ — 桥接文档和 SDK 概览
94
- ├─ indexes/ — 12 个 Markdown 索引
95
- ├─ classes/ — 类知识卡片(~3800 个)
96
- ├─ packages/ — kd.* 包概述卡片
97
- └─ manifests/ — JSON 元数据(packages.json, modules.json)
108
+ ├─ indexes/ — 10 个 Markdown 索引(路由辅助,grep 目标)
109
+ └─ templates/ — SDK 文档生成模板
98
110
 
99
111
  ../examples/plugins/templates/ — 插件模板(SDK 方法速查由生成器自动注入)
100
112
  ```
101
113
 
102
- 当前 `manifests/` 已接入:
103
-
104
- - 模块清单(`modules.json`)
105
- - kd.* 包清单(`packages.json`)
114
+ `classes/`、`packages/`、`class-index*.md`、`enum-index.md` 等大类卡资产刻意不随仓库分发(外部知识盘产物);SDK 存在性事实一律以环境动态缓存为准。
106
115
 
107
116
  ## 建设原则
108
117
 
@@ -146,14 +155,15 @@ sdk/
146
155
 
147
156
  ## 注意事项
148
157
 
149
- - 原始 SDK 清单、扫描结果统一放在 `manifests/`
150
- - 面向模型阅读的知识卡统一放在 `classes/`、`packages/`
158
+ - 面向模型阅读的知识卡统一放在 `classes/`、`packages/`(外部知识盘,不随仓库分发)
151
159
  - 插件模板统一放在 `../examples/plugins/templates/`(SDK 方法速查由生成器自动注入)
152
160
  - 全量检索规则统一写在 `strategy.md`
153
161
  - 没有真实来源时,不要伪造任何 SDK 类、方法、参数或返回值
154
162
 
155
163
  ## 本轮新增的高频入口
156
164
 
165
+ > 下列 `classes/*.md` 类卡为生成器/外部知识盘产物,不随仓库分发;仓库内请以环境缓存 `lookup --type` 实证同名类型。
166
+
157
167
  - Java 与 Kingscript 类型桥接: `docs/java-kingscript-bridge.md`
158
168
  - 数据操作: `classes/DynamicObject.md`、`classes/DynamicObjectCollection.md`
159
169
  - 操作结果与校验: `classes/OperationResult.md`、`classes/ValidationErrorInfo.md`、`classes/ValidateResult.md`、`classes/ErrorLevel.md`
@@ -75,12 +75,11 @@ HTTP / 缓存 / 编码工具类
75
75
 
76
76
  ```
77
77
  references/sdk/
78
- manifests/ — 结构化 JSON 元数据
79
78
  indexes/ — Markdown 索引
80
- classes/ — 类知识卡片
81
- packages/ — 包概述卡片
79
+ classes/ — 类知识卡片(外部知识盘,不随仓库分发)
80
+ packages/ — 包概述卡片(外部知识盘,不随仓库分发)
82
81
  docs/ — 桥接文档和 SDK 概览
83
- strategy.md — 7 层 SDK 检索策略
82
+ strategy.md — 分层 SDK 检索策略
84
83
 
85
84
  references/templates/
86
85
  *.md — 插件模板(SDK 方法速查由生成器自动注入)
@@ -1,7 +1,7 @@
1
1
  # 包索引(核心)
2
2
 
3
3
  > 自动生成于 2026-04-25 15:44:08
4
- > 核心包 107 个(type_count >= 10 或高价值包),完整列表(826 个)见 `manifests/packages.json`
4
+ > 核心包 107 个(type_count >= 10 或高价值包);完整列表以环境动态缓存为准(快照期统计 826 个)
5
5
 
6
6
 
7
7
  ## @cosmic/bos-core
@@ -6,6 +6,13 @@ These files are 700KB+. ALWAYS use grep/rg to search them by exact class name or
6
6
  If grep returns no results, try alternative keywords (English/Chinese) before escalating to next layer.
7
7
  MAX 3 grep attempts per SDK type lookup. If still not found → use Layer 7 (bounded answer with assumptions).
8
8
  Files in references/sdk/indexes/ are grep-only. Never read_file on index files > 100KB.
9
+
10
+ SDK existence facts are version-dependent. When the environment cache
11
+ (`~/.kd/kingscript-sdk/<envName>/`, built by `app-build/scripts/kingscript_sdk_sync.py`)
12
+ is available, `type-index.tsv` and `dts/` are the ONLY factual source;
13
+ the shipped indexes below are routing aids and offline fallback. Resolve
14
+ type → package → module from `type-index.tsv` first, prove signatures in
15
+ `dts/`, then use the shipped indexes only to find candidates.
9
16
  <!-- @/rule -->
10
17
 
11
18
  本文件用于定义 Kingscript skill 的全量 SDK 检索降级链路。
@@ -13,8 +20,7 @@ Files in references/sdk/indexes/ are grep-only. Never read_file on index files >
13
20
  ## 大文件警告
14
21
 
15
22
  - `references/sdk/indexes/class-index-full.md` 为完整类型列表,仅供 grep 检索,不建议全文加载。
16
- - `references/sdk/manifests/` 下的结构化清单文件体积可能较大,只适合按需查询,不适合整体加载。
17
- - 处理 SDK 问题时,先走 `quick-lookup.md` → `classes/` → `indexes/`,只有在索引不足时再按需读取清单文件。
23
+ - 处理 SDK 问题时,先走 `quick-lookup.md` → `classes/` → `indexes/`,索引不足时直接降级外部知识盘。
18
24
 
19
25
  ## 目标
20
26
 
@@ -25,6 +31,19 @@ Files in references/sdk/indexes/ are grep-only. Never read_file on index files >
25
31
 
26
32
  ## 标准降级链路
27
33
 
34
+ ### 第 -1 层:环境动态层(事实权威)
35
+
36
+ 优先读取(缓存可用时必经):
37
+
38
+ - `~/.kd/kingscript-sdk/<envName>/type-index.tsv`(类型 → 模块 → 包路径三要素直查)
39
+ - `~/.kd/kingscript-sdk/<envName>/dts/`(目标环境真实的 `@cosmic/*` 声明:包级导出 + 模块根聚合,含方法签名与 `@since`)
40
+
41
+ 适用场景:
42
+
43
+ - SDK 存在性、包归属、导入路径、方法签名的**事实判定**——苍穹版本不同,SDK 面不同,仓库快照只能作路由与离线回退
44
+ - 缓存缺失或过期时先跑 `app-build/scripts/kingscript_sdk_sync.py ensure`
45
+ - 缓存不可用(离线/老平台):回退第 0 层以下,并在结果中声明 snapshot-degraded
46
+
28
47
  ### 第 0 层:快速路由层(新增)
29
48
 
30
49
  优先读取:
@@ -72,25 +91,15 @@ Files in references/sdk/indexes/ are grep-only. Never read_file on index files >
72
91
  - 用户说法与 SDK 正式名称不一致
73
92
  - 还没有对应知识卡
74
93
 
75
- ### 第 3 层:清单层
76
-
77
- 如果索引不足以回答细节,再读取结构化清单:
78
-
79
- - `references/sdk/manifests/summary.json`
80
- - `references/sdk/manifests/modules.json`
81
- - `references/sdk/manifests/packages.json`
82
- - `references/sdk/manifests/const-exports.json`
83
- - `references/sdk/manifests/namespaces.json`
84
-
85
- 适用场景:
94
+ ### 第 3 层:清单层(已移除)
86
95
 
87
- - 需要全量定位
88
- - 需要确认导出名、namespace、模块归属
89
- - 需要做长尾 SDK 兜底检索
96
+ 原 `manifests/*.json` 结构化清单已随环境动态层(第 -1 层)的引入而移除:SDK 存在性、
97
+ 导出名、namespace、模块归属的事实判定一律走环境缓存 `type-index.tsv`。索引(第 2 层)
98
+ 未命中候选时直接降级第 4 层;缓存不可用(离线/老平台)时声明 snapshot-degraded。
90
99
 
91
100
  ### 第 4 层:外部挂载知识盘(可选扩展层)
92
101
 
93
- 如果仓库内知识卡、索引和清单仍不足以回答问题,而维护者本地额外挂载了 SDK 文档包或反编译知识库,可以按需进入外部知识盘。
102
+ 如果仓库内知识卡和索引仍不足以回答问题,而维护者本地额外挂载了 SDK 文档包或反编译知识库,可以按需进入外部知识盘。
94
103
 
95
104
  推荐入口:
96
105
 
@@ -172,10 +181,10 @@ Files in references/sdk/indexes/ are grep-only. Never read_file on index files >
172
181
 
173
182
  - 当前命中的类或方法
174
183
  - 来源层级
184
+ - 环境动态
175
185
  - 快速路由
176
186
  - 知识卡
177
187
  - 索引
178
- - 清单
179
188
  - 本地声明
180
189
  - 在线 Javadoc
181
190
  - 已确认事实