hap-cli 0.8.9__tar.gz → 0.8.10__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 (253) hide show
  1. {hap_cli-0.8.9 → hap_cli-0.8.10}/MANIFEST.in +1 -1
  2. {hap_cli-0.8.9 → hap_cli-0.8.10}/PKG-INFO +1 -1
  3. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/__init__.py +1 -1
  4. hap_cli-0.8.10/hap_cli/commands/app_creator_cmd.py +137 -0
  5. hap_cli-0.8.10/hap_cli/core/app_creator/_hapmeta/__init__.py +10 -0
  6. hap_cli-0.8.10/hap_cli/core/app_creator/_hapmeta/worksheet_templates.py +679 -0
  7. hap_cli-0.8.10/hap_cli/core/app_creator/charts.py +585 -0
  8. hap_cli-0.8.10/hap_cli/core/app_creator/cleanup.py +104 -0
  9. hap_cli-0.8.10/hap_cli/core/app_creator/compiler.py +313 -0
  10. hap_cli-0.8.10/hap_cli/core/app_creator/config.py +158 -0
  11. hap_cli-0.8.10/hap_cli/core/app_creator/design/design.schema.json +3756 -0
  12. hap_cli-0.8.10/hap_cli/core/app_creator/errors.py +67 -0
  13. hap_cli-0.8.10/hap_cli/core/app_creator/examples/minimal.design.json +565 -0
  14. hap_cli-0.8.10/hap_cli/core/app_creator/executor.py +191 -0
  15. hap_cli-0.8.10/hap_cli/core/app_creator/fields.py +607 -0
  16. hap_cli-0.8.10/hap_cli/core/app_creator/hap.py +160 -0
  17. hap_cli-0.8.10/hap_cli/core/app_creator/merge.py +49 -0
  18. hap_cli-0.8.10/hap_cli/core/app_creator/recording/console.py +95 -0
  19. hap_cli-0.8.10/hap_cli/core/app_creator/recording/jsonl.py +41 -0
  20. hap_cli-0.8.10/hap_cli/core/app_creator/recording/mirror.py +45 -0
  21. hap_cli-0.8.10/hap_cli/core/app_creator/recording/report.py +165 -0
  22. hap_cli-0.8.10/hap_cli/core/app_creator/schema.py +905 -0
  23. hap_cli-0.8.10/hap_cli/core/app_creator/seed/INSTRUCTIONS.md +149 -0
  24. hap_cli-0.8.10/hap_cli/core/app_creator/seed/__init__.py +21 -0
  25. hap_cli-0.8.10/hap_cli/core/app_creator/seed/cli.py +85 -0
  26. hap_cli-0.8.10/hap_cli/core/app_creator/seed/executor.py +335 -0
  27. hap_cli-0.8.10/hap_cli/core/app_creator/seed/resources/attachments.json +28 -0
  28. hap_cli-0.8.10/hap_cli/core/app_creator/seed/resources/sample.docx +0 -0
  29. hap_cli-0.8.10/hap_cli/core/app_creator/seed/resources/sample.pdf +0 -0
  30. hap_cli-0.8.10/hap_cli/core/app_creator/seed/resources/sample_images.json +522 -0
  31. hap_cli-0.8.10/hap_cli/core/app_creator/seed/template.py +194 -0
  32. hap_cli-0.8.10/hap_cli/core/app_creator/selftest.py +1677 -0
  33. hap_cli-0.8.10/hap_cli/core/app_creator/smoke.py +96 -0
  34. hap_cli-0.8.10/hap_cli/core/app_creator/steps.py +1524 -0
  35. hap_cli-0.8.10/hap_cli/core/app_creator/store.py +384 -0
  36. hap_cli-0.8.10/hap_cli/core/app_creator/validate.py +130 -0
  37. hap_cli-0.8.10/hap_cli/core/app_creator/workflow_dsl.py +799 -0
  38. hap_cli-0.8.10/hap_cli/core/control_type_codes.py +210 -0
  39. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/editor/__init__.py +1 -1
  40. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/editor/editspec.py +4 -4
  41. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/workflow_node_dsl.py +14 -0
  42. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/hap_cli.py +2 -0
  43. hap_cli-0.8.10/hap_cli/tests/test_app_creator.py +119 -0
  44. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli.egg-info/PKG-INFO +1 -1
  45. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli.egg-info/SOURCES.txt +42 -4
  46. hap_cli-0.8.10/live_tests/__init__.py +16 -0
  47. hap_cli-0.8.10/live_tests/recording/__init__.py +4 -0
  48. {hap_cli-0.8.9 → hap_cli-0.8.10}/setup.py +6 -1
  49. {hap_cli-0.8.9 → hap_cli-0.8.10}/README.md +0 -0
  50. {hap_cli-0.8.9 → hap_cli-0.8.10}/app_live_tests/__init__.py +0 -0
  51. {hap_cli-0.8.9 → hap_cli-0.8.10}/app_live_tests/__main__.py +0 -0
  52. {hap_cli-0.8.9 → hap_cli-0.8.10}/app_live_tests/config.py +0 -0
  53. {hap_cli-0.8.9 → hap_cli-0.8.10}/app_live_tests/harness.py +0 -0
  54. {hap_cli-0.8.9 → hap_cli-0.8.10}/app_live_tests/smoke.py +0 -0
  55. {hap_cli-0.8.9 → hap_cli-0.8.10}/app_live_tests/state.py +0 -0
  56. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/README.md +0 -0
  57. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/README_CN.md +0 -0
  58. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/__main__.py +0 -0
  59. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/__init__.py +0 -0
  60. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/app_cmd.py +0 -0
  61. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/app_editor_cmd.py +0 -0
  62. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/auth_cmd.py +0 -0
  63. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/calendar_cmd.py +0 -0
  64. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/chart_cmd.py +0 -0
  65. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/chat_cmd.py +0 -0
  66. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/chatbot_cmd.py +0 -0
  67. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/config_cmd.py +0 -0
  68. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/contact_cmd.py +0 -0
  69. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/department_cmd.py +0 -0
  70. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/group_cmd.py +0 -0
  71. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/icon_cmd.py +0 -0
  72. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/instance_cmd.py +0 -0
  73. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/node_cmd.py +0 -0
  74. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/optionset_cmd.py +0 -0
  75. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/page_cmd.py +0 -0
  76. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/post_cmd.py +0 -0
  77. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/record_cmd.py +0 -0
  78. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/region_cmd.py +0 -0
  79. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/role_cmd.py +0 -0
  80. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/update_cmd.py +0 -0
  81. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/upload_cmd.py +0 -0
  82. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/v3_registry.py +0 -0
  83. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/workflow_cmd.py +0 -0
  84. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/commands/worksheet_cmd.py +0 -0
  85. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/context.py +0 -0
  86. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/__init__.py +0 -0
  87. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/action_spec_adapter.py +0 -0
  88. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/app.py +0 -0
  89. {hap_cli-0.8.9/live_tests → hap_cli-0.8.10/hap_cli/core/app_creator}/__init__.py +0 -0
  90. {hap_cli-0.8.9/hap_cli/core → hap_cli-0.8.10/hap_cli/core/app_creator/_hapmeta}/control_type_codes.py +0 -0
  91. {hap_cli-0.8.9/live_tests → hap_cli-0.8.10/hap_cli/core/app_creator}/recording/__init__.py +0 -0
  92. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/auth.py +0 -0
  93. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/calendar_mod.py +0 -0
  94. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/chart.py +0 -0
  95. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/chat.py +0 -0
  96. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/chatbot.py +0 -0
  97. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/cli_access.py +0 -0
  98. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/contact.py +0 -0
  99. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/department.py +0 -0
  100. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/editor/_hapmeta/__init__.py +0 -0
  101. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/editor/_hapmeta/control_type_codes.py +0 -0
  102. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/editor/apply.py +0 -0
  103. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/editor/componentlower.py +0 -0
  104. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/editor/errors.py +0 -0
  105. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/editor/fieldlower.py +0 -0
  106. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/editor/jsonschema_mini.py +0 -0
  107. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/editor/models.py +0 -0
  108. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/editor/ops.py +0 -0
  109. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/editor/planner.py +0 -0
  110. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/editor/reader.py +0 -0
  111. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/field_normalizer.py +0 -0
  112. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/field_spec_adapter.py +0 -0
  113. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/filter_translator.py +0 -0
  114. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/flow_node.py +0 -0
  115. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/global_meta.py +0 -0
  116. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/group.py +0 -0
  117. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/icon_index.py +0 -0
  118. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/instance.py +0 -0
  119. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/logger.py +0 -0
  120. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/optionset.py +0 -0
  121. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/page.py +0 -0
  122. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/post.py +0 -0
  123. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/record.py +0 -0
  124. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/response_crypto.py +0 -0
  125. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/role.py +0 -0
  126. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/role_perm_builder.py +0 -0
  127. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/session.py +0 -0
  128. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/token_crypto.py +0 -0
  129. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/update.py +0 -0
  130. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/upload.py +0 -0
  131. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/v3/__init__.py +0 -0
  132. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/v3/dispatcher.py +0 -0
  133. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/v3/render.py +0 -0
  134. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/v3/schema.py +0 -0
  135. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/view_spec_adapter.py +0 -0
  136. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/workflow.py +0 -0
  137. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/worksheet.py +0 -0
  138. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/core/worksheet_templates.py +0 -0
  139. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/i18n.py +0 -0
  140. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/locale/__init__.py +0 -0
  141. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/locale/messages.json +0 -0
  142. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/locale/messages.schema.json +0 -0
  143. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/__init__.py +0 -0
  144. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/conftest.py +0 -0
  145. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_app_editor.py +0 -0
  146. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_app_export_usage.py +0 -0
  147. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_auth_prerelease.py +0 -0
  148. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_bug_036430.py +0 -0
  149. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_chart.py +0 -0
  150. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_cli_access.py +0 -0
  151. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_config_cmd.py +0 -0
  152. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_core.py +0 -0
  153. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_destructive_confirm_cli.py +0 -0
  154. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_full_e2e.py +0 -0
  155. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_global_meta.py +0 -0
  156. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_i18n.py +0 -0
  157. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_instance_history_cli.py +0 -0
  158. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_integration.py +0 -0
  159. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_integration_approval.py +0 -0
  160. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_integration_approval_actions.py +0 -0
  161. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_integration_calendar.py +0 -0
  162. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_integration_destructive.py +0 -0
  163. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_integration_misc.py +0 -0
  164. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_integration_post.py +0 -0
  165. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_integration_social.py +0 -0
  166. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_integration_v3.py +0 -0
  167. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_integration_workflow.py +0 -0
  168. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_integration_worksheet_extra.py +0 -0
  169. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_multi_profile.py +0 -0
  170. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_org_approval_v3_semantic_cli.py +0 -0
  171. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_org_id_cli.py +0 -0
  172. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_org_id_docs.py +0 -0
  173. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_parameter_conventions.py +0 -0
  174. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_parameter_mapping_registry.py +0 -0
  175. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_record_batch_v3_semantic_cli.py +0 -0
  176. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_record_field_alias.py +0 -0
  177. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_record_v3_semantic_cli.py +0 -0
  178. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_semantic_types_registry.py +0 -0
  179. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_update.py +0 -0
  180. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_v3_api_schema_loader.py +0 -0
  181. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_v3_dispatcher.py +0 -0
  182. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_v3_registry_coverage.py +0 -0
  183. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_v3_session.py +0 -0
  184. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_v3_yaml_translation.py +0 -0
  185. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_workflow_list_cli.py +0 -0
  186. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_workflow_v3_semantic_cli.py +0 -0
  187. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_worksheet_crud_cli.py +0 -0
  188. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/tests/test_worksheet_v3_semantic_cli.py +0 -0
  189. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/utils/__init__.py +0 -0
  190. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/utils/formatting.py +0 -0
  191. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/utils/options.py +0 -0
  192. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli/utils/parameter_mapping.py +0 -0
  193. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli.egg-info/dependency_links.txt +0 -0
  194. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli.egg-info/entry_points.txt +0 -0
  195. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli.egg-info/requires.txt +0 -0
  196. {hap_cli-0.8.9 → hap_cli-0.8.10}/hap_cli.egg-info/top_level.txt +0 -0
  197. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/__main__.py +0 -0
  198. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/_wftest.py +0 -0
  199. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/charts.py +0 -0
  200. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/cleanup.py +0 -0
  201. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/compiler.py +0 -0
  202. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/config.py +0 -0
  203. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/errors.py +0 -0
  204. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/executor.py +0 -0
  205. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/fields.py +0 -0
  206. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/hap.py +0 -0
  207. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/recording/console.py +0 -0
  208. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/recording/jsonl.py +0 -0
  209. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/recording/mirror.py +0 -0
  210. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/recording/report.py +0 -0
  211. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/schema.py +0 -0
  212. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/seed/__init__.py +0 -0
  213. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/seed/cli.py +0 -0
  214. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/seed/executor.py +0 -0
  215. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/seed/template.py +0 -0
  216. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/selftest.py +0 -0
  217. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/smoke.py +0 -0
  218. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/step.py +0 -0
  219. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/steps.py +0 -0
  220. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/store.py +0 -0
  221. {hap_cli-0.8.9 → hap_cli-0.8.10}/live_tests/workflow_dsl.py +0 -0
  222. {hap_cli-0.8.9 → hap_cli-0.8.10}/setup.cfg +0 -0
  223. {hap_cli-0.8.9/skills → hap_cli-0.8.10/skills/cli}/hap-cli-app-editor/scripts/editspec/component.schema.json +0 -0
  224. {hap_cli-0.8.9/skills → hap_cli-0.8.10/skills/cli}/hap-cli-app-editor/scripts/editspec/custom-action.schema.json +0 -0
  225. {hap_cli-0.8.9/skills → hap_cli-0.8.10/skills/cli}/hap-cli-app-editor/scripts/editspec/envelope.schema.json +0 -0
  226. {hap_cli-0.8.9/skills → hap_cli-0.8.10/skills/cli}/hap-cli-app-editor/scripts/editspec/field.schema.json +0 -0
  227. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/INDEX.json +0 -0
  228. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/add_member_to_role.yaml +0 -0
  229. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/batch_delete_records.yaml +0 -0
  230. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/create_optionset.yaml +0 -0
  231. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/create_role.yaml +0 -0
  232. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/delete_optionset.yaml +0 -0
  233. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/delete_record.yaml +0 -0
  234. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/delete_role.yaml +0 -0
  235. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/delete_worksheet.yaml +0 -0
  236. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/get_app_info.yaml +0 -0
  237. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/get_app_knowledge_list.yaml +0 -0
  238. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/get_app_worksheets_list.yaml +0 -0
  239. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/get_optionset_list.yaml +0 -0
  240. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/get_record_details.yaml +0 -0
  241. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/get_record_discussions.yaml +0 -0
  242. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/get_record_list.yaml +0 -0
  243. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/get_record_logs.yaml +0 -0
  244. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/get_record_pivot_data.yaml +0 -0
  245. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/get_record_relations.yaml +0 -0
  246. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/get_record_share_link.yaml +0 -0
  247. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/get_regions.yaml +0 -0
  248. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/get_role_details.yaml +0 -0
  249. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/get_role_list.yaml +0 -0
  250. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/knowledge_search.yaml +0 -0
  251. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/leave_all_roles.yaml +0 -0
  252. {hap_cli-0.8.9 → hap_cli-0.8.10}/sources/v3-api-schema/remove_member_from_role.yaml +0 -0
  253. {hap_cli-0.8.9 → hap_cli-0.8.10}/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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hap-cli
3
- Version: 0.8.9
3
+ Version: 0.8.10
4
4
  Summary: CLI harness for MingDAO HAP - Enterprise no-code platform
5
5
  Author: hap-cli
6
6
  License: Apache-2.0
@@ -1,3 +1,3 @@
1
1
  """CLI harness for MingDAO HAP (hap-cli)."""
2
2
 
3
- __version__ = "0.8.9"
3
+ __version__ = "0.8.10"
@@ -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))
@@ -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
+ """