@thinkingai/ae-cli 6.0.38 → 6.0.40

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 (194) hide show
  1. package/README.md +25 -3
  2. package/README.zh.md +25 -3
  3. package/dist/{auth-56Z45UVR.js → auth-GDV3H5I4.js} +18 -8
  4. package/dist/{auth-ENM3FE6L.js → auth-NN55553T.js} +3 -3
  5. package/dist/{capability-2H6PAOA3.js → capability-TPORIKRQ.js} +19 -15
  6. package/dist/{capability-YPOQX6PL.js → capability-VQNC5CF7.js} +19 -15
  7. package/dist/chunk-4NN5IWVN.js +26 -0
  8. package/dist/{chunk-DB4Q3ANU.js → chunk-6A2FUCIS.js} +3 -3
  9. package/dist/{chunk-PVBYJWC2.js → chunk-7KQWSBSL.js} +4 -4
  10. package/dist/{chunk-24BAVOX3.js → chunk-AXDXJTPC.js} +3 -1
  11. package/dist/{chunk-CPVTECJ3.js → chunk-DT6Y3TD7.js} +5 -5
  12. package/dist/{chunk-EGEIXA2Z.js → chunk-DWO43OIB.js} +0 -248
  13. package/dist/{chunk-V6FR6WTW.js → chunk-GJJA4CQZ.js} +34 -2
  14. package/dist/{chunk-RGXCNC4N.js → chunk-GS2P7LFD.js} +50 -17
  15. package/dist/{chunk-LYVNONC4.js → chunk-JHENBQ5B.js} +35 -0
  16. package/dist/{chunk-3P3562ZX.js → chunk-MVDZ7DBQ.js} +5 -5
  17. package/dist/{chunk-LCXU3AAT.js → chunk-NBPKWKRA.js} +2 -2
  18. package/dist/{chunk-HQ2A7ITL.js → chunk-RBNKI5ZW.js} +50 -17
  19. package/dist/{chunk-LHVM35J4.js → chunk-TS6BUGUY.js} +4 -4
  20. package/dist/chunk-TUKQZTMI.js +250 -0
  21. package/dist/{chunk-J7MZHDHQ.js → chunk-VKD5WQKN.js} +5 -5
  22. package/dist/{chunk-3KI3RRXX.js → chunk-VTXHDCBW.js} +3 -3
  23. package/dist/{chunk-KTYR3U6D.js → chunk-YTG6Q75E.js} +10 -6
  24. package/dist/{chunk-IR4ZLVPW.js → chunk-YV52FB5G.js} +25 -3
  25. package/dist/{chunk-E7UXXHO3.js → chunk-Z3OXWCIA.js} +3 -3
  26. package/dist/{cli-token-4SBMXAUK.js → cli-token-GL5MS5FK.js} +4 -4
  27. package/dist/{client-PP5FETMW.js → client-DAIPF7XN.js} +4 -4
  28. package/dist/{community-report-client-KK2QBANO.js → community-report-client-M2RW4MXD.js} +2 -2
  29. package/dist/config-4VZNLBKF.js +489 -0
  30. package/dist/index.js +96 -37
  31. package/dist/memory-RWJW4XFO.js +892 -0
  32. package/dist/memory-VO2ZJCRT.js +892 -0
  33. package/dist/{metadata-JIQ77HFY.js → metadata-YGTHR2XJ.js} +8 -8
  34. package/dist/{metadata-AN3YFZEV.js → metadata-ZRN2GHPN.js} +8 -8
  35. package/dist/{model-JASQVOFD.js → model-CLUIK3K5.js} +7 -5
  36. package/dist/{raw-XJCAT3HX.js → raw-52B4UKO4.js} +8 -7
  37. package/dist/sync-3REDHGY6.js +10259 -0
  38. package/dist/{te-agent-JHUG6DVV.js → te-agent-XNPELAKX.js} +580 -84
  39. package/dist/{te-analysis-ITKTO6JS.js → te-analysis-GJI5FZUL.js} +1152 -13
  40. package/dist/{te-analysis-RAC67YYD.js → te-analysis-N2BRDJZ5.js} +1152 -13
  41. package/dist/{te-community-QOYIYEJI.js → te-community-SQXKE5OO.js} +7 -7
  42. package/dist/{te-community-UFKI6ONP.js → te-community-TYSNU3NQ.js} +7 -7
  43. package/dist/{te-dataops-PZQ5NQLY.js → te-dataops-5TM7WZDI.js} +370 -189
  44. package/dist/{te-dataops-XTWVTJCA.js → te-dataops-OWIADNSM.js} +370 -189
  45. package/dist/{te-engage-NLZUPSBK.js → te-engage-L72HWRGO.js} +716 -118
  46. package/dist/{te-engage-E7F4HTXU.js → te-engage-QWM4GFS7.js} +716 -118
  47. package/dist/{te-kb-E7NSCBRB.js → te-kb-VRMEY3D4.js} +6 -6
  48. package/dist/{te-meta-GBDTMPEL.js → te-meta-53BVXPFI.js} +7 -7
  49. package/dist/{te-meta-ZTLTSHXC.js → te-meta-TOCBPBXI.js} +7 -7
  50. package/dist/{te-system-AH7DMCAQ.js → te-system-XGS5EQIQ.js} +4 -4
  51. package/dist/{te-team-BQ3SKSZV.js → te-team-BZRDV2CM.js} +7 -7
  52. package/dist/{update-DKG6UXEM.js → update-HEDXGOJH.js} +8 -6
  53. package/package.json +5 -2
  54. package/skills/ae-agent/SKILL.md +178 -16
  55. package/skills/ae-agent/references/add-skill.md +22 -10
  56. package/skills/ae-agent/references/edit-skill.md +24 -14
  57. package/skills/ae-agent/references/find-archived-conversations.md +82 -0
  58. package/skills/ae-agent/references/restore-conversation.md +54 -0
  59. package/skills/ae-agent/references/upload-skill.md +24 -14
  60. package/skills/ae-analysis/SKILL.md +1 -1
  61. package/skills/ae-analysis/references/command_index.md +104 -42
  62. package/skills/ae-analysis/references/entity_id_import_options.md +1 -1
  63. package/skills/ae-analysis/references/project_access_detail_get.md +3 -3
  64. package/skills/ae-analysis/references/project_data_power_delete.md +3 -3
  65. package/skills/ae-analysis/references/project_data_power_get.md +3 -3
  66. package/skills/ae-analysis/references/project_data_power_list.md +3 -3
  67. package/skills/ae-analysis/references/project_data_power_upsert.md +3 -3
  68. package/skills/ae-analysis/references/project_entity_create.md +3 -3
  69. package/skills/ae-analysis/references/project_entity_delete.md +3 -3
  70. package/skills/ae-analysis/references/project_entity_event_list.md +3 -3
  71. package/skills/ae-analysis/references/project_entity_get.md +3 -3
  72. package/skills/ae-analysis/references/project_entity_list.md +3 -3
  73. package/skills/ae-analysis/references/project_entity_update.md +3 -3
  74. package/skills/ae-analysis/references/project_function_list.md +3 -3
  75. package/skills/ae-analysis/references/project_info_create.md +25 -0
  76. package/skills/ae-analysis/references/project_info_delete.md +24 -0
  77. package/skills/ae-analysis/references/project_info_get.md +3 -3
  78. package/skills/ae-analysis/references/project_info_list.md +3 -3
  79. package/skills/ae-analysis/references/project_info_update.md +3 -3
  80. package/skills/ae-analysis/references/project_mark_time_create.md +3 -3
  81. package/skills/ae-analysis/references/project_mark_time_delete.md +3 -3
  82. package/skills/ae-analysis/references/project_mark_time_list.md +3 -3
  83. package/skills/ae-analysis/references/project_mark_time_update.md +3 -3
  84. package/skills/ae-analysis/references/project_member_add.md +3 -3
  85. package/skills/ae-analysis/references/project_member_batch_update.md +3 -3
  86. package/skills/ae-analysis/references/project_member_candidate_list.md +3 -3
  87. package/skills/ae-analysis/references/project_member_handover_export.md +3 -3
  88. package/skills/ae-analysis/references/project_member_handover_run.md +3 -3
  89. package/skills/ae-analysis/references/project_member_import.md +3 -3
  90. package/skills/ae-analysis/references/project_member_list.md +3 -3
  91. package/skills/ae-analysis/references/project_member_receiver_list.md +3 -3
  92. package/skills/ae-analysis/references/project_member_remove.md +3 -3
  93. package/skills/ae-analysis/references/project_member_update.md +3 -3
  94. package/skills/ae-analysis/references/project_owner_update.md +3 -3
  95. package/skills/ae-analysis/references/project_permission_binding_list.md +3 -3
  96. package/skills/ae-analysis/references/project_receive_status_update.md +3 -3
  97. package/skills/ae-analysis/references/project_role_delete.md +3 -3
  98. package/skills/ae-analysis/references/project_role_function_list.md +3 -3
  99. package/skills/ae-analysis/references/project_role_get.md +3 -3
  100. package/skills/ae-analysis/references/project_role_list.md +3 -3
  101. package/skills/ae-analysis/references/project_role_upsert.md +3 -3
  102. package/skills/ae-analysis/references/project_role_user_list.md +3 -3
  103. package/skills/ae-analysis/references/project_space_list.md +1 -1
  104. package/skills/ae-analysis/references/project_timezone_get.md +3 -3
  105. package/skills/ae-analysis/references/project_timezone_overview.md +3 -3
  106. package/skills/ae-analysis/references/project_timezone_update.md +3 -3
  107. package/skills/ae-analysis/references/project_user_id_items_update.md +3 -3
  108. package/skills/ae-analysis/references/system_admin_function_list.md +22 -0
  109. package/skills/ae-analysis/references/system_admin_function_update.md +26 -0
  110. package/skills/ae-analysis/references/system_admin_list.md +21 -0
  111. package/skills/ae-analysis/references/system_admin_remove.md +25 -0
  112. package/skills/ae-analysis/references/system_admin_upsert.md +25 -0
  113. package/skills/ae-analysis/references/system_function_list.md +21 -0
  114. package/skills/ae-analysis/references/system_member_add.md +25 -0
  115. package/skills/ae-analysis/references/system_member_candidate_list.md +22 -0
  116. package/skills/ae-analysis/references/system_member_delete.md +25 -0
  117. package/skills/ae-analysis/references/system_member_list.md +24 -0
  118. package/skills/ae-analysis/references/system_member_mfa_unbind.md +25 -0
  119. package/skills/ae-analysis/references/system_member_password_reset.md +32 -0
  120. package/skills/ae-analysis/references/system_member_project_batch_update.md +27 -0
  121. package/skills/ae-analysis/references/system_member_status_update.md +26 -0
  122. package/skills/ae-analysis/references/system_member_update.md +23 -0
  123. package/skills/ae-analysis/references/system_mfa_get.md +21 -0
  124. package/skills/ae-analysis/references/system_mfa_update.md +25 -0
  125. package/skills/ae-analysis/references/system_node_monitor_list.md +24 -0
  126. package/skills/ae-analysis/references/system_oauth2_update.md +22 -0
  127. package/skills/ae-analysis/references/system_ops_alert_contact_delete.md +25 -0
  128. package/skills/ae-analysis/references/system_ops_alert_contact_list.md +23 -0
  129. package/skills/ae-analysis/references/system_ops_alert_contact_test.md +29 -0
  130. package/skills/ae-analysis/references/system_ops_alert_contact_upsert.md +39 -0
  131. package/skills/ae-analysis/references/system_preference_get.md +21 -0
  132. package/skills/ae-analysis/references/system_preference_update.md +22 -0
  133. package/skills/ae-analysis/references/system_project_usage_list.md +28 -0
  134. package/skills/ae-analysis/references/system_query_alert_rule_list.md +21 -0
  135. package/skills/ae-analysis/references/system_query_alert_rule_update.md +26 -0
  136. package/skills/ae-analysis/references/system_query_monitor_overview.md +26 -0
  137. package/skills/ae-analysis/references/system_query_task_cancel.md +25 -0
  138. package/skills/ae-analysis/references/system_query_task_export.md +49 -0
  139. package/skills/ae-analysis/references/system_query_task_get.md +23 -0
  140. package/skills/ae-analysis/references/system_query_task_list.md +35 -0
  141. package/skills/ae-analysis/references/system_query_task_options.md +27 -0
  142. package/skills/ae-analysis/references/system_receiver_address_delete.md +26 -0
  143. package/skills/ae-analysis/references/system_receiver_address_overview.md +21 -0
  144. package/skills/ae-analysis/references/system_receiver_address_project_list.md +21 -0
  145. package/skills/ae-analysis/references/system_receiver_address_promote.md +24 -0
  146. package/skills/ae-analysis/references/system_receiver_address_upsert.md +27 -0
  147. package/skills/ae-analysis/references/system_receiver_detection_get.md +22 -0
  148. package/skills/ae-analysis/references/system_receiver_detection_run.md +22 -0
  149. package/skills/ae-analysis/references/system_receiver_detection_update.md +25 -0
  150. package/skills/ae-analysis/references/system_role_delete.md +26 -0
  151. package/skills/ae-analysis/references/system_role_function_list.md +22 -0
  152. package/skills/ae-analysis/references/system_role_get.md +22 -0
  153. package/skills/ae-analysis/references/system_role_list.md +24 -0
  154. package/skills/ae-analysis/references/system_role_upsert.md +27 -0
  155. package/skills/ae-analysis/references/system_role_user_list.md +22 -0
  156. package/skills/ae-analysis/references/system_seat_list.md +25 -0
  157. package/skills/ae-analysis/references/system_seat_update.md +26 -0
  158. package/skills/ae-analysis/references/system_smtp_delete.md +24 -0
  159. package/skills/ae-analysis/references/system_smtp_get.md +21 -0
  160. package/skills/ae-analysis/references/system_smtp_test.md +22 -0
  161. package/skills/ae-analysis/references/system_smtp_upsert.md +31 -0
  162. package/skills/ae-analysis/references/system_third_party_login_disable.md +25 -0
  163. package/skills/ae-analysis/references/system_third_party_login_list.md +21 -0
  164. package/skills/ae-analysis/references/system_third_party_login_upsert.md +33 -0
  165. package/skills/ae-analysis/references/system_usage_overview.md +21 -0
  166. package/skills/ae-analysis/references/system_usage_trend_export.md +44 -0
  167. package/skills/ae-analysis/references/system_usage_trend_query.md +28 -0
  168. package/skills/ae-dataops/SKILL.md +1 -1
  169. package/skills/ae-dataops/references/dataops-flow-create.md +51 -16
  170. package/skills/ae-engage/SKILL.md +67 -27
  171. package/skills/ae-engage/references/activity-activity.md +3 -0
  172. package/skills/ae-engage/references/activity-approval.md +12 -4
  173. package/skills/ae-engage/references/activity-data-detail.md +61 -0
  174. package/skills/ae-engage/references/activity-task.md +21 -6
  175. package/skills/ae-engage/references/activity-topic.md +31 -13
  176. package/skills/ae-engage/references/add-channel.md +170 -41
  177. package/skills/ae-engage/references/build-task-save-guide.md +66 -29
  178. package/skills/ae-engage/references/channel-update-config.md +3 -2
  179. package/skills/ae-engage/references/common-metric.md +88 -115
  180. package/skills/ae-engage/references/flow-detail.md +13 -0
  181. package/skills/ae-engage/references/preset-event.md +14 -32
  182. package/skills/ae-engage/references/save-flow.md +141 -64
  183. package/skills/ae-engage/references/save-task.md +231 -58
  184. package/skills/ae-engage/references/scene-config-metric.md +3 -0
  185. package/skills/ae-engage/references/scene-preset-metric.md +8 -37
  186. package/skills/ae-engage/references/scene-strategy-audience.md +56 -643
  187. package/skills/ae-engage/references/scene-strategy.md +6 -6
  188. package/skills/ae-engage/references/task-detail.md +10 -0
  189. package/skills/ae-engage/references/task-submit-approval.md +45 -0
  190. package/skills/ae-engage/references/validate-flow-node-config.md +1 -1
  191. package/skills/ae-generate-tracking-code/SKILL.md +2 -2
  192. package/skills/ae-metadata/SKILL.md +1 -1
  193. package/dist/config-BSSALXEN.js +0 -128
  194. package/dist/sync-QFP4XFN3.js +0 -485
@@ -10,18 +10,20 @@ Recommended workflow:
10
10
 
11
11
  1. `ae-cli engage-setting channel list --project-id <projectId>`
12
12
  2. `ae-cli engage-task task build-save-guide --project-id <projectId> --req '{...}'`
13
- 3. If the guide indicates QP-derived fields, call `ae-cli engage-setting query cluster-qp-skill --project-id <projectId>` and build
14
- `targetConfig.qp`, `triggerConfig.triggerRule`, `clientConfig.clientQp`, or `completionIndicatorDef.event`
15
- from the returned skill text. For existing-cluster audiences, use `analysis user-cluster get`.
13
+ 3. If the guide indicates a custom target audience, build the semantic
14
+ `targetConfig.definitionRequest` contract used by Analysis. Hermes compiles it to persisted QP.
15
+ Use `triggerConfig.triggerDefinition` and
16
+ `completionIndicatorDef.completionIndicators[].eventDefinition` for event conditions.
17
+ For existing-cluster audiences, use `analysis user-cluster get`.
18
+ Never construct persisted execution QP.
16
19
  4. Build the final grouped `req`
17
20
  5. `ae-cli engage-task task save --project-id <projectId> --req '{...}'`
18
21
 
19
22
  Audience creation is not a fixed preflight step. Use direct create/get only when the guide indicates that you must construct:
20
23
 
21
- - `targetConfig.qp`
22
- - `triggerConfig.triggerRule`
23
- - `clientConfig.clientQp`
24
- - `completionIndicatorDef.event`
24
+ - `targetConfig.definitionRequest`
25
+ - `triggerConfig.triggerDefinition`
26
+ - `completionIndicatorDef.completionIndicators[].eventDefinition`
25
27
 
26
28
  For the full guide contract, request format, return sections, and handoff usage, read:
27
29
 
@@ -31,7 +33,9 @@ For the full guide contract, request format, return sections, and handoff usage,
31
33
 
32
34
  ## 1. General Principles
33
35
 
34
- `engage-task task save` accepts only the final grouped draft-save payload that Hermes can validate and persist.
36
+ `engage-task task save` accepts the grouped draft-save payload. For a custom audience
37
+ (`targetClusterType=1`), pass semantic `targetConfig.definitionRequest`; do not pass raw
38
+ persisted audience fields.
35
39
 
36
40
  The command supports two modes:
37
41
 
@@ -101,21 +105,59 @@ Use the guide to determine:
101
105
  - current handoff template
102
106
  - whether the current payload is already close to submit-ready
103
107
 
104
- ### 2.3 Create and Read the Audience Only When Needed
108
+ ### 2.3 Build Semantic Conditions
105
109
 
106
- If the guide indicates that an audience or QP-derived fields are needed, run:
110
+ If the guide indicates that audience or event conditions are needed, build semantic definitions
111
+ directly. Resolve real events and properties through Analysis metadata.
107
112
 
108
- ```bash
109
- ae-cli analysis user-cluster create --project-id <projectId> --cluster-name <condition_cluster_name> --display-name <display_name> --definition-request '<semantic-definition-json>'
110
- ae-cli analysis user-cluster get --project-id <projectId> --cluster-names '["<condition_cluster_name>"]'
113
+ Use semantic event definitions for:
114
+
115
+ - `triggerConfig.triggerDefinition`
116
+ - `completionIndicatorDef.completionIndicators[].eventDefinition`
117
+
118
+ Task aggregate and completion event definitions support:
119
+
120
+ - `aggregation`: `count`, `sum`, or `distinct_count`
121
+ - `operator`: `gt`, `gte`, or `eq`
122
+
123
+ Completion target and experiment main-goal event filters must not use properties whose metadata
124
+ `select_type` is `datetime`. The supported filter-property select types are `string`, `number`,
125
+ `bool`, `bool-s`, `date`, `array`, `array_string`, `row`, and `array_row`. This restriction applies
126
+ to `completionIndicatorDef.completionIndicators[].eventDefinition.filters`; it does not apply to
127
+ trigger-event filters.
128
+
129
+ For an event property whose metadata `select_type` is `array_row`, never submit it as a flat
130
+ property filter. Use an object-group filter and place only that parent's child properties inside
131
+ `conditions`:
132
+
133
+ ```json
134
+ {
135
+ "type": "object_group",
136
+ "field": "equipment_list",
137
+ "operator": "any_satisfy",
138
+ "conditions": {
139
+ "relation": "and",
140
+ "items": [
141
+ {
142
+ "field": "equipment_list.item_level",
143
+ "operator": "gte",
144
+ "values": [10]
145
+ }
146
+ ]
147
+ }
148
+ }
111
149
  ```
112
150
 
113
- Prefer the returned `cluster_name`/`clusterKey`. Only when required, use the server-authored definition to build:
151
+ Object-group operators are `any_satisfy`, `none_satisfy`, and `all_satisfy`. Resolve the parent
152
+ and child fields from current metadata. Hermes validates the metadata type, child-parent
153
+ relationship, and supported operators before saving, so do not flatten `array_row` or invent child
154
+ field names.
114
155
 
115
- - `targetConfig.qp`
116
- - `triggerConfig.triggerRule`
117
- - `clientConfig.clientQp`
118
- - `completionIndicatorDef.event`
156
+ Trigger events have an additional envelope contract selected by `eventTriggerType`. Do not apply
157
+ one aggregate event shape to every trigger type. Use the matrix and examples in section 4.4.
158
+
159
+ `clientConfig.clientQp` is not an AI-authored field. Always omit it from Capability requests;
160
+ partial task updates preserve existing server state.
119
161
 
120
162
  Do not create an audience by default for every task. It is conditional, not mandatory.
121
163
 
@@ -192,16 +234,12 @@ Content guidance:
192
234
 
193
235
  Use the guide to decide which audience shape applies:
194
236
 
195
- - `targetClusterType=1`: custom audience, requires `qp`
237
+ - `targetClusterType=1`: custom audience, requires `definitionRequest`
196
238
  - `targetClusterType=2`: existing cluster, requires `clusterKey`
197
- - `targetClusterType=3`: all users, forbids both `qp` and `clusterKey`
198
-
199
- If `qp` is required, create/read a server-authored audience and copy the saved definition rather than building raw QP:
239
+ - `targetClusterType=3`: all users, forbids `definitionRequest` and `clusterKey`
200
240
 
201
- ```bash
202
- ae-cli analysis user-cluster create --project-id <projectId> --cluster-name <condition_cluster_name> --display-name <display_name> --definition-request '<semantic-definition-json>'
203
- ae-cli analysis user-cluster get --project-id <projectId> --cluster-names '["<condition_cluster_name>"]'
204
- ```
241
+ For a custom audience, pass the semantic definition directly. Do not create an intermediate
242
+ cluster or copy persisted QP.
205
243
 
206
244
  ### 4.4 `triggerConfig`
207
245
 
@@ -209,32 +247,175 @@ Use the guide to determine the current trigger rule set:
209
247
 
210
248
  - `triggerType=0`: requires `triggerTime`
211
249
  - `triggerType=1`: requires `startDate`, `endDate`, `triggerCrontab`
212
- - `triggerType=2`: manual, no `triggerRule`
213
- - `triggerType=3/4/5`: requires `triggerRule`
250
+ - `triggerType=2`: manual, no `triggerDefinition`
251
+ - `triggerType=3/4/5`: requires `triggerDefinition`
214
252
 
215
253
  Rules:
216
254
 
217
255
  - `triggerType=6` is not supported
218
256
  - use the guide for cron format and wrong-example checks
219
- - if `triggerRule` is needed, copy it from the saved server-authored audience definition:
257
+ - if `triggerDefinition` is needed, build it from semantic event definitions and resolve real
258
+ event/property names through Analysis metadata
259
+ - always set the A rule's `eventTriggerType` explicitly
260
+ - Hermes compiles the semantic event and then validates the final persisted trigger-rule envelope
261
+ - for semantic event-trigger tasks, Hermes backfills missing task-level `startDate` / `endDate`
262
+ from the A rule's `periodStart` / `periodEnd`; explicit task-level dates remain authoritative
220
263
 
221
- ```bash
222
- ae-cli analysis user-cluster get --project-id <projectId> --cluster-names '["<condition_cluster_name>"]'
264
+ #### Trigger envelope matrix
265
+
266
+ | Channel | `triggerType` | Allowed A-rule `eventTriggerType` |
267
+ | --- | --- | --- |
268
+ | Server channels | `3` | `0`, `1`, `2` |
269
+ | Server channels | `4` | `0` only |
270
+ | Server channels | `5` | `0`, `1`, `2` |
271
+ | `client_push` (`channelType=3`) | `3` | `1`, `2`, `3` |
272
+ | `client_push` (`channelType=3`) | `5` | `1`, `2`, `3` |
273
+
274
+ For `triggerType=4/5`, the second B rule is always an aggregate rule. It also requires
275
+ `delayTime`, `delayTimeSymbol`, and `eventCondition`; use `1` for `triggerType=4` and `0` for
276
+ `triggerType=5`.
277
+
278
+ #### `eventTriggerType=0`: accumulated completion
279
+
280
+ Use aggregate semantic events:
281
+
282
+ ```json
283
+ {
284
+ "eventTriggerType": 0,
285
+ "events": [
286
+ {
287
+ "type": "event",
288
+ "event": "purchase",
289
+ "aggregation": "sum",
290
+ "property": "amount",
291
+ "operator": "gt",
292
+ "value": 100
293
+ }
294
+ ]
295
+ }
223
296
  ```
224
297
 
225
- ### 4.5 `controlConfig`
298
+ #### `eventTriggerType=1`: continuous completion
226
299
 
227
- Minimum required field:
300
+ Use exactly one count event with `operator=eq` and `value>=2`. `blackList` is optional and accepts
301
+ semantic events that Hermes compiles as non-aggregate event selectors. The rule-level window is
302
+ optional; provide `windowGap` and `windowGapTimeUnit` together.
303
+ `relationProps` is optional and uses semantic event-property references. Hermes resolves their
304
+ legacy metadata before persistence:
228
305
 
229
- - `completionIndicatorDef`
306
+ ```json
307
+ {
308
+ "relationProps": [
309
+ {
310
+ "property": {
311
+ "type": "event_property",
312
+ "name": "#city"
313
+ }
314
+ }
315
+ ]
316
+ }
317
+ ```
318
+
319
+ ```json
320
+ {
321
+ "eventTriggerType": 1,
322
+ "windowGap": 7,
323
+ "windowGapTimeUnit": "day",
324
+ "events": [
325
+ {
326
+ "type": "event",
327
+ "event": "login",
328
+ "aggregation": "count",
329
+ "operator": "eq",
330
+ "value": 3
331
+ }
332
+ ],
333
+ "blackList": [
334
+ {
335
+ "type": "event",
336
+ "event": "logout",
337
+ "aggregation": "count",
338
+ "operator": "eq",
339
+ "value": 1
340
+ }
341
+ ]
342
+ }
343
+ ```
230
344
 
231
- When the guide points to event-based completion or experiment-driven main-goal rules, use the saved server-authored audience definition:
345
+ #### `eventTriggerType=2`: ordered completion
232
346
 
233
- ```bash
234
- ae-cli analysis user-cluster get --project-id <projectId> --cluster-names '["<condition_cluster_name>"]'
347
+ Use at least two sequence steps. The first and last steps must have `hasDone=true`. Put the
348
+ Analysis semantic event inside `eventDefinition`; do not add persisted aggregate fields such as
349
+ `taPropQuota`, `uceCalcuSymbol`, or `num`.
350
+ Optional `relationProps` use the same semantic event-property structure documented for
351
+ `eventTriggerType=1`.
352
+
353
+ ```json
354
+ {
355
+ "eventTriggerType": 2,
356
+ "events": [
357
+ {
358
+ "eventDefinition": {
359
+ "type": "event",
360
+ "event": "login",
361
+ "aggregation": "count",
362
+ "operator": "eq",
363
+ "value": 1
364
+ },
365
+ "hasDone": true,
366
+ "hasDistanceStart": false
367
+ },
368
+ {
369
+ "eventDefinition": {
370
+ "type": "event",
371
+ "event": "purchase",
372
+ "aggregation": "count",
373
+ "operator": "eq",
374
+ "value": 1
375
+ },
376
+ "hasDone": true,
377
+ "hasDistanceStart": false,
378
+ "windowGap": 2,
379
+ "windowGapTimeUnit": "day"
380
+ }
381
+ ]
382
+ }
235
383
  ```
236
384
 
237
- to build `completionIndicatorDef.event`.
385
+ `hasDone=false` is allowed only for optional intermediate steps. Hermes removes aggregate fields
386
+ from every persisted sequence step and rejects unsafe sequence envelopes before save.
387
+
388
+ #### `eventTriggerType=3`: every completion
389
+
390
+ This type is available only for `client_push`. Use count/eq/1 events and set
391
+ `eventTriggerCaliberType` to `0` (combined trigger) or `1` (separate trigger).
392
+
393
+ ```json
394
+ {
395
+ "eventTriggerType": 3,
396
+ "eventTriggerCaliberType": 0,
397
+ "events": [
398
+ {
399
+ "type": "event",
400
+ "event": "login",
401
+ "aggregation": "count",
402
+ "operator": "eq",
403
+ "value": 1
404
+ }
405
+ ]
406
+ }
407
+ ```
408
+
409
+ ### 4.5 `controlConfig`
410
+
411
+ Minimum required field:
412
+
413
+ - `completionIndicatorDef`
414
+
415
+ When the guide points to event-based completion or experiment-driven main-goal rules, build
416
+ `completionIndicatorDef.completionIndicators[].eventDefinition` from the semantic event contract.
417
+ Read `fieldRules.blocks.controlConfig.completionIndicatorDef.filterPropertySelectTypes` and exclude
418
+ every property type listed under `excluded` before constructing its `filters`.
238
419
 
239
420
  Important constraints that still apply:
240
421
 
@@ -249,13 +430,10 @@ Important constraints that still apply:
249
430
 
250
431
  Use this block only when client-side conditions are needed.
251
432
 
252
- If `clientConfig.clientQp` is required, copy it from the saved server-authored audience definition:
253
-
254
- ```bash
255
- ae-cli analysis user-cluster get --project-id <projectId> --cluster-names '["<condition_cluster_name>"]'
256
- ```
257
-
258
- Only call that schema query when the guide explicitly shows that the field is needed.
433
+ Never include `clientConfig.clientQp` in a Capability request. It is a server-authored
434
+ compatibility field, and partial task updates preserve the existing server value. If a requested
435
+ client-side condition has no semantic field in the current contract, stop and report that it cannot
436
+ be safely authored through this Capability.
259
437
 
260
438
  ---
261
439
 
@@ -266,13 +444,14 @@ Before submission, verify:
266
444
  1. `channelId` comes from a real channel query.
267
445
  2. `build_task_save_guide` has already been called for the current scenario or partial draft.
268
446
  3. `fieldRules.channelContentSchema` was used as the source of truth for content structure.
269
- 4. Any required QP-derived fields came from `analysis user-cluster get`, never from hand-built raw QP.
270
- 5. `targetClusterType` matches the presence or absence of `clusterKey` / `qp`.
271
- 6. `triggerType` matches the provided scheduling or event fields.
447
+ 4. Audience, trigger, and completion conditions use semantic definitions only.
448
+ 5. `targetClusterType` matches the presence or absence of `clusterKey` / `definitionRequest`.
449
+ 6. `channelType`, `triggerType`, and `eventTriggerType` match the trigger envelope matrix.
272
450
  7. `completionIndicatorDef` is present and structurally valid for the current scenario.
273
451
  8. `taskId` is omitted for create mode and present only for updating a draft or paused task.
274
452
  9. No unsupported `triggerType=6` is used.
275
- 10. No placeholder IDs or fabricated resource names remain in the request.
453
+ 10. Ordered steps contain `eventDefinition` and sequence metadata, not persisted aggregate fields.
454
+ 11. No placeholder IDs or fabricated resource names remain in the request.
276
455
 
277
456
  ---
278
457
 
@@ -286,14 +465,8 @@ ae-cli engage-task task build-save-guide --project-id 1 --req '{"context":{"trig
286
465
  ae-cli engage-task task save --project-id 1 --req '{...final grouped req...}'
287
466
  ```
288
467
 
289
- If the guide indicates an audience or QP-derived fields are needed, insert direct create/get:
290
-
291
- ```bash
292
- ae-cli analysis user-cluster create --project-id <projectId> --cluster-name <condition_cluster_name> --display-name <display_name> --definition-request '<semantic-definition-json>'
293
- ae-cli analysis user-cluster get --project-id <projectId> --cluster-names '["<condition_cluster_name>"]'
294
- ```
295
-
296
- before building the final `req`.
468
+ If the guide indicates a custom audience or event condition, insert the semantic definition
469
+ directly before building the final `req`.
297
470
 
298
471
  ---
299
472
 
@@ -308,4 +481,4 @@ This command is a write operation.
308
481
  - Do not invent `channelId`, `clusterKey`, audience definitions, or content keys
309
482
  - Do not use `taskId` for a running or ended task
310
483
  - Do not pass `occasionKeys`; Hermes derives them from content
311
- - Do not call the semantic cluster definition builder as a reflex; call it only when guide output says QP-derived fields are needed
484
+ - Do not create an intermediate cluster merely to obtain an execution QP
@@ -52,6 +52,9 @@ ae-cli engage-scene config-metric batch-delete --project-id <project_id> --confi
52
52
 
53
53
  ### update-rule
54
54
 
55
+ `event_list` is a scene metric attribution-rule list, not a complete analysis QP. It intentionally
56
+ keeps its existing `event_name`/`filter` contract and does not use TriggerEvent conversion.
57
+
55
58
  | Parameter | Required | Description |
56
59
  |---|---|---|
57
60
  | `--project-id` / `-p` | Yes | Numeric project ID. |
@@ -1,45 +1,16 @@
1
- # engage-scene preset-metric
1
+ # Scene preset metric semantic events
2
2
 
3
- > Trigger keywords: config center, config item · Capability ids: `engage-scene.preset-metric.{get,set}` · Domain: `engage`.
4
-
5
- Scene management / config center — config item preset metrics (impression / click / engagement) QP configuration.
6
-
7
- ## Commands
3
+ Config-item impression, click, and attend metrics are stored as event QP but exposed to the CLI as semantic event definitions.
8
4
 
9
5
  ```bash
10
- # Get preset metric QP config of a config item
11
6
  ae-cli engage-scene preset-metric get --project-id <project_id> --config-id <config_id>
12
7
 
13
- # Set preset metric QP config
14
- ae-cli engage-scene preset-metric set \
15
- --project-id <project_id> --config-id <config_id> \
16
- [--impression-event-qp '<qp json>'] [--click-event-qp '<qp json>'] [--attend-event-qp '<qp json>']
8
+ ae-cli engage-scene preset-metric set --project-id <project_id> --config-id <config_id> \
9
+ --impression-event-definition '{"type":"event","event":"impression","aggregation":"count","operator":"gte","value":1}' \
10
+ --click-event-definition '{"type":"event","event":"click","aggregation":"count","operator":"gte","value":1}' \
11
+ --attend-event-definition '{"type":"event","event":"attend","aggregation":"count","operator":"gte","value":1}'
17
12
  ```
18
13
 
19
- ## Parameters
20
-
21
- ### get
22
-
23
- | Parameter | Required | Description |
24
- |---|---|---|
25
- | `--project-id` / `-p` | Yes | Numeric project ID. |
26
- | `--config-id` | Yes | Config item ID. |
27
-
28
- ### set
29
-
30
- | Parameter | Required | Description |
31
- |---|---|---|
32
- | `--project-id` / `-p` | Yes | Numeric project ID. |
33
- | `--config-id` | Yes | Config item ID. |
34
- | `--impression-event-qp` | No | Impression event QP JSON string. |
35
- | `--click-event-qp` | No | Click event QP JSON string. |
36
- | `--attend-event-qp` | No | Attend event QP JSON string. |
37
-
38
- ## Output
39
-
40
- - `get`: `data` — preset metric QP config.
41
- - `set`: `data.success` — whether the operation succeeded.
42
-
43
- ## Decision Rules
14
+ All three event flags are optional; an omitted definition clears that stored preset event, preserving existing set semantics. Resolve real event/property metadata before writing.
44
15
 
45
- - `get` is read; `set` is `write`.
16
+ Get returns the three semantic definitions with per-field conversion status and never returns raw event QP.