hap-cli 0.8.9__tar.gz → 0.8.11__tar.gz

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 (254) hide show
  1. {hap_cli-0.8.9 → hap_cli-0.8.11}/MANIFEST.in +1 -1
  2. {hap_cli-0.8.9 → hap_cli-0.8.11}/PKG-INFO +6 -6
  3. {hap_cli-0.8.9/hap_cli → hap_cli-0.8.11}/README.md +4 -4
  4. {hap_cli-0.8.9 → hap_cli-0.8.11/hap_cli}/README.md +4 -4
  5. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/README_CN.md +1 -1
  6. hap_cli-0.8.11/hap_cli/__init__.py +3 -0
  7. hap_cli-0.8.11/hap_cli/commands/app_creator_cmd.py +137 -0
  8. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/auth_cmd.py +1 -1
  9. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/chart_cmd.py +1 -1
  10. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/app.py +1 -1
  11. hap_cli-0.8.11/hap_cli/core/app_creator/_hapmeta/__init__.py +10 -0
  12. hap_cli-0.8.11/hap_cli/core/app_creator/_hapmeta/worksheet_templates.py +679 -0
  13. hap_cli-0.8.11/hap_cli/core/app_creator/charts.py +585 -0
  14. hap_cli-0.8.11/hap_cli/core/app_creator/cleanup.py +104 -0
  15. hap_cli-0.8.11/hap_cli/core/app_creator/compiler.py +313 -0
  16. hap_cli-0.8.11/hap_cli/core/app_creator/config.py +158 -0
  17. hap_cli-0.8.11/hap_cli/core/app_creator/design/design.schema.json +3756 -0
  18. hap_cli-0.8.11/hap_cli/core/app_creator/errors.py +67 -0
  19. hap_cli-0.8.11/hap_cli/core/app_creator/examples/minimal.design.json +565 -0
  20. hap_cli-0.8.11/hap_cli/core/app_creator/executor.py +191 -0
  21. hap_cli-0.8.11/hap_cli/core/app_creator/fields.py +607 -0
  22. hap_cli-0.8.11/hap_cli/core/app_creator/hap.py +160 -0
  23. hap_cli-0.8.11/hap_cli/core/app_creator/merge.py +49 -0
  24. hap_cli-0.8.11/hap_cli/core/app_creator/recording/console.py +95 -0
  25. hap_cli-0.8.11/hap_cli/core/app_creator/recording/jsonl.py +41 -0
  26. hap_cli-0.8.11/hap_cli/core/app_creator/recording/mirror.py +45 -0
  27. hap_cli-0.8.11/hap_cli/core/app_creator/recording/report.py +165 -0
  28. hap_cli-0.8.11/hap_cli/core/app_creator/schema.py +905 -0
  29. hap_cli-0.8.11/hap_cli/core/app_creator/seed/INSTRUCTIONS.md +149 -0
  30. hap_cli-0.8.11/hap_cli/core/app_creator/seed/__init__.py +21 -0
  31. hap_cli-0.8.11/hap_cli/core/app_creator/seed/cli.py +85 -0
  32. hap_cli-0.8.11/hap_cli/core/app_creator/seed/executor.py +335 -0
  33. hap_cli-0.8.11/hap_cli/core/app_creator/seed/resources/attachments.json +28 -0
  34. hap_cli-0.8.11/hap_cli/core/app_creator/seed/resources/sample.docx +0 -0
  35. hap_cli-0.8.11/hap_cli/core/app_creator/seed/resources/sample.pdf +0 -0
  36. hap_cli-0.8.11/hap_cli/core/app_creator/seed/resources/sample_images.json +522 -0
  37. hap_cli-0.8.11/hap_cli/core/app_creator/seed/template.py +194 -0
  38. hap_cli-0.8.11/hap_cli/core/app_creator/selftest.py +1733 -0
  39. hap_cli-0.8.11/hap_cli/core/app_creator/smoke.py +96 -0
  40. hap_cli-0.8.11/hap_cli/core/app_creator/steps.py +1524 -0
  41. hap_cli-0.8.11/hap_cli/core/app_creator/store.py +384 -0
  42. hap_cli-0.8.11/hap_cli/core/app_creator/validate.py +176 -0
  43. hap_cli-0.8.11/hap_cli/core/app_creator/workflow_dsl.py +799 -0
  44. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/auth.py +2 -2
  45. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/calendar_mod.py +1 -1
  46. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/chart.py +1 -1
  47. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/chat.py +1 -1
  48. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/chatbot.py +1 -1
  49. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/contact.py +1 -1
  50. hap_cli-0.8.11/hap_cli/core/control_type_codes.py +210 -0
  51. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/department.py +1 -1
  52. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/editor/__init__.py +1 -1
  53. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/editor/editspec.py +4 -4
  54. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/flow_node.py +1 -1
  55. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/group.py +1 -1
  56. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/instance.py +1 -1
  57. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/optionset.py +1 -1
  58. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/page.py +1 -1
  59. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/post.py +1 -1
  60. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/record.py +1 -1
  61. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/role.py +1 -1
  62. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/session.py +6 -6
  63. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/workflow.py +1 -1
  64. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/workflow_node_dsl.py +14 -0
  65. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/worksheet.py +1 -1
  66. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/hap_cli.py +3 -1
  67. hap_cli-0.8.11/hap_cli/tests/test_app_creator.py +119 -0
  68. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_core.py +1 -1
  69. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_full_e2e.py +1 -1
  70. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_global_meta.py +1 -1
  71. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli.egg-info/PKG-INFO +6 -6
  72. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli.egg-info/SOURCES.txt +42 -4
  73. hap_cli-0.8.11/live_tests/__init__.py +16 -0
  74. hap_cli-0.8.11/live_tests/recording/__init__.py +4 -0
  75. {hap_cli-0.8.9 → hap_cli-0.8.11}/setup.py +7 -2
  76. hap_cli-0.8.9/hap_cli/__init__.py +0 -3
  77. {hap_cli-0.8.9 → hap_cli-0.8.11}/app_live_tests/__init__.py +0 -0
  78. {hap_cli-0.8.9 → hap_cli-0.8.11}/app_live_tests/__main__.py +0 -0
  79. {hap_cli-0.8.9 → hap_cli-0.8.11}/app_live_tests/config.py +0 -0
  80. {hap_cli-0.8.9 → hap_cli-0.8.11}/app_live_tests/harness.py +0 -0
  81. {hap_cli-0.8.9 → hap_cli-0.8.11}/app_live_tests/smoke.py +0 -0
  82. {hap_cli-0.8.9 → hap_cli-0.8.11}/app_live_tests/state.py +0 -0
  83. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/__main__.py +0 -0
  84. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/__init__.py +0 -0
  85. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/app_cmd.py +0 -0
  86. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/app_editor_cmd.py +0 -0
  87. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/calendar_cmd.py +0 -0
  88. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/chat_cmd.py +0 -0
  89. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/chatbot_cmd.py +0 -0
  90. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/config_cmd.py +0 -0
  91. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/contact_cmd.py +0 -0
  92. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/department_cmd.py +0 -0
  93. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/group_cmd.py +0 -0
  94. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/icon_cmd.py +0 -0
  95. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/instance_cmd.py +0 -0
  96. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/node_cmd.py +0 -0
  97. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/optionset_cmd.py +0 -0
  98. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/page_cmd.py +0 -0
  99. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/post_cmd.py +0 -0
  100. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/record_cmd.py +0 -0
  101. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/region_cmd.py +0 -0
  102. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/role_cmd.py +0 -0
  103. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/update_cmd.py +0 -0
  104. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/upload_cmd.py +0 -0
  105. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/v3_registry.py +0 -0
  106. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/workflow_cmd.py +0 -0
  107. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/commands/worksheet_cmd.py +0 -0
  108. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/context.py +0 -0
  109. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/__init__.py +0 -0
  110. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/action_spec_adapter.py +0 -0
  111. {hap_cli-0.8.9/live_tests → hap_cli-0.8.11/hap_cli/core/app_creator}/__init__.py +0 -0
  112. {hap_cli-0.8.9/hap_cli/core → hap_cli-0.8.11/hap_cli/core/app_creator/_hapmeta}/control_type_codes.py +0 -0
  113. {hap_cli-0.8.9/live_tests → hap_cli-0.8.11/hap_cli/core/app_creator}/recording/__init__.py +0 -0
  114. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/cli_access.py +0 -0
  115. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/editor/_hapmeta/__init__.py +0 -0
  116. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/editor/_hapmeta/control_type_codes.py +0 -0
  117. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/editor/apply.py +0 -0
  118. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/editor/componentlower.py +0 -0
  119. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/editor/errors.py +0 -0
  120. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/editor/fieldlower.py +0 -0
  121. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/editor/jsonschema_mini.py +0 -0
  122. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/editor/models.py +0 -0
  123. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/editor/ops.py +0 -0
  124. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/editor/planner.py +0 -0
  125. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/editor/reader.py +0 -0
  126. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/field_normalizer.py +0 -0
  127. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/field_spec_adapter.py +0 -0
  128. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/filter_translator.py +0 -0
  129. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/global_meta.py +0 -0
  130. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/icon_index.py +0 -0
  131. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/logger.py +0 -0
  132. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/response_crypto.py +0 -0
  133. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/role_perm_builder.py +0 -0
  134. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/token_crypto.py +0 -0
  135. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/update.py +0 -0
  136. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/upload.py +0 -0
  137. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/v3/__init__.py +0 -0
  138. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/v3/dispatcher.py +0 -0
  139. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/v3/render.py +0 -0
  140. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/v3/schema.py +0 -0
  141. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/view_spec_adapter.py +0 -0
  142. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/core/worksheet_templates.py +0 -0
  143. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/i18n.py +0 -0
  144. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/locale/__init__.py +0 -0
  145. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/locale/messages.json +0 -0
  146. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/locale/messages.schema.json +0 -0
  147. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/__init__.py +0 -0
  148. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/conftest.py +0 -0
  149. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_app_editor.py +0 -0
  150. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_app_export_usage.py +0 -0
  151. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_auth_prerelease.py +0 -0
  152. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_bug_036430.py +0 -0
  153. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_chart.py +0 -0
  154. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_cli_access.py +0 -0
  155. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_config_cmd.py +0 -0
  156. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_destructive_confirm_cli.py +0 -0
  157. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_i18n.py +0 -0
  158. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_instance_history_cli.py +0 -0
  159. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_integration.py +0 -0
  160. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_integration_approval.py +0 -0
  161. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_integration_approval_actions.py +0 -0
  162. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_integration_calendar.py +0 -0
  163. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_integration_destructive.py +0 -0
  164. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_integration_misc.py +0 -0
  165. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_integration_post.py +0 -0
  166. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_integration_social.py +0 -0
  167. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_integration_v3.py +0 -0
  168. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_integration_workflow.py +0 -0
  169. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_integration_worksheet_extra.py +0 -0
  170. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_multi_profile.py +0 -0
  171. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_org_approval_v3_semantic_cli.py +0 -0
  172. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_org_id_cli.py +0 -0
  173. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_org_id_docs.py +0 -0
  174. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_parameter_conventions.py +0 -0
  175. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_parameter_mapping_registry.py +0 -0
  176. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_record_batch_v3_semantic_cli.py +0 -0
  177. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_record_field_alias.py +0 -0
  178. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_record_v3_semantic_cli.py +0 -0
  179. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_semantic_types_registry.py +0 -0
  180. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_update.py +0 -0
  181. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_v3_api_schema_loader.py +0 -0
  182. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_v3_dispatcher.py +0 -0
  183. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_v3_registry_coverage.py +0 -0
  184. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_v3_session.py +0 -0
  185. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_v3_yaml_translation.py +0 -0
  186. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_workflow_list_cli.py +0 -0
  187. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_workflow_v3_semantic_cli.py +0 -0
  188. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_worksheet_crud_cli.py +0 -0
  189. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/tests/test_worksheet_v3_semantic_cli.py +0 -0
  190. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/utils/__init__.py +0 -0
  191. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/utils/formatting.py +0 -0
  192. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/utils/options.py +0 -0
  193. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli/utils/parameter_mapping.py +0 -0
  194. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli.egg-info/dependency_links.txt +0 -0
  195. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli.egg-info/entry_points.txt +0 -0
  196. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli.egg-info/requires.txt +0 -0
  197. {hap_cli-0.8.9 → hap_cli-0.8.11}/hap_cli.egg-info/top_level.txt +0 -0
  198. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/__main__.py +0 -0
  199. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/_wftest.py +0 -0
  200. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/charts.py +0 -0
  201. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/cleanup.py +0 -0
  202. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/compiler.py +0 -0
  203. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/config.py +0 -0
  204. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/errors.py +0 -0
  205. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/executor.py +0 -0
  206. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/fields.py +0 -0
  207. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/hap.py +0 -0
  208. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/recording/console.py +0 -0
  209. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/recording/jsonl.py +0 -0
  210. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/recording/mirror.py +0 -0
  211. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/recording/report.py +0 -0
  212. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/schema.py +0 -0
  213. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/seed/__init__.py +0 -0
  214. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/seed/cli.py +0 -0
  215. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/seed/executor.py +0 -0
  216. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/seed/template.py +0 -0
  217. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/selftest.py +0 -0
  218. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/smoke.py +0 -0
  219. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/step.py +0 -0
  220. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/steps.py +0 -0
  221. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/store.py +0 -0
  222. {hap_cli-0.8.9 → hap_cli-0.8.11}/live_tests/workflow_dsl.py +0 -0
  223. {hap_cli-0.8.9 → hap_cli-0.8.11}/setup.cfg +0 -0
  224. {hap_cli-0.8.9/skills → hap_cli-0.8.11/skills/cli}/hap-cli-app-editor/scripts/editspec/component.schema.json +0 -0
  225. {hap_cli-0.8.9/skills → hap_cli-0.8.11/skills/cli}/hap-cli-app-editor/scripts/editspec/custom-action.schema.json +0 -0
  226. {hap_cli-0.8.9/skills → hap_cli-0.8.11/skills/cli}/hap-cli-app-editor/scripts/editspec/envelope.schema.json +0 -0
  227. {hap_cli-0.8.9/skills → hap_cli-0.8.11/skills/cli}/hap-cli-app-editor/scripts/editspec/field.schema.json +0 -0
  228. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/INDEX.json +0 -0
  229. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/add_member_to_role.yaml +0 -0
  230. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/batch_delete_records.yaml +0 -0
  231. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/create_optionset.yaml +0 -0
  232. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/create_role.yaml +0 -0
  233. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/delete_optionset.yaml +0 -0
  234. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/delete_record.yaml +0 -0
  235. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/delete_role.yaml +0 -0
  236. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/delete_worksheet.yaml +0 -0
  237. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/get_app_info.yaml +0 -0
  238. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/get_app_knowledge_list.yaml +0 -0
  239. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/get_app_worksheets_list.yaml +0 -0
  240. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/get_optionset_list.yaml +0 -0
  241. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/get_record_details.yaml +0 -0
  242. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/get_record_discussions.yaml +0 -0
  243. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/get_record_list.yaml +0 -0
  244. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/get_record_logs.yaml +0 -0
  245. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/get_record_pivot_data.yaml +0 -0
  246. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/get_record_relations.yaml +0 -0
  247. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/get_record_share_link.yaml +0 -0
  248. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/get_regions.yaml +0 -0
  249. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/get_role_details.yaml +0 -0
  250. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/get_role_list.yaml +0 -0
  251. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/knowledge_search.yaml +0 -0
  252. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/leave_all_roles.yaml +0 -0
  253. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/remove_member_from_role.yaml +0 -0
  254. {hap_cli-0.8.9 → hap_cli-0.8.11}/sources/v3-api-schema/update_optionset.yaml +0 -0
@@ -15,4 +15,4 @@ recursive-include hap_cli/locale *.json
15
15
  # edit-spec schemas are canonical in the hap-cli-app-editor skill; ship them
16
16
  # in the sdist so setup.py's build step can mirror them into
17
17
  # hap_cli/core/editor/editspec/ for the ``hap app-editor`` runtime loader.
18
- recursive-include skills/hap-cli-app-editor/scripts/editspec *.json
18
+ recursive-include skills/cli/hap-cli-app-editor/scripts/editspec *.json
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hap-cli
3
- Version: 0.8.9
4
- Summary: CLI harness for MingDAO HAP - Enterprise no-code platform
3
+ Version: 0.8.11
4
+ Summary: CLI harness for Mingdao HAP - Enterprise no-code platform
5
5
  Author: hap-cli
6
6
  License: Apache-2.0
7
7
  Classifier: Development Status :: 3 - Alpha
@@ -29,7 +29,7 @@ Dynamic: summary
29
29
 
30
30
  # hap-cli
31
31
 
32
- CLI harness for **MingDAO HAP** (明道云) — an enterprise no-code platform.
32
+ CLI harness for **Mingdao HAP** (明道云) — an enterprise no-code platform.
33
33
 
34
34
  ## Installation
35
35
 
@@ -54,7 +54,7 @@ each organization's status (`CLI:on/off`).
54
54
  ### 1. Login
55
55
 
56
56
  ```bash
57
- # MingDAO SaaS (default)
57
+ # Mingdao SaaS (default)
58
58
  hap auth login
59
59
 
60
60
  # Specific environment
@@ -66,7 +66,7 @@ hap auth login https://hap.example.com # self-hosted
66
66
  hap auth login https://your-server.com --token YOUR_TOKEN
67
67
  ```
68
68
 
69
- The browser flow opens the MingDAO login page and captures the token. If the
69
+ The browser flow opens the Mingdao login page and captures the token. If the
70
70
  callback can't reach the CLI (no GUI, restricted network), interrupt the
71
71
  command — it falls back to a paste prompt for the token shown on the success
72
72
  page.
@@ -78,7 +78,7 @@ hap auth logout # log out the current account
78
78
 
79
79
  #### Multiple environments / accounts
80
80
 
81
- You can stay logged in to several environments (MingDAO SaaS, Nocoly, self-hosted) and
81
+ You can stay logged in to several environments (Mingdao SaaS, Nocoly, self-hosted) and
82
82
  several accounts at once. Each is saved under a name and you switch between them:
83
83
 
84
84
  ```bash
@@ -1,6 +1,6 @@
1
1
  # hap-cli
2
2
 
3
- CLI harness for **MingDAO HAP** (明道云) — an enterprise no-code platform.
3
+ CLI harness for **Mingdao HAP** (明道云) — an enterprise no-code platform.
4
4
 
5
5
  ## Installation
6
6
 
@@ -25,7 +25,7 @@ each organization's status (`CLI:on/off`).
25
25
  ### 1. Login
26
26
 
27
27
  ```bash
28
- # MingDAO SaaS (default)
28
+ # Mingdao SaaS (default)
29
29
  hap auth login
30
30
 
31
31
  # Specific environment
@@ -37,7 +37,7 @@ hap auth login https://hap.example.com # self-hosted
37
37
  hap auth login https://your-server.com --token YOUR_TOKEN
38
38
  ```
39
39
 
40
- The browser flow opens the MingDAO login page and captures the token. If the
40
+ The browser flow opens the Mingdao login page and captures the token. If the
41
41
  callback can't reach the CLI (no GUI, restricted network), interrupt the
42
42
  command — it falls back to a paste prompt for the token shown on the success
43
43
  page.
@@ -49,7 +49,7 @@ hap auth logout # log out the current account
49
49
 
50
50
  #### Multiple environments / accounts
51
51
 
52
- You can stay logged in to several environments (MingDAO SaaS, Nocoly, self-hosted) and
52
+ You can stay logged in to several environments (Mingdao SaaS, Nocoly, self-hosted) and
53
53
  several accounts at once. Each is saved under a name and you switch between them:
54
54
 
55
55
  ```bash
@@ -1,6 +1,6 @@
1
1
  # hap-cli
2
2
 
3
- CLI harness for **MingDAO HAP** (明道云) — an enterprise no-code platform.
3
+ CLI harness for **Mingdao HAP** (明道云) — an enterprise no-code platform.
4
4
 
5
5
  ## Installation
6
6
 
@@ -25,7 +25,7 @@ each organization's status (`CLI:on/off`).
25
25
  ### 1. Login
26
26
 
27
27
  ```bash
28
- # MingDAO SaaS (default)
28
+ # Mingdao SaaS (default)
29
29
  hap auth login
30
30
 
31
31
  # Specific environment
@@ -37,7 +37,7 @@ hap auth login https://hap.example.com # self-hosted
37
37
  hap auth login https://your-server.com --token YOUR_TOKEN
38
38
  ```
39
39
 
40
- The browser flow opens the MingDAO login page and captures the token. If the
40
+ The browser flow opens the Mingdao login page and captures the token. If the
41
41
  callback can't reach the CLI (no GUI, restricted network), interrupt the
42
42
  command — it falls back to a paste prompt for the token shown on the success
43
43
  page.
@@ -49,7 +49,7 @@ hap auth logout # log out the current account
49
49
 
50
50
  #### Multiple environments / accounts
51
51
 
52
- You can stay logged in to several environments (MingDAO SaaS, Nocoly, self-hosted) and
52
+ You can stay logged in to several environments (Mingdao SaaS, Nocoly, self-hosted) and
53
53
  several accounts at once. Each is saved under a name and you switch between them:
54
54
 
55
55
  ```bash
@@ -40,7 +40,7 @@ hap auth logout # 登出当前账号
40
40
 
41
41
  #### 多环境 / 多账号
42
42
 
43
- 可同时授权多个环境(MingDAO SaaS、Nocoly、私有部署)与多个账号,各存成一个具名档案,长期共存、随时切换:
43
+ 可同时授权多个环境(Mingdao SaaS、Nocoly、私有部署)与多个账号,各存成一个具名档案,长期共存、随时切换:
44
44
 
45
45
  ```bash
46
46
  hap auth login mingdao --profile work-prod # 登录并起名保存
@@ -0,0 +1,3 @@
1
+ """CLI harness for Mingdao HAP (hap-cli)."""
2
+
3
+ __version__ = "0.8.11"
@@ -0,0 +1,137 @@
1
+ """CLI commands for building a whole HAP app from a design document
2
+ (``hap app-creator``).
3
+
4
+ Thin Click layer over the app-creator engine in
5
+ ``hap_cli.core.app_creator``: validate a design locally, build the whole
6
+ app end-to-end, merge split design parts, and seed sample data. The engine
7
+ is an ID-free, logical-name design compiler — it turns one design document
8
+ into a real app (worksheets, views, roles, workflows, pages, AI assistants)
9
+ and captures every created id beside the design file.
10
+
11
+ Each subcommand is a thin wrapper: it reconstructs the argument list the
12
+ engine entry point expects and delegates, propagating the engine's exit
13
+ code. The engine streams its own progress and writes a run report next to
14
+ the design document; that rich console output IS the command's output, so
15
+ these commands are human-oriented and do not reshape their result for
16
+ ``--json`` mode. (Every call the engine makes back into the ``hap`` CLI is
17
+ its own isolated ``--json`` invocation — see ``core/app_creator/hap.py``.)
18
+ """
19
+ import click
20
+
21
+ from hap_cli.core.app_creator import cleanup as cleanup_mod
22
+ from hap_cli.core.app_creator import merge as merge_mod
23
+ from hap_cli.core.app_creator import smoke as build_mod
24
+ from hap_cli.core.app_creator import validate as validate_mod
25
+ from hap_cli.core.app_creator.seed import cli as seed_cli
26
+
27
+
28
+ @click.group("app-creator", help="Build a complete HAP app from a design "
29
+ "document — validate, build, and seed.")
30
+ def app_creator():
31
+ pass
32
+
33
+
34
+ @app_creator.command("validate")
35
+ @click.argument("designs", nargs=-1, required=True,
36
+ type=click.Path(exists=True, dir_okay=False))
37
+ def app_creator_validate(designs):
38
+ """Validate one or more design documents locally before building.
39
+
40
+ Checks structure (required fields, enums, types, relation display
41
+ modes) and confirms every icon is a real catalogue icon. Multiple
42
+ files are merged into one document first, so cross-file references by
43
+ logical name are checked too. No app is created.
44
+ """
45
+ raise SystemExit(validate_mod.main(list(designs)))
46
+
47
+
48
+ @app_creator.command("build")
49
+ @click.argument("designs", nargs=-1, required=True,
50
+ type=click.Path(exists=True, dir_okay=False))
51
+ def app_creator_build(designs):
52
+ """Build a whole app end-to-end from one or more design documents.
53
+
54
+ Runs once, start to finish: multiple files are merged first, then the
55
+ app and all its elements are created against your current organization.
56
+ A step that fails mid-run is recorded and the build keeps going; the
57
+ created app is kept. Prints the new app id and writes a run report next
58
+ to the design document.
59
+ """
60
+ raise SystemExit(build_mod.main(list(designs)))
61
+
62
+
63
+ @app_creator.command("merge")
64
+ @click.argument("parts", nargs=-1, required=True,
65
+ type=click.Path(exists=True, dir_okay=False))
66
+ @click.option("--out", "out", required=True,
67
+ type=click.Path(dir_okay=False),
68
+ help="Path to write the merged design document.")
69
+ def app_creator_merge(parts, out):
70
+ """Merge several design parts into one combined design document.
71
+
72
+ Validates the combined document as a whole before writing it. Use this
73
+ when you want the merged file saved to disk; build and validate already
74
+ accept multiple parts directly.
75
+ """
76
+ raise SystemExit(merge_mod.main([*parts, "--out", out]))
77
+
78
+
79
+ @app_creator.command("seed-template")
80
+ @click.argument("app_id")
81
+ @click.option("--out", "out", type=click.Path(dir_okay=False),
82
+ help="Output path for the fill template "
83
+ "(default: the app's design folder).")
84
+ def app_creator_seed_template(app_id, out):
85
+ """Emit a sample-data fill template for a built app.
86
+
87
+ Reads the app's live worksheet structure and writes a template listing
88
+ every writable field per worksheet — author your sample data against it,
89
+ then load it with ``seed``.
90
+ """
91
+ argv = [app_id]
92
+ if out:
93
+ argv += ["--out", out]
94
+ raise SystemExit(seed_cli.template_main(argv))
95
+
96
+
97
+ @app_creator.command("seed")
98
+ @click.argument("app_id")
99
+ @click.argument("data_file", required=False,
100
+ type=click.Path(exists=True, dir_okay=False))
101
+ @click.option("--trigger-workflow", is_flag=True, default=False,
102
+ help="Fire workflows on each created record (off by default).")
103
+ def app_creator_seed(app_id, data_file, trigger_workflow):
104
+ """Load authored sample data into a built app.
105
+
106
+ Writes records worksheet by worksheet in dependency order, resolves
107
+ cross-record references, and records the created row ids. Defaults to
108
+ the sample-data file in the app's design folder.
109
+ """
110
+ argv = [app_id]
111
+ if data_file:
112
+ argv.append(data_file)
113
+ if trigger_workflow:
114
+ argv.append("--trigger-workflow")
115
+ raise SystemExit(seed_cli.seed_main(argv))
116
+
117
+
118
+ @app_creator.command("cleanup")
119
+ @click.argument("app_id")
120
+ @click.option("--destroy", is_flag=True, default=False,
121
+ help="Also delete the local design files (full removal); "
122
+ "by default they are kept.")
123
+ @click.option("--yes", "-y", is_flag=True, default=False,
124
+ help="Skip the confirmation prompt.")
125
+ def app_creator_cleanup(app_id, destroy, yes):
126
+ """Delete a built app and archive its captured artifacts.
127
+
128
+ Deletes the app from your organization. By default the local design
129
+ files are kept (only generated artifacts are archived) so the app can
130
+ be rebuilt later; pass ``--destroy`` to remove the design folder too.
131
+ """
132
+ argv = [app_id]
133
+ if destroy:
134
+ argv.append("--destroy")
135
+ if yes:
136
+ argv.append("--yes")
137
+ raise SystemExit(cleanup_mod.main(argv))
@@ -378,7 +378,7 @@ def auth_whoami(ctx):
378
378
  # Read login_url from the active (or --profile) credential profile —
379
379
  # the in-memory Session may have been mutated, and we want whoami to
380
380
  # probe the server recorded for the profile in use. When the profile
381
- # has no URL, fall back to the MingDAO SaaS host. Token failures
381
+ # has no URL, fall back to the Mingdao SaaS host. Token failures
382
382
  # (missing / expired) surface uniformly via AuthenticationError
383
383
  # → "Not logged in" hint from handle_error.
384
384
  profile_name = resolve_profile_name(ctx.profile)
@@ -21,7 +21,7 @@ def chart():
21
21
  pass
22
22
 
23
23
 
24
- # Report-type enum values used by the MingDAO statistics module. The CLI
24
+ # Report-type enum values used by the Mingdao statistics module. The CLI
25
25
  # accepts the integer directly so users can pass uncommon types without us
26
26
  # having to enumerate every one. Note: there is NO type 4 — passing 4 is
27
27
  # coerced to 10 (number) by the server, so it is omitted here (bug #036584).
@@ -1,4 +1,4 @@
1
- """Application management module for MingDAO HAP."""
1
+ """Application management module for Mingdao HAP."""
2
2
 
3
3
  from datetime import datetime, timedelta
4
4
  from typing import Any, Optional
@@ -0,0 +1,10 @@
1
+ """Vendored, stdlib-only copies of the two hap_cli helpers the build
2
+ pipeline needs to construct field-control wire payloads locally.
3
+
4
+ The published skill must NOT depend on the ``hap_cli`` Python package being
5
+ importable — it may only shell out to the ``hap`` binary and run its own
6
+ bundled files. These modules are byte-faithful copies of
7
+ ``hap_cli/core/control_type_codes.py`` and
8
+ ``hap_cli/core/worksheet_templates.py`` with their one cross-module import
9
+ made relative. Keep them in sync if the upstream wire format changes.
10
+ """