@thinkingai/ae-cli 1.0.1

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 (172) hide show
  1. package/README.md +229 -0
  2. package/bin/ae-cli.js +2 -0
  3. package/dist/auth-JXELJNDS.js +19 -0
  4. package/dist/auth-L3G3A74I.js +67 -0
  5. package/dist/chunk-3GM5LJZR.js +145 -0
  6. package/dist/chunk-JD5DXMKL.js +172 -0
  7. package/dist/chunk-KM57HI5B.js +107 -0
  8. package/dist/chunk-OVQOK35G.js +108 -0
  9. package/dist/chunk-RJNLN3KQ.js +217 -0
  10. package/dist/client-5QSQBBDB.js +16 -0
  11. package/dist/community-GMALVSRF.js +684 -0
  12. package/dist/config-Q7J3Z7Z2.js +242 -0
  13. package/dist/index.js +277 -0
  14. package/dist/raw-ZNVURYMR.js +59 -0
  15. package/dist/te-analysis-7NN3SY3I.js +871 -0
  16. package/dist/te-audience-P43BWMHM.js +350 -0
  17. package/dist/te-common-H3IPTI2I.js +144 -0
  18. package/dist/te-dataops-WCGDBJLF.js +1853 -0
  19. package/dist/te-engage-UTRVNTGU.js +1470 -0
  20. package/dist/te-meta-HGYNXVGF.js +479 -0
  21. package/package.json +53 -0
  22. package/skills/te-analysis/SKILL.md +107 -0
  23. package/skills/te-analysis/references/build-entity-details-sql.md +58 -0
  24. package/skills/te-analysis/references/build-event-details-sql.md +61 -0
  25. package/skills/te-analysis/references/create-alert.md +47 -0
  26. package/skills/te-analysis/references/create-dashboard.md +49 -0
  27. package/skills/te-analysis/references/create-or-update-dashboard-note.md +39 -0
  28. package/skills/te-analysis/references/create-public-access-link.md +43 -0
  29. package/skills/te-analysis/references/create-report.md +60 -0
  30. package/skills/te-analysis/references/create-result-cluster.md +73 -0
  31. package/skills/te-analysis/references/drilldown-user-events.md +72 -0
  32. package/skills/te-analysis/references/drilldown-users.md +75 -0
  33. package/skills/te-analysis/references/get-alert-definition-schema.md +32 -0
  34. package/skills/te-analysis/references/get-alert.md +31 -0
  35. package/skills/te-analysis/references/get-analysis-query-schema.md +36 -0
  36. package/skills/te-analysis/references/get-filter-schema.md +33 -0
  37. package/skills/te-analysis/references/get-groupby-schema.md +33 -0
  38. package/skills/te-analysis/references/get-report-definition.md +33 -0
  39. package/skills/te-analysis/references/get-table-columns.md +38 -0
  40. package/skills/te-analysis/references/list-alerts.md +33 -0
  41. package/skills/te-analysis/references/list-dashboards.md +33 -0
  42. package/skills/te-analysis/references/list-public-access-links.md +31 -0
  43. package/skills/te-analysis/references/list-reports.md +33 -0
  44. package/skills/te-analysis/references/load-filters.md +44 -0
  45. package/skills/te-analysis/references/query-adhoc.md +71 -0
  46. package/skills/te-analysis/references/query-dashboard-detail.md +35 -0
  47. package/skills/te-analysis/references/query-dashboard-report-data.md +60 -0
  48. package/skills/te-analysis/references/query-entity-details.md +60 -0
  49. package/skills/te-analysis/references/query-event-details.md +63 -0
  50. package/skills/te-analysis/references/query-report-data.md +65 -0
  51. package/skills/te-analysis/references/update-alert.md +49 -0
  52. package/skills/te-analysis/references/update-dashboard.md +45 -0
  53. package/skills/te-analysis/references/update-public-access-link.md +41 -0
  54. package/skills/te-audience/SKILL.md +63 -0
  55. package/skills/te-audience/references/create-cluster.md +65 -0
  56. package/skills/te-audience/references/create-tag.md +60 -0
  57. package/skills/te-audience/references/get-cluster-definition-schema.md +37 -0
  58. package/skills/te-audience/references/get-clusters-by-name.md +32 -0
  59. package/skills/te-audience/references/get-tag-definition-schema.md +32 -0
  60. package/skills/te-audience/references/get-tags-by-name.md +32 -0
  61. package/skills/te-audience/references/list-cluster-members.md +35 -0
  62. package/skills/te-audience/references/list-clusters.md +32 -0
  63. package/skills/te-audience/references/list-tag-members.md +36 -0
  64. package/skills/te-audience/references/list-tags.md +32 -0
  65. package/skills/te-audience/references/refresh-cluster.md +31 -0
  66. package/skills/te-audience/references/refresh-tag.md +31 -0
  67. package/skills/te-audience/references/update-cluster.md +59 -0
  68. package/skills/te-audience/references/update-tag.md +60 -0
  69. package/skills/te-common/SKILL.md +135 -0
  70. package/skills/te-common/references/get-resource-url.md +32 -0
  71. package/skills/te-common/references/list-projects.md +37 -0
  72. package/skills/te-community/SKILL.md +133 -0
  73. package/skills/te-community/references/community-activity-analysis.md +68 -0
  74. package/skills/te-community/references/community-analyzing-official-content.md +72 -0
  75. package/skills/te-community/references/community-analyzing-theme-comment.md +124 -0
  76. package/skills/te-community/references/community-character-analysis.md +71 -0
  77. package/skills/te-community/references/community-daily-report.md +82 -0
  78. package/skills/te-community/references/community-hottopic-insight.md +120 -0
  79. package/skills/te-community/references/community-release-analysis.md +79 -0
  80. package/skills/te-community/references/community-weekly-report.md +84 -0
  81. package/skills/te-community/references/get_channel_info.md +21 -0
  82. package/skills/te-community/references/get_comment_tag_analysis.md +30 -0
  83. package/skills/te-community/references/get_comments_summary.md +33 -0
  84. package/skills/te-community/references/get_corpus_tags.md +21 -0
  85. package/skills/te-community/references/get_daily_summary.md +23 -0
  86. package/skills/te-community/references/get_hot_topics.md +26 -0
  87. package/skills/te-community/references/get_livestream_analysis.md +23 -0
  88. package/skills/te-community/references/get_livestream_detail.md +34 -0
  89. package/skills/te-community/references/get_livestream_list.md +26 -0
  90. package/skills/te-community/references/get_livestream_overview.md +25 -0
  91. package/skills/te-community/references/get_livestream_room_metrics.md +26 -0
  92. package/skills/te-community/references/get_livestream_rooms.md +26 -0
  93. package/skills/te-community/references/get_overview_metrics.md +26 -0
  94. package/skills/te-community/references/get_post_detail.md +38 -0
  95. package/skills/te-community/references/get_risk_content.md +43 -0
  96. package/skills/te-community/references/get_sentiment_overview.md +34 -0
  97. package/skills/te-community/references/get_tag_trends.md +28 -0
  98. package/skills/te-community/references/get_topic_detail.md +27 -0
  99. package/skills/te-community/references/search_posts.md +48 -0
  100. package/skills/te-dataops/SKILL.md +645 -0
  101. package/skills/te-dataops/references/dataops-flow-create.md +163 -0
  102. package/skills/te-dataops/references/dataops-flow-monitor.md +118 -0
  103. package/skills/te-dataops/references/dataops-integration.md +246 -0
  104. package/skills/te-dataops/references/dataops-operations.md +107 -0
  105. package/skills/te-dataops/references/dataops-query.md +111 -0
  106. package/skills/te-dataops/references/dataops-table.md +122 -0
  107. package/skills/te-engage/SKILL.md +211 -0
  108. package/skills/te-engage/references/add-approver.md +24 -0
  109. package/skills/te-engage/references/add-channel.md +74 -0
  110. package/skills/te-engage/references/approver-list.md +19 -0
  111. package/skills/te-engage/references/cancel-query-by-request-id.md +23 -0
  112. package/skills/te-engage/references/channel-detail.md +52 -0
  113. package/skills/te-engage/references/channel-list.md +41 -0
  114. package/skills/te-engage/references/config-channel-detail.md +32 -0
  115. package/skills/te-engage/references/config-channel-list.md +27 -0
  116. package/skills/te-engage/references/config-item-analysis-report.md +34 -0
  117. package/skills/te-engage/references/config-item-detail.md +30 -0
  118. package/skills/te-engage/references/config-item-list.md +19 -0
  119. package/skills/te-engage/references/config-item-strategy-comparison.md +25 -0
  120. package/skills/te-engage/references/config-item-trigger-report.md +42 -0
  121. package/skills/te-engage/references/copy-config-template.md +29 -0
  122. package/skills/te-engage/references/delete-channel.md +24 -0
  123. package/skills/te-engage/references/delete-config-channel.md +24 -0
  124. package/skills/te-engage/references/delete-config-item.md +25 -0
  125. package/skills/te-engage/references/delete-flow.md +24 -0
  126. package/skills/te-engage/references/flow-ab-split-node-report.md +54 -0
  127. package/skills/te-engage/references/flow-detail.md +79 -0
  128. package/skills/te-engage/references/flow-list.md +19 -0
  129. package/skills/te-engage/references/flow-node-config-schema.md +44 -0
  130. package/skills/te-engage/references/flow-node-detail-report.md +55 -0
  131. package/skills/te-engage/references/flow-node-overview-report.md +52 -0
  132. package/skills/te-engage/references/flow-process-report.md +59 -0
  133. package/skills/te-engage/references/manage-flow.md +94 -0
  134. package/skills/te-engage/references/manage-strategy.md +74 -0
  135. package/skills/te-engage/references/manage-task.md +37 -0
  136. package/skills/te-engage/references/modify-flow-base-info.md +27 -0
  137. package/skills/te-engage/references/save-flow.md +870 -0
  138. package/skills/te-engage/references/strategy-detail.md +73 -0
  139. package/skills/te-engage/references/strategy-list.md +21 -0
  140. package/skills/te-engage/references/task-data-detail.md +81 -0
  141. package/skills/te-engage/references/task-data-overview.md +48 -0
  142. package/skills/te-engage/references/task-detail.md +61 -0
  143. package/skills/te-engage/references/task-experiment-report.md +51 -0
  144. package/skills/te-engage/references/task-list.md +91 -0
  145. package/skills/te-engage/references/task-metric-detail.md +56 -0
  146. package/skills/te-engage/references/task-stats.md +89 -0
  147. package/skills/te-engage/references/update-channel-status.md +32 -0
  148. package/skills/te-engage/references/update-config-channel-status.md +32 -0
  149. package/skills/te-engage/references/validate-flow-node-config.md +52 -0
  150. package/skills/te-engage/references/whitelist-list.md +19 -0
  151. package/skills/te-meta/SKILL.md +71 -0
  152. package/skills/te-meta/references/batch-create-metadata.md +37 -0
  153. package/skills/te-meta/references/batch-edit-metadata.md +36 -0
  154. package/skills/te-meta/references/create-metric.md +62 -0
  155. package/skills/te-meta/references/create-project-mark-time.md +38 -0
  156. package/skills/te-meta/references/create-virtual-event.md +64 -0
  157. package/skills/te-meta/references/create-virtual-property.md +69 -0
  158. package/skills/te-meta/references/delete-project-mark-times.md +34 -0
  159. package/skills/te-meta/references/delete-track-items.md +35 -0
  160. package/skills/te-meta/references/get-metric.md +32 -0
  161. package/skills/te-meta/references/get-project-config.md +32 -0
  162. package/skills/te-meta/references/get-track-program.md +31 -0
  163. package/skills/te-meta/references/list-entities.md +34 -0
  164. package/skills/te-meta/references/list-events.md +33 -0
  165. package/skills/te-meta/references/list-metrics.md +33 -0
  166. package/skills/te-meta/references/list-project-mark-times.md +33 -0
  167. package/skills/te-meta/references/list-project-users.md +32 -0
  168. package/skills/te-meta/references/list-properties.md +35 -0
  169. package/skills/te-meta/references/save-track-items.md +34 -0
  170. package/skills/te-meta/references/update-metric.md +61 -0
  171. package/skills/te-meta/references/update-project-mark-time.md +39 -0
  172. package/skills/te-shared/SKILL.md +115 -0
@@ -0,0 +1,479 @@
1
+ import {
2
+ callMcpTool,
3
+ parseMcpResult,
4
+ resolveMcpUrl
5
+ } from "./chunk-JD5DXMKL.js";
6
+ import "./chunk-RJNLN3KQ.js";
7
+ import "./chunk-OVQOK35G.js";
8
+
9
+ // src/commands/te-meta/shared.ts
10
+ function createMcpCommand(config) {
11
+ const toolName = config.command.slice(1);
12
+ const mcpService = config.mcpService || "te_analysis";
13
+ return {
14
+ service: "te_meta",
15
+ command: config.command,
16
+ description: config.description,
17
+ flags: config.flags,
18
+ risk: config.risk,
19
+ dryRun: (ctx) => ({
20
+ method: "tools/call",
21
+ url: resolveMcpUrl(ctx.mcpUrl(), ctx.host(), mcpService),
22
+ body: {
23
+ name: toolName,
24
+ arguments: config.buildArgs(ctx)
25
+ }
26
+ }),
27
+ execute: async (ctx) => {
28
+ const url = resolveMcpUrl(ctx.mcpUrl(), ctx.host(), mcpService);
29
+ const result = await callMcpTool(url, toolName, config.buildArgs(ctx), ctx.host());
30
+ return parseMcpResult(result);
31
+ }
32
+ };
33
+ }
34
+ function optionalString(ctx, name) {
35
+ const value = ctx.str(name);
36
+ return value === "" ? void 0 : value;
37
+ }
38
+ function optionalNumber(ctx, name) {
39
+ const value = ctx.str(name);
40
+ return value === "" ? void 0 : Number(value);
41
+ }
42
+ function optionalBoolean(ctx, name) {
43
+ const value = ctx.str(name);
44
+ return value === "" ? void 0 : ctx.bool(name);
45
+ }
46
+ function optionalJson(ctx, name) {
47
+ const value = ctx.str(name);
48
+ return value === "" ? void 0 : ctx.json(name);
49
+ }
50
+ function optionalJsonString(ctx, name) {
51
+ const value = optionalJson(ctx, name);
52
+ return value === void 0 ? void 0 : JSON.stringify(value);
53
+ }
54
+ function requiredJsonString(ctx, name) {
55
+ return JSON.stringify(ctx.json(name));
56
+ }
57
+
58
+ // src/commands/te-meta/meta/list-events.ts
59
+ var listEvents = createMcpCommand({
60
+ command: "+list_events",
61
+ description: "Read-only query for effective system event metadata",
62
+ flags: [
63
+ { name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" },
64
+ { name: "query", type: "string", required: false, desc: "Optional keyword filter", alias: "q" }
65
+ ],
66
+ risk: "read",
67
+ buildArgs: (ctx) => ({
68
+ projectId: ctx.num("project_id"),
69
+ query: optionalString(ctx, "query")
70
+ })
71
+ });
72
+
73
+ // src/commands/te-meta/meta/list-properties.ts
74
+ var listProperties = createMcpCommand({
75
+ command: "+list_properties",
76
+ description: "Read-only query for effective system property metadata",
77
+ flags: [
78
+ { name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" },
79
+ { name: "scope", type: "string", required: false, desc: "Property scope: event or user" },
80
+ { name: "event_name", type: "string", required: false, desc: "Optional event name filter" },
81
+ { name: "query", type: "string", required: false, desc: "Optional keyword filter", alias: "q" }
82
+ ],
83
+ risk: "read",
84
+ buildArgs: (ctx) => ({
85
+ projectId: ctx.num("project_id"),
86
+ scope: optionalString(ctx, "scope"),
87
+ eventName: optionalString(ctx, "event_name"),
88
+ query: optionalString(ctx, "query")
89
+ })
90
+ });
91
+
92
+ // src/commands/te-meta/meta/batch-edit-metadata.ts
93
+ var batchEditMetadata = createMcpCommand({
94
+ command: "+batch_edit_metadata",
95
+ description: "Batch edit effective system metadata only",
96
+ flags: [
97
+ { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
98
+ { name: "type", type: "string", required: true, desc: "Metadata type: event, event_property, or user_property" },
99
+ { name: "items", type: "json", required: true, desc: "Batch edit item list JSON array" }
100
+ ],
101
+ risk: "write",
102
+ mcpService: "te_analysis_extend",
103
+ buildArgs: (ctx) => ({
104
+ projectId: ctx.num("project_id"),
105
+ type: ctx.str("type"),
106
+ items: ctx.json("items")
107
+ })
108
+ });
109
+
110
+ // src/commands/te-meta/meta/batch-create-metadata.ts
111
+ var batchCreateMetadata = createMcpCommand({
112
+ command: "+batch_create_metadata",
113
+ description: "Batch create effective system metadata only",
114
+ flags: [
115
+ { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
116
+ { name: "events", type: "json", required: false, desc: "Event creation list JSON array" },
117
+ { name: "event_properties", type: "json", required: false, desc: "Event property creation list JSON array" },
118
+ { name: "user_properties", type: "json", required: false, desc: "User property creation list JSON array" }
119
+ ],
120
+ risk: "write",
121
+ mcpService: "te_analysis_extend",
122
+ buildArgs: (ctx) => ({
123
+ projectId: ctx.num("project_id"),
124
+ events: optionalJson(ctx, "events"),
125
+ eventProperties: optionalJson(ctx, "event_properties"),
126
+ userProperties: optionalJson(ctx, "user_properties")
127
+ })
128
+ });
129
+
130
+ // src/commands/te-meta/meta/create-virtual-event.ts
131
+ var createVirtualEvent = createMcpCommand({
132
+ command: "+create_virtual_event",
133
+ description: "Create a virtual event by combining multiple events with optional filters",
134
+ flags: [
135
+ { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
136
+ { name: "event_name", type: "string", required: true, desc: "Virtual event name. Must start with 'ta@' and follow the naming constraints in the schema" },
137
+ { name: "event_desc", type: "string", required: true, desc: "Virtual event description" },
138
+ { name: "remark", type: "string", required: false, desc: "Optional remark" },
139
+ { name: "events", type: "json", required: true, desc: "JSON array of events to combine" },
140
+ { name: "filter", type: "json", required: false, desc: "Optional global filter JSON" },
141
+ { name: "override", type: "boolean", required: false, desc: "Whether to override if the event already exists. Default: false" }
142
+ ],
143
+ risk: "write",
144
+ mcpService: "te_analysis_extend",
145
+ buildArgs: (ctx) => ({
146
+ projectId: ctx.num("project_id"),
147
+ eventName: ctx.str("event_name"),
148
+ eventDesc: ctx.str("event_desc"),
149
+ remark: optionalString(ctx, "remark"),
150
+ events: requiredJsonString(ctx, "events"),
151
+ filter: optionalJsonString(ctx, "filter"),
152
+ override: optionalBoolean(ctx, "override")
153
+ })
154
+ });
155
+
156
+ // src/commands/te-meta/meta/create-virtual-property.ts
157
+ var createVirtualProperty = createMcpCommand({
158
+ command: "+create_virtual_property",
159
+ description: "Create a SQL-based virtual property",
160
+ flags: [
161
+ { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
162
+ { name: "property_name", type: "string", required: true, desc: "Property name. Must start with '#vp@' and follow the naming constraints in the schema" },
163
+ { name: "property_desc", type: "string", required: false, desc: "Display name/description" },
164
+ { name: "table_type", type: "string", required: true, desc: "Table type: event or user" },
165
+ { name: "select_type", type: "string", required: true, desc: "Select type: string, number, bool, or datetime" },
166
+ { name: "sql_expression", type: "string", required: true, desc: "SQL expression for computing the property" },
167
+ { name: "sql_event_relation_type", type: "string", required: true, desc: "SQL event relation type: relation_default, relation_always, or relation_by_setting" },
168
+ { name: "related_events", type: "json", required: false, desc: "Optional related events JSON array. Required when sql_event_relation_type is relation_by_setting" },
169
+ { name: "property_remark", type: "string", required: false, desc: "Optional property remark" }
170
+ ],
171
+ risk: "write",
172
+ mcpService: "te_analysis_extend",
173
+ buildArgs: (ctx) => ({
174
+ projectId: ctx.num("project_id"),
175
+ propertyName: ctx.str("property_name"),
176
+ propertyDesc: optionalString(ctx, "property_desc"),
177
+ tableType: ctx.str("table_type"),
178
+ selectType: ctx.str("select_type"),
179
+ sqlExpression: ctx.str("sql_expression"),
180
+ sqlEventRelationType: ctx.str("sql_event_relation_type"),
181
+ relatedEvents: optionalJsonString(ctx, "related_events"),
182
+ propertyRemark: optionalString(ctx, "property_remark")
183
+ })
184
+ });
185
+
186
+ // src/commands/te-meta/meta/list-metrics.ts
187
+ var listMetrics = createMcpCommand({
188
+ command: "+list_metrics",
189
+ description: "List metric metadata in the project",
190
+ flags: [
191
+ { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
192
+ { name: "query", type: "string", required: false, alias: "q", desc: "Optional keyword filter" }
193
+ ],
194
+ risk: "read",
195
+ mcpService: "te_analysis_extend",
196
+ buildArgs: (ctx) => ({
197
+ projectId: ctx.num("project_id"),
198
+ query: optionalString(ctx, "query")
199
+ })
200
+ });
201
+
202
+ // src/commands/te-meta/meta/get-metric.ts
203
+ var getMetric = createMcpCommand({
204
+ command: "+get_metric",
205
+ description: "Get the definition details of a single metric",
206
+ flags: [
207
+ { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
208
+ { name: "metric_id", type: "number", required: true, alias: "m", desc: "Metric ID" }
209
+ ],
210
+ risk: "read",
211
+ mcpService: "te_analysis_extend",
212
+ buildArgs: (ctx) => ({
213
+ projectId: ctx.num("project_id"),
214
+ metricId: ctx.num("metric_id")
215
+ })
216
+ });
217
+
218
+ // src/commands/te-meta/meta/create-metric.ts
219
+ var createMetric = createMcpCommand({
220
+ command: "+create_metric",
221
+ description: "Create a metric from analysis configuration",
222
+ flags: [
223
+ { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
224
+ { name: "name", type: "string", required: true, desc: "Metric name. Must start with a lowercase letter and contain only lowercase letters, digits, and underscores. Maximum length: 80." },
225
+ { name: "display_name", type: "string", required: true, desc: "Metric display name" },
226
+ { name: "remark", type: "string", required: false, desc: "Optional metric remark" },
227
+ { name: "model_type", type: "string", required: true, desc: "Metric model type: event or retention" },
228
+ { name: "events", type: "json", required: true, desc: "Metric events JSON. Use get_analysis_query_schema first to obtain the schema." },
229
+ { name: "params", type: "json", required: true, desc: "Metric parameters JSON. For event, use format config; for retention, use the eventView configuration." }
230
+ ],
231
+ risk: "write",
232
+ mcpService: "te_analysis_extend",
233
+ buildArgs: (ctx) => ({
234
+ projectId: ctx.num("project_id"),
235
+ name: ctx.str("name"),
236
+ displayName: ctx.str("display_name"),
237
+ remark: optionalString(ctx, "remark"),
238
+ modelType: ctx.str("model_type"),
239
+ events: requiredJsonString(ctx, "events"),
240
+ params: requiredJsonString(ctx, "params")
241
+ })
242
+ });
243
+
244
+ // src/commands/te-meta/meta/update-metric.ts
245
+ var updateMetric = createMcpCommand({
246
+ command: "+update_metric",
247
+ description: "Update a metric definition",
248
+ flags: [
249
+ { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
250
+ { name: "metric_id", type: "number", required: true, alias: "m", desc: "Metric ID" },
251
+ { name: "name", type: "string", required: true, desc: "Metric name. Must start with a lowercase letter and contain only lowercase letters, digits, and underscores. Maximum length: 80." },
252
+ { name: "display_name", type: "string", required: true, desc: "Metric display name" },
253
+ { name: "remark", type: "string", required: false, desc: "Optional metric remark" },
254
+ { name: "model_type", type: "string", required: true, desc: "Metric model type: event or retention" },
255
+ { name: "events", type: "json", required: true, desc: "Metric event definition JSON" },
256
+ { name: "params", type: "json", required: false, desc: "Metric parameter definition JSON" }
257
+ ],
258
+ risk: "write",
259
+ mcpService: "te_analysis_extend",
260
+ buildArgs: (ctx) => ({
261
+ projectId: ctx.num("project_id"),
262
+ metricId: ctx.num("metric_id"),
263
+ name: ctx.str("name"),
264
+ displayName: ctx.str("display_name"),
265
+ remark: optionalString(ctx, "remark"),
266
+ modelType: ctx.str("model_type"),
267
+ events: requiredJsonString(ctx, "events"),
268
+ params: optionalJsonString(ctx, "params")
269
+ })
270
+ });
271
+
272
+ // src/commands/te-meta/meta/index.ts
273
+ var commands = [
274
+ listEvents,
275
+ listProperties,
276
+ batchEditMetadata,
277
+ batchCreateMetadata,
278
+ createVirtualEvent,
279
+ createVirtualProperty,
280
+ listMetrics,
281
+ getMetric,
282
+ createMetric,
283
+ updateMetric
284
+ ];
285
+ var meta_default = commands;
286
+
287
+ // src/commands/te-meta/project/get-project-config.ts
288
+ var getProjectConfig = createMcpCommand({
289
+ command: "+get_project_config",
290
+ description: "Get project configuration details including timezone settings",
291
+ flags: [
292
+ { name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" }
293
+ ],
294
+ risk: "read",
295
+ buildArgs: (ctx) => ({
296
+ projectId: ctx.num("project_id")
297
+ })
298
+ });
299
+
300
+ // src/commands/te-meta/project/list-project-users.ts
301
+ var listProjectUsers = createMcpCommand({
302
+ command: "+list_project_users",
303
+ description: "Get all project members",
304
+ flags: [
305
+ { name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" }
306
+ ],
307
+ risk: "read",
308
+ buildArgs: (ctx) => ({
309
+ projectId: ctx.num("project_id")
310
+ })
311
+ });
312
+
313
+ // src/commands/te-meta/project/get-track-program.ts
314
+ var getTrackProgram = createMcpCommand({
315
+ command: "+get_track_program",
316
+ description: "Query tracking-plan metadata (bury program)",
317
+ flags: [
318
+ { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" }
319
+ ],
320
+ risk: "read",
321
+ mcpService: "te_analysis_extend",
322
+ buildArgs: (ctx) => ({
323
+ projectId: ctx.num("project_id")
324
+ })
325
+ });
326
+
327
+ // src/commands/te-meta/project/save-track-items.ts
328
+ var saveTrackItems = createMcpCommand({
329
+ command: "+save_track_items",
330
+ description: "Create or update tracking-plan metadata only",
331
+ flags: [
332
+ { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
333
+ { name: "track_data", type: "json", required: true, desc: "Track program JSON object with events/eventProps/userProps/commonEventProps" }
334
+ ],
335
+ risk: "write",
336
+ mcpService: "te_analysis_extend",
337
+ buildArgs: (ctx) => ({
338
+ projectId: ctx.num("project_id"),
339
+ trackData: requiredJsonString(ctx, "track_data")
340
+ })
341
+ });
342
+
343
+ // src/commands/te-meta/project/delete-track-items.ts
344
+ var deleteTrackItems = createMcpCommand({
345
+ command: "+delete_track_items",
346
+ description: "Delete tracking-plan metadata items only",
347
+ flags: [
348
+ { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
349
+ { name: "delete_data", type: "json", required: true, desc: "Delete payload JSON object with events/eventPropNames/userPropNames/commonEventPropNames" }
350
+ ],
351
+ risk: "write",
352
+ mcpService: "te_analysis_extend",
353
+ buildArgs: (ctx) => ({
354
+ projectId: ctx.num("project_id"),
355
+ deleteData: requiredJsonString(ctx, "delete_data")
356
+ })
357
+ });
358
+
359
+ // src/commands/te-meta/project/create-project-mark-time.ts
360
+ var createProjectMarkTime = createMcpCommand({
361
+ command: "+create_project_mark_time",
362
+ description: "Create a project date marker",
363
+ flags: [
364
+ { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
365
+ { name: "marked_at", type: "string", required: true, desc: "Marked time yyyy-MM-dd HH:mm" },
366
+ { name: "zone_offset", type: "number", required: false, desc: "Marker time zone offset" },
367
+ { name: "content", type: "string", required: true, desc: "Marker content" },
368
+ { name: "is_visible", type: "number", required: false, desc: "Whether the marker is visible. Default: 1" }
369
+ ],
370
+ risk: "write",
371
+ mcpService: "te_analysis_extend",
372
+ buildArgs: (ctx) => ({
373
+ projectId: ctx.num("project_id"),
374
+ markedAt: ctx.str("marked_at"),
375
+ zoneOffset: optionalNumber(ctx, "zone_offset"),
376
+ content: ctx.str("content"),
377
+ isVisible: optionalNumber(ctx, "is_visible")
378
+ })
379
+ });
380
+
381
+ // src/commands/te-meta/project/update-project-mark-time.ts
382
+ var updateProjectMarkTime = createMcpCommand({
383
+ command: "+update_project_mark_time",
384
+ description: "Update an existing project date marker",
385
+ flags: [
386
+ { name: "mark_time_id", type: "number", required: true, desc: "Mark time ID" },
387
+ { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
388
+ { name: "marked_at", type: "string", required: true, desc: "Marked time yyyy-MM-dd HH:mm" },
389
+ { name: "zone_offset", type: "number", required: false, desc: "Marker time zone offset" },
390
+ { name: "content", type: "string", required: true, desc: "Marker content" },
391
+ { name: "is_visible", type: "number", required: false, desc: "Whether the marker is visible. Default: 1" }
392
+ ],
393
+ risk: "write",
394
+ mcpService: "te_analysis_extend",
395
+ buildArgs: (ctx) => ({
396
+ markTimeId: ctx.num("mark_time_id"),
397
+ projectId: ctx.num("project_id"),
398
+ markedAt: ctx.str("marked_at"),
399
+ zoneOffset: optionalNumber(ctx, "zone_offset"),
400
+ content: ctx.str("content"),
401
+ isVisible: optionalNumber(ctx, "is_visible")
402
+ })
403
+ });
404
+
405
+ // src/commands/te-meta/project/list-project-mark-times.ts
406
+ var listProjectMarkTimes = createMcpCommand({
407
+ command: "+list_project_mark_times",
408
+ description: "List project date markers",
409
+ flags: [
410
+ { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
411
+ { name: "zone_offset", type: "number", required: false, desc: "Marker time zone offset" }
412
+ ],
413
+ risk: "read",
414
+ mcpService: "te_analysis_extend",
415
+ buildArgs: (ctx) => ({
416
+ projectId: ctx.num("project_id"),
417
+ zoneOffset: optionalNumber(ctx, "zone_offset")
418
+ })
419
+ });
420
+
421
+ // src/commands/te-meta/project/delete-project-mark-times.ts
422
+ var deleteProjectMarkTimes = createMcpCommand({
423
+ command: "+delete_project_mark_times",
424
+ description: "Delete one or more project date markers",
425
+ flags: [
426
+ { name: "project_id", type: "number", required: true, alias: "p", desc: "Project ID" },
427
+ { name: "mark_time_ids", type: "json", required: true, desc: "Marker ID list JSON array" }
428
+ ],
429
+ risk: "write",
430
+ mcpService: "te_analysis_extend",
431
+ buildArgs: (ctx) => ({
432
+ projectId: ctx.num("project_id"),
433
+ markTimeIds: ctx.json("mark_time_ids")
434
+ })
435
+ });
436
+
437
+ // src/commands/te-meta/project/index.ts
438
+ var commands2 = [
439
+ getProjectConfig,
440
+ listProjectUsers,
441
+ getTrackProgram,
442
+ saveTrackItems,
443
+ deleteTrackItems,
444
+ createProjectMarkTime,
445
+ updateProjectMarkTime,
446
+ listProjectMarkTimes,
447
+ deleteProjectMarkTimes
448
+ ];
449
+ var project_default = commands2;
450
+
451
+ // src/commands/te-meta/entity/list-entities.ts
452
+ var listEntities = createMcpCommand({
453
+ command: "+list_entities",
454
+ description: "List entities in the project",
455
+ flags: [
456
+ { name: "project_id", type: "number", required: true, desc: "Project ID", alias: "p" },
457
+ { name: "event_name", type: "string", required: false, desc: "Optional event name filter" }
458
+ ],
459
+ risk: "read",
460
+ buildArgs: (ctx) => ({
461
+ projectId: ctx.num("project_id"),
462
+ eventName: optionalString(ctx, "event_name")
463
+ })
464
+ });
465
+
466
+ // src/commands/te-meta/entity/index.ts
467
+ var commands3 = [listEntities];
468
+ var entity_default = commands3;
469
+
470
+ // src/commands/te-meta/index.ts
471
+ var commands4 = [
472
+ ...meta_default,
473
+ ...project_default,
474
+ ...entity_default
475
+ ];
476
+ var te_meta_default = commands4;
477
+ export {
478
+ te_meta_default as default
479
+ };
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@thinkingai/ae-cli",
3
+ "version": "1.0.1",
4
+ "description": "CLI tool for ThinkingAI AgenticEngine (AE) analytics platform",
5
+ "type": "module",
6
+ "bin": {
7
+ "ae-cli": "bin/ae-cli.js"
8
+ },
9
+ "main": "dist/index.js",
10
+ "files": [
11
+ "bin/",
12
+ "dist/",
13
+ "skills/",
14
+ "README.md"
15
+ ],
16
+ "scripts": {
17
+ "dev": "tsx src/index.ts",
18
+ "build": "tsup src/index.ts --format esm --outDir dist",
19
+ "verify:te-analysis-tools": "node scripts/verify-te-analysis-tools.mjs",
20
+ "verify:te-audience-tools": "node scripts/verify-te-audience-tools.mjs",
21
+ "verify:te-meta-tools": "node scripts/verify-te-meta-tools.mjs",
22
+ "verify:te-common-tools": "node scripts/verify-te-common-tools.mjs",
23
+ "prepublishOnly": "npm run build",
24
+ "start": "node dist/index.js",
25
+ "test": "npx tsx src/index.ts --help"
26
+ },
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "https://github.com/ThinkingAIAgenticEngine/ae-cli.git"
30
+ },
31
+ "keywords": [
32
+ "thinkingengine",
33
+ "analytics",
34
+ "cli"
35
+ ],
36
+ "author": "ThinkingAI",
37
+ "license": "MIT",
38
+ "engines": {
39
+ "node": ">=18.0.0"
40
+ },
41
+ "dependencies": {
42
+ "cli-table3": "^0.6.5",
43
+ "commander": "^12.1.0",
44
+ "ws": "^8.18.0"
45
+ },
46
+ "devDependencies": {
47
+ "@types/node": "^22.0.0",
48
+ "@types/ws": "^8.5.0",
49
+ "tsup": "^8.0.0",
50
+ "tsx": "^4.0.0",
51
+ "typescript": "^5.5.0"
52
+ }
53
+ }
@@ -0,0 +1,107 @@
1
+ ---
2
+ name: te-analysis
3
+ version: 2.0.0
4
+ description: "TE analysis query and visualization: report (report) and dashboard (dashboard) creation/query, ad-hoc model analysis, user drilldown, alert configuration, entity/event detail queries, analysis SQL, and filter/group-by schemas. Covers event analysis, retention analysis, funnel analysis, SQL analysis, user property analysis, distribution analysis, interval analysis, path analysis, and attribution analysis. Triggers when users mention check data/analyze data/view trends/view conversion funnels/view retention/run path attribution/write analysis SQL/drill into user behavior/edit reports and dashboards/configure alerts."
5
+ metadata:
6
+ requires:
7
+ bins: ["ae-cli"]
8
+ cliHelp: "ae-cli te_analysis --help"
9
+ ---
10
+
11
+ # te-analysis
12
+
13
+ > **CRITICAL - Before starting, you MUST first read [`../te-shared/SKILL.md`](../te-shared/SKILL.md)**: authentication, host configuration, global parameters, and write-operation confirmation rules are all documented there.
14
+ > **CRITICAL - For write operations marked with ⚠️, after a successful execution you MUST first read and follow the "post-write link completion" constraint in [`../te-common/SKILL.md`](../te-common/SKILL.md). You MUST call `te_common +get_resource_url` to complete the link-completion loop.**
15
+ > **CRITICAL - For all commands that require `project_id`, you MUST follow `te-common`'s `PROJECT_ID_GATE` (stop if missing and confirm with the user).**
16
+ > **CRITICAL - Before running any `+<tool_name>` command, you MUST first read the corresponding reference document `./references/<tool-name>.md`.** For example: before running `+get_analysis_query_schema`, you must first read [`./references/get-analysis-query-schema.md`](./references/get-analysis-query-schema.md)
17
+
18
+ ## When to Use
19
+
20
+ When a user needs TE for analysis queries, drilldown details, report/dashboard management, or alert configuration, use `te-analysis`.
21
+
22
+ It applies to requests such as viewing data, analyzing data, checking details, creating reports, and configuring alerts. If the request is for audiences/tags, tracking plans, or project configuration, switch to another skill.
23
+
24
+ - Alerts: view alert definitions, list alerts, get a single alert, create alerts, or update alerts.
25
+ Common commands: `+get_alert_definition_schema`, `+list_alerts`, `+get_alert`, `+create_alert`, `+update_alert`
26
+ - Reports and dashboards: create or query reports, inspect dashboard structure and data, update dashboards, and manage public links and remarks.
27
+ Common commands: `+create_report`, `+query_report_data`, `+create_dashboard`, `+query_dashboard_detail`, `+update_dashboard`
28
+ - Model analysis: run event analysis, retention analysis, funnel analysis, SQL analysis, user property analysis, distribution analysis, interval analysis, path analysis, attribution analysis, heat map, and ranking-list ad-hoc analysis, and support user drilldown and result clustering.
29
+ Common commands: `+query_adhoc`, `+drilldown_users`, `+drilldown_user_events`, `+create_result_cluster`
30
+ - Entities and events: query entity details, event details, or generate the corresponding detail SQL.
31
+ Common commands: `+query_entity_details`, `+query_event_details`, `+build_entity_details_sql`, `+build_event_details_sql`
32
+ - Analysis schema and helpers: get analysis query, filter, and groupby schemas, load available filter conditions, and inspect table columns.
33
+ Common commands: `+get_analysis_query_schema`, `+get_filter_schema`, `+get_groupby_schema`, `+load_filters`, `+get_table_columns`
34
+
35
+ ## When to Switch to Other Skills
36
+
37
+ When the user requests the following, switch to the corresponding skill:
38
+
39
+ | User Intent | Use |
40
+ |---------|--------|
41
+ | Create/query clusters, tags, or cluster schemas | `te-audience` |
42
+ | Manage tracking plans, project configuration, or entity lists | `te-meta` |
43
+ | Ops task flows, processes, or channels | `te-operation` |
44
+
45
+ ## Parameters and Conventions
46
+
47
+ - Command format: `ae-cli te_analysis +<tool_name> [options]`
48
+ - CLI flags use underscores: `--project_id`
49
+ - MCP parameters map automatically to camelCase: `projectId`
50
+ - Pass JSON parameters directly as JSON strings: `'{}'`, `'[1,2]'`
51
+ - Write operations prompt for confirmation; use `--yes` to skip it.
52
+
53
+ ## Tool Groups (31)
54
+
55
+ ### Alerts (5)
56
+ - `+get_alert_definition_schema` ([doc](./references/get-alert-definition-schema.md))
57
+ - `+list_alerts` ([doc](./references/list-alerts.md))
58
+ - `+get_alert` ([doc](./references/get-alert.md))
59
+ - `+create_alert` ([doc](./references/create-alert.md))
60
+ - `+update_alert` ([doc](./references/update-alert.md))
61
+
62
+ ### Reports and Dashboards (13)
63
+ - `+create_report` ([doc](./references/create-report.md)) ⚠️ write operation, after it succeeds you MUST call `te_common +get_resource_url` to complete the link-completion loop
64
+ - `+get_report_definition` ([doc](./references/get-report-definition.md))
65
+ - `+list_reports` ([doc](./references/list-reports.md))
66
+ - `+query_report_data` ([doc](./references/query-report-data.md))
67
+ - `+create_dashboard` ([doc](./references/create-dashboard.md)) ⚠️ write operation, after it succeeds you MUST call `te_common +get_resource_url` to complete the link-completion loop
68
+ - `+list_dashboards` ([doc](./references/list-dashboards.md))
69
+ - `+query_dashboard_detail` ([doc](./references/query-dashboard-detail.md))
70
+ - `+query_dashboard_report_data` ([doc](./references/query-dashboard-report-data.md))
71
+ - `+update_dashboard` ([doc](./references/update-dashboard.md)) ⚠️ write operation, after it succeeds you MUST call `te_common +get_resource_url` to complete the link-completion loop
72
+ - `+create_or_update_dashboard_note` ([doc](./references/create-or-update-dashboard-note.md))
73
+ - `+list_public_access_links` ([doc](./references/list-public-access-links.md))
74
+ - `+create_public_access_link` ([doc](./references/create-public-access-link.md))
75
+ - `+update_public_access_link` ([doc](./references/update-public-access-link.md))
76
+
77
+ ### Model Analysis (6)
78
+ - `+query_adhoc` ([doc](./references/query-adhoc.md))
79
+ - `+drilldown_users` ([doc](./references/drilldown-users.md))
80
+ - `+drilldown_user_events` ([doc](./references/drilldown-user-events.md))
81
+ - `+create_result_cluster` ([doc](./references/create-result-cluster.md)) ⚠️ write operation, after it succeeds you MUST call `te_common +get_resource_url` to complete the link-completion loop
82
+ - `+load_filters` ([doc](./references/load-filters.md))
83
+ - `+get_table_columns` ([doc](./references/get-table-columns.md))
84
+
85
+ ### Entity Details / Event Details
86
+ - `+query_entity_details` ([doc](./references/query-entity-details.md))
87
+ - `+query_event_details` ([doc](./references/query-event-details.md))
88
+ - `+build_entity_details_sql` ([doc](./references/build-entity-details-sql.md))
89
+ - `+build_event_details_sql` ([doc](./references/build-event-details-sql.md))
90
+
91
+ ### Schema (8)
92
+ - `+get_analysis_query_schema` ([doc](./references/get-analysis-query-schema.md))
93
+ - `+get_filter_schema` ([doc](./references/get-filter-schema.md))
94
+ - `+get_groupby_schema` ([doc](./references/get-groupby-schema.md))
95
+
96
+ ## Quick Verification
97
+
98
+ ```bash
99
+ ae-cli te_analysis --help
100
+ npm run verify:te-analysis-tools
101
+ # Example: use dry-run to preview the request (replace project_id with your actual project ID)
102
+ ae-cli te_analysis +query_adhoc --project_id <YOUR_PROJECT_ID> --model_type event --qp "{}" --dry-run
103
+ ```
104
+
105
+ ## Reference Docs
106
+
107
+ See the `references/` directory (31 per-command docs in total).