@thinkingai/ae-cli 1.0.3 → 1.0.18

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 (198) hide show
  1. package/README.md +42 -72
  2. package/README.zh.md +202 -0
  3. package/dist/auth-2UTBG5U3.js +144 -0
  4. package/dist/{auth-BQC5DBE7.js → auth-ECD46NBA.js} +6 -4
  5. package/dist/{chunk-3CDLNXTD.js → chunk-4KQ7H7DY.js} +15 -3
  6. package/dist/{chunk-53FNNCZW.js → chunk-7QBNU44L.js} +101 -3
  7. package/dist/{chunk-ZYXIGPG7.js → chunk-LAAS6ITR.js} +3 -3
  8. package/dist/{chunk-EBFUVWIZ.js → chunk-MR57UIKC.js} +42 -0
  9. package/dist/{client-5QSQBBDB.js → client-O56G2SNJ.js} +3 -3
  10. package/dist/{config-Q7J3Z7Z2.js → config-BU5FHGGE.js} +23 -8
  11. package/dist/index.js +15 -15
  12. package/dist/{raw-G3GKHAPZ.js → raw-A3VN2B6I.js} +4 -4
  13. package/dist/{te-analysis-CHFTDN55.js → te-analysis-UGKESPBE.js} +62 -24
  14. package/dist/{te-audience-M6LQY6M7.js → te-audience-THZNVHYB.js} +61 -21
  15. package/dist/{te-common-BLQ7DVGC.js → te-common-QZOUME3S.js} +6 -33
  16. package/dist/{community-FVDAWGS4.js → te-community-AZVW3NFX.js} +59 -59
  17. package/dist/{te-dataops-V4OTKY35.js → te-dataops-OE5PX2K6.js} +3 -28
  18. package/dist/{te-engage-DXE4R5EW.js → te-engage-RYGEQTYK.js} +4 -22
  19. package/dist/{te-meta-FMM7KCVI.js → te-meta-MGO5BCMG.js} +88 -18
  20. package/package.json +3 -3
  21. package/skills/ae-analysis/SKILL.md +287 -0
  22. package/skills/{te-meta/references/batch-create-metadata.md → ae-analysis/references/batch_create_metadata.md} +3 -3
  23. package/skills/{te-meta/references/batch-edit-metadata.md → ae-analysis/references/batch_edit_metadata.md} +2 -2
  24. package/skills/{te-analysis/references/build-entity-details-sql.md → ae-analysis/references/build_entity_details_sql.md} +9 -9
  25. package/skills/{te-analysis/references/build-event-details-sql.md → ae-analysis/references/build_event_details_sql.md} +9 -9
  26. package/skills/{te-analysis/references/create-alert.md → ae-analysis/references/create_alert.md} +4 -4
  27. package/skills/{te-audience/references/create-cluster.md → ae-analysis/references/create_cluster.md} +23 -19
  28. package/skills/{te-analysis/references/create-dashboard.md → ae-analysis/references/create_dashboard.md} +4 -4
  29. package/skills/{te-meta/references/create-metric.md → ae-analysis/references/create_metric.md} +10 -10
  30. package/skills/{te-analysis/references/create-or-update-dashboard-note.md → ae-analysis/references/create_or_update_dashboard_note.md} +3 -3
  31. package/skills/{te-meta/references/create-project-mark-time.md → ae-analysis/references/create_project_mark_time.md} +3 -3
  32. package/skills/{te-analysis/references/create-public-access-link.md → ae-analysis/references/create_public_access_link.md} +3 -3
  33. package/skills/{te-analysis/references/create-report.md → ae-analysis/references/create_report.md} +9 -9
  34. package/skills/{te-analysis/references/create-result-cluster.md → ae-analysis/references/create_result_cluster.md} +6 -6
  35. package/skills/{te-audience/references/create-tag.md → ae-analysis/references/create_tag.md} +16 -15
  36. package/skills/{te-meta/references/create-virtual-event.md → ae-analysis/references/create_virtual_event.md} +9 -9
  37. package/skills/{te-meta/references/create-virtual-property.md → ae-analysis/references/create_virtual_property.md} +7 -7
  38. package/skills/{te-meta/references/delete-project-mark-times.md → ae-analysis/references/delete_project_mark_times.md} +2 -2
  39. package/skills/{te-meta/references/delete-track-items.md → ae-analysis/references/delete_track_items.md} +2 -2
  40. package/skills/{te-analysis/references/drilldown-user-events.md → ae-analysis/references/drilldown_user_events.md} +8 -8
  41. package/skills/{te-analysis/references/drilldown-users.md → ae-analysis/references/drilldown_users.md} +10 -7
  42. package/skills/ae-analysis/references/generate_track_program.md +51 -0
  43. package/skills/ae-analysis/references/generate_track_sdk_sample.md +43 -0
  44. package/skills/{te-analysis/references/get-alert.md → ae-analysis/references/get_alert.md} +2 -2
  45. package/skills/{te-analysis/references/get-alert-definition-schema.md → ae-analysis/references/get_alert_definition_schema.md} +1 -1
  46. package/skills/ae-analysis/references/get_analysis_query_schema.md +61 -0
  47. package/skills/ae-analysis/references/get_cluster_definition_schema.md +53 -0
  48. package/skills/ae-analysis/references/get_clusters_by_name.md +69 -0
  49. package/skills/{te-analysis/references/get-filter-schema.md → ae-analysis/references/get_filter_schema.md} +1 -1
  50. package/skills/{te-analysis/references/get-groupby-schema.md → ae-analysis/references/get_groupby_schema.md} +1 -1
  51. package/skills/{te-meta/references/get-metric.md → ae-analysis/references/get_metric.md} +2 -2
  52. package/skills/{te-meta/references/get-project-config.md → ae-analysis/references/get_project_config.md} +2 -2
  53. package/skills/{te-analysis/references/get-report-definition.md → ae-analysis/references/get_report_definition.md} +2 -2
  54. package/skills/{te-common/references/get-resource-url.md → ae-analysis/references/get_resource_url.md} +4 -4
  55. package/skills/{te-analysis/references/get-table-columns.md → ae-analysis/references/get_table_columns.md} +2 -2
  56. package/skills/ae-analysis/references/get_tag_definition_schema.md +49 -0
  57. package/skills/ae-analysis/references/get_tags_by_name.md +69 -0
  58. package/skills/{te-meta/references/get-track-program.md → ae-analysis/references/get_track_program.md} +2 -2
  59. package/skills/{te-analysis/references/list-alerts.md → ae-analysis/references/list_alerts.md} +10 -3
  60. package/skills/{te-audience/references/list-cluster-members.md → ae-analysis/references/list_cluster_members.md} +11 -4
  61. package/skills/{te-audience/references/list-clusters.md → ae-analysis/references/list_clusters.md} +14 -4
  62. package/skills/{te-analysis/references/list-dashboards.md → ae-analysis/references/list_dashboards.md} +12 -4
  63. package/skills/{te-meta/references/list-entities.md → ae-analysis/references/list_entities.md} +10 -3
  64. package/skills/{te-meta/references/list-events.md → ae-analysis/references/list_events.md} +12 -5
  65. package/skills/ae-analysis/references/list_metrics.md +45 -0
  66. package/skills/ae-analysis/references/list_project_mark_times.md +42 -0
  67. package/skills/{te-meta/references/list-project-users.md → ae-analysis/references/list_project_users.md} +2 -2
  68. package/skills/{te-common/references/list-projects.md → ae-analysis/references/list_projects.md} +6 -4
  69. package/skills/{te-meta/references/list-properties.md → ae-analysis/references/list_properties.md} +9 -4
  70. package/skills/ae-analysis/references/list_public_access_links.md +41 -0
  71. package/skills/{te-analysis/references/list-reports.md → ae-analysis/references/list_reports.md} +12 -4
  72. package/skills/{te-audience/references/list-tag-members.md → ae-analysis/references/list_tag_members.md} +11 -4
  73. package/skills/{te-audience/references/list-tags.md → ae-analysis/references/list_tags.md} +14 -4
  74. package/skills/{te-analysis/references/load-filters.md → ae-analysis/references/load_filters.md} +3 -3
  75. package/skills/{te-analysis/references/query-adhoc.md → ae-analysis/references/query_adhoc.md} +24 -9
  76. package/skills/{te-analysis/references/query-dashboard-detail.md → ae-analysis/references/query_dashboard_detail.md} +2 -2
  77. package/skills/{te-analysis/references/query-dashboard-report-data.md → ae-analysis/references/query_dashboard_report_data.md} +9 -9
  78. package/skills/{te-analysis/references/query-entity-details.md → ae-analysis/references/query_entity_details.md} +10 -10
  79. package/skills/{te-analysis/references/query-event-details.md → ae-analysis/references/query_event_details.md} +12 -12
  80. package/skills/{te-analysis/references/query-report-data.md → ae-analysis/references/query_report_data.md} +11 -11
  81. package/skills/{te-audience/references/refresh-cluster.md → ae-analysis/references/refresh_cluster.md} +2 -2
  82. package/skills/{te-audience/references/refresh-tag.md → ae-analysis/references/refresh_tag.md} +2 -2
  83. package/skills/{te-meta/references/save-track-items.md → ae-analysis/references/save_track_items.md} +2 -2
  84. package/skills/{te-analysis/references/update-alert.md → ae-analysis/references/update_alert.md} +4 -4
  85. package/skills/{te-audience/references/update-cluster.md → ae-analysis/references/update_cluster.md} +15 -13
  86. package/skills/{te-analysis/references/update-dashboard.md → ae-analysis/references/update_dashboard.md} +3 -3
  87. package/skills/{te-meta/references/update-metric.md → ae-analysis/references/update_metric.md} +9 -9
  88. package/skills/{te-meta/references/update-project-mark-time.md → ae-analysis/references/update_project_mark_time.md} +3 -3
  89. package/skills/{te-analysis/references/update-public-access-link.md → ae-analysis/references/update_public_access_link.md} +3 -3
  90. package/skills/{te-audience/references/update-tag.md → ae-analysis/references/update_tag.md} +15 -14
  91. package/skills/ae-community/SKILL.md +305 -0
  92. package/skills/{te-community → ae-community}/references/community-activity-analysis.md +6 -7
  93. package/skills/{te-community → ae-community}/references/community-analyzing-official-content.md +3 -4
  94. package/skills/{te-community → ae-community}/references/community-analyzing-theme-comment.md +5 -6
  95. package/skills/{te-community → ae-community}/references/community-character-analysis.md +5 -6
  96. package/skills/{te-community → ae-community}/references/community-daily-report.md +7 -8
  97. package/skills/{te-community → ae-community}/references/community-hottopic-insight.md +4 -5
  98. package/skills/{te-community → ae-community}/references/community-weekly-report.md +7 -8
  99. package/skills/{te-community → ae-community}/references/get_channel_info.md +4 -5
  100. package/skills/{te-community → ae-community}/references/get_comment_tag_analysis.md +3 -4
  101. package/skills/{te-community → ae-community}/references/get_comments_summary.md +4 -5
  102. package/skills/{te-community → ae-community}/references/get_corpus_tags.md +3 -4
  103. package/skills/{te-community → ae-community}/references/get_daily_summary.md +3 -4
  104. package/skills/{te-community → ae-community}/references/get_hot_topics.md +3 -4
  105. package/skills/{te-community → ae-community}/references/get_livestream_analysis.md +3 -4
  106. package/skills/{te-community → ae-community}/references/get_livestream_detail.md +4 -5
  107. package/skills/{te-community → ae-community}/references/get_livestream_list.md +3 -4
  108. package/skills/{te-community → ae-community}/references/get_livestream_overview.md +3 -4
  109. package/skills/{te-community → ae-community}/references/get_livestream_room_metrics.md +3 -4
  110. package/skills/{te-community → ae-community}/references/get_livestream_rooms.md +3 -4
  111. package/skills/{te-community → ae-community}/references/get_overview_metrics.md +3 -4
  112. package/skills/{te-community → ae-community}/references/get_post_detail.md +4 -5
  113. package/skills/{te-community → ae-community}/references/get_risk_content.md +5 -6
  114. package/skills/{te-community → ae-community}/references/get_sentiment_overview.md +4 -5
  115. package/skills/{te-community → ae-community}/references/get_tag_trends.md +3 -4
  116. package/skills/{te-community → ae-community}/references/get_topic_detail.md +3 -4
  117. package/skills/{te-community → ae-community}/references/search_posts.md +5 -6
  118. package/skills/{te-dataops → ae-dataops}/SKILL.md +73 -10
  119. package/skills/{te-dataops → ae-dataops}/references/dataops-flow-create.md +1 -1
  120. package/skills/{te-dataops → ae-dataops}/references/dataops-flow-monitor.md +1 -1
  121. package/skills/{te-dataops → ae-dataops}/references/dataops-integration.md +1 -1
  122. package/skills/{te-dataops → ae-dataops}/references/dataops-query.md +1 -1
  123. package/skills/{te-dataops → ae-dataops}/references/dataops-table.md +1 -1
  124. package/skills/{te-engage → ae-engage}/SKILL.md +106 -6
  125. package/skills/{te-engage → ae-engage}/references/add-approver.md +2 -2
  126. package/skills/{te-engage → ae-engage}/references/add-channel.md +2 -2
  127. package/skills/{te-engage → ae-engage}/references/approver-list.md +2 -2
  128. package/skills/{te-engage → ae-engage}/references/cancel-query-by-request-id.md +2 -2
  129. package/skills/{te-engage → ae-engage}/references/channel-detail.md +2 -2
  130. package/skills/{te-engage → ae-engage}/references/channel-list.md +2 -2
  131. package/skills/{te-engage → ae-engage}/references/config-channel-detail.md +2 -2
  132. package/skills/{te-engage → ae-engage}/references/config-channel-list.md +2 -2
  133. package/skills/{te-engage → ae-engage}/references/config-item-analysis-report.md +2 -2
  134. package/skills/{te-engage → ae-engage}/references/config-item-detail.md +2 -2
  135. package/skills/{te-engage → ae-engage}/references/config-item-list.md +2 -2
  136. package/skills/{te-engage → ae-engage}/references/config-item-strategy-comparison.md +2 -2
  137. package/skills/{te-engage → ae-engage}/references/config-item-trigger-report.md +2 -2
  138. package/skills/{te-engage → ae-engage}/references/copy-config-template.md +2 -2
  139. package/skills/{te-engage → ae-engage}/references/delete-channel.md +2 -2
  140. package/skills/{te-engage → ae-engage}/references/delete-config-channel.md +2 -2
  141. package/skills/{te-engage → ae-engage}/references/delete-config-item.md +2 -2
  142. package/skills/{te-engage → ae-engage}/references/delete-flow.md +2 -2
  143. package/skills/{te-engage → ae-engage}/references/flow-ab-split-node-report.md +2 -2
  144. package/skills/{te-engage → ae-engage}/references/flow-detail.md +2 -2
  145. package/skills/{te-engage → ae-engage}/references/flow-list.md +2 -2
  146. package/skills/{te-engage → ae-engage}/references/flow-node-config-schema.md +2 -2
  147. package/skills/{te-engage → ae-engage}/references/flow-node-detail-report.md +2 -2
  148. package/skills/{te-engage → ae-engage}/references/flow-node-overview-report.md +2 -2
  149. package/skills/{te-engage → ae-engage}/references/flow-process-report.md +2 -2
  150. package/skills/{te-engage → ae-engage}/references/manage-flow.md +2 -2
  151. package/skills/{te-engage → ae-engage}/references/manage-strategy.md +2 -2
  152. package/skills/{te-engage → ae-engage}/references/manage-task.md +2 -2
  153. package/skills/{te-engage → ae-engage}/references/modify-flow-base-info.md +2 -2
  154. package/skills/{te-engage → ae-engage}/references/save-flow.md +3 -3
  155. package/skills/{te-engage → ae-engage}/references/strategy-detail.md +2 -2
  156. package/skills/{te-engage → ae-engage}/references/strategy-list.md +2 -2
  157. package/skills/{te-engage → ae-engage}/references/task-data-detail.md +3 -10
  158. package/skills/{te-engage → ae-engage}/references/task-data-overview.md +3 -9
  159. package/skills/{te-engage → ae-engage}/references/task-detail.md +2 -2
  160. package/skills/{te-engage → ae-engage}/references/task-experiment-report.md +3 -9
  161. package/skills/{te-engage → ae-engage}/references/task-list.md +2 -2
  162. package/skills/{te-engage → ae-engage}/references/task-metric-detail.md +3 -9
  163. package/skills/{te-engage → ae-engage}/references/task-stats.md +2 -2
  164. package/skills/{te-engage → ae-engage}/references/update-channel-status.md +2 -2
  165. package/skills/{te-engage → ae-engage}/references/update-config-channel-status.md +2 -2
  166. package/skills/{te-engage → ae-engage}/references/validate-flow-node-config.md +2 -2
  167. package/skills/{te-engage → ae-engage}/references/whitelist-list.md +2 -2
  168. package/dist/auth-DXKYLMO7.js +0 -81
  169. package/dist/auth-JXELJNDS.js +0 -19
  170. package/dist/auth-L3G3A74I.js +0 -67
  171. package/dist/chunk-3GM5LJZR.js +0 -145
  172. package/dist/chunk-JD5DXMKL.js +0 -172
  173. package/dist/chunk-OVQOK35G.js +0 -108
  174. package/dist/chunk-RJNLN3KQ.js +0 -217
  175. package/dist/client-T4VODLA6.js +0 -16
  176. package/dist/community-GMALVSRF.js +0 -684
  177. package/dist/config-V7AXKDMB.js +0 -242
  178. package/dist/raw-ZNVURYMR.js +0 -59
  179. package/dist/te-analysis-7NN3SY3I.js +0 -871
  180. package/dist/te-audience-P43BWMHM.js +0 -350
  181. package/dist/te-common-H3IPTI2I.js +0 -144
  182. package/dist/te-dataops-WCGDBJLF.js +0 -1853
  183. package/dist/te-engage-UTRVNTGU.js +0 -1470
  184. package/dist/te-meta-HGYNXVGF.js +0 -479
  185. package/skills/te-analysis/SKILL.md +0 -107
  186. package/skills/te-analysis/references/get-analysis-query-schema.md +0 -36
  187. package/skills/te-analysis/references/list-public-access-links.md +0 -31
  188. package/skills/te-audience/SKILL.md +0 -63
  189. package/skills/te-audience/references/get-cluster-definition-schema.md +0 -37
  190. package/skills/te-audience/references/get-clusters-by-name.md +0 -32
  191. package/skills/te-audience/references/get-tag-definition-schema.md +0 -32
  192. package/skills/te-audience/references/get-tags-by-name.md +0 -32
  193. package/skills/te-common/SKILL.md +0 -135
  194. package/skills/te-community/SKILL.md +0 -125
  195. package/skills/te-meta/SKILL.md +0 -71
  196. package/skills/te-meta/references/list-metrics.md +0 -33
  197. package/skills/te-meta/references/list-project-mark-times.md +0 -33
  198. package/skills/te-shared/SKILL.md +0 -115
@@ -1,242 +0,0 @@
1
- import {
2
- getAuthStatus,
3
- getToken
4
- } from "./chunk-3CDLNXTD.js";
5
- import {
6
- addHost,
7
- listHosts,
8
- removeHost,
9
- setActiveHost,
10
- updateHostLabel
11
- } from "./chunk-EBFUVWIZ.js";
12
-
13
- // src/commands/config.ts
14
- import * as readline from "readline";
15
- function registerConfig(program) {
16
- program.command("config").description("Interactive TE host configuration manager").action(async () => {
17
- await runConfigUI(program);
18
- });
19
- }
20
- async function runConfigUI(program) {
21
- const hosts = listHosts();
22
- if (hosts.length === 0) {
23
- process.stderr.write("\x1B[1m[ae-cli] No TE hosts configured. Let's add one.\x1B[0m\n\n");
24
- const newHost = await promptNewHost();
25
- if (!newHost) {
26
- process.stderr.write("Cancelled.\n");
27
- return;
28
- }
29
- addHost(newHost.url, newHost.label);
30
- setActiveHost(newHost.url);
31
- process.stderr.write(`
32
- \x1B[32m\u2713\x1B[0m Added and activated: \x1B[1m${newHost.label}\x1B[0m ${newHost.url}
33
- `);
34
- await ensureAuth(newHost.url);
35
- return;
36
- }
37
- await hostManagerLoop(program);
38
- }
39
- async function hostManagerLoop(program) {
40
- while (true) {
41
- const hosts = listHosts();
42
- const items = hosts.map((h) => ({
43
- display: formatHostLine(h),
44
- type: "host",
45
- url: h.url,
46
- label: h.label,
47
- active: h.active
48
- }));
49
- items.push({ display: "\x1B[2m + Add new host...\x1B[0m", type: "add", url: "", label: "", active: false });
50
- const activeIdx = items.findIndex((i) => i.active);
51
- process.stderr.write("\n\x1B[1mTE Host Manager\x1B[0m (\u2191\u2193 select \xB7 Enter switch \xB7 e edit label \xB7 d delete \xB7 a add \xB7 q quit)\n\n");
52
- const result = await interactiveHostSelect(items, activeIdx >= 0 ? activeIdx : 0);
53
- if (result.action === "quit" || result.action === "cancel") {
54
- break;
55
- }
56
- const item = items[result.index];
57
- if (result.action === "select") {
58
- if (item.type === "add") {
59
- await handleAddHost();
60
- } else {
61
- setActiveHost(item.url);
62
- process.stderr.write(`
63
- \x1B[32m\u2713\x1B[0m Switched to: \x1B[1m${item.label}\x1B[0m ${item.url}
64
- `);
65
- await ensureAuth(item.url);
66
- break;
67
- }
68
- } else if (result.action === "edit" && item.type === "host") {
69
- await handleEditLabel(item.url, item.label);
70
- } else if (result.action === "delete" && item.type === "host") {
71
- await handleDeleteHost(item.url, item.label, item.active);
72
- } else if (result.action === "add") {
73
- await handleAddHost();
74
- }
75
- }
76
- }
77
- function formatHostLine(h) {
78
- const marker = h.active ? "\x1B[32m\u25CF\x1B[0m" : "\x1B[2m\u25CB\x1B[0m";
79
- const labelText = h.active ? `\x1B[1;32m${h.label}\x1B[0m` : `\x1B[1m${h.label}\x1B[0m`;
80
- const authInfo = getAuthStatus(h.url);
81
- const authBadge = authInfo.authenticated ? `\x1B[32m\u2713\x1B[0m` : `\x1B[31m\u2717\x1B[0m`;
82
- return `${marker} ${labelText} ${h.url} ${authBadge}`;
83
- }
84
- async function handleAddHost() {
85
- const newHost = await promptNewHost();
86
- if (!newHost) {
87
- process.stderr.write("Cancelled.\n");
88
- return;
89
- }
90
- addHost(newHost.url, newHost.label);
91
- setActiveHost(newHost.url);
92
- process.stderr.write(`
93
- \x1B[32m\u2713\x1B[0m Added and activated: \x1B[1m${newHost.label}\x1B[0m ${newHost.url}
94
- `);
95
- await ensureAuth(newHost.url);
96
- }
97
- async function handleEditLabel(url, currentLabel) {
98
- const rl = readline.createInterface({ input: process.stdin, output: process.stderr });
99
- const newLabel = await new Promise(
100
- (resolve) => rl.question(`
101
- New label [${currentLabel}]: `, (a) => {
102
- rl.close();
103
- resolve(a.trim() || currentLabel);
104
- })
105
- );
106
- if (newLabel !== currentLabel) {
107
- updateHostLabel(url, newLabel);
108
- process.stderr.write(`\x1B[32m\u2713\x1B[0m Label updated: ${newLabel}
109
- `);
110
- }
111
- }
112
- async function handleDeleteHost(url, label, isActive) {
113
- const rl = readline.createInterface({ input: process.stdin, output: process.stderr });
114
- const answer = await new Promise(
115
- (resolve) => rl.question(`
116
- Delete \x1B[1m${label}\x1B[0m (${url})? [y/N]: `, (a) => {
117
- rl.close();
118
- resolve(a.trim().toLowerCase());
119
- })
120
- );
121
- if (answer === "y" || answer === "yes") {
122
- removeHost(url);
123
- process.stderr.write(`\x1B[32m\u2713\x1B[0m Deleted: ${label}
124
- `);
125
- if (isActive) {
126
- const remaining = listHosts();
127
- if (remaining.length > 0) {
128
- process.stderr.write(` Active host switched to: ${remaining[0].label}
129
- `);
130
- } else {
131
- process.stderr.write(" No hosts remaining. Run ae-cli config to add one.\n");
132
- }
133
- }
134
- }
135
- }
136
- async function ensureAuth(hostUrl) {
137
- const status = getAuthStatus(hostUrl);
138
- if (status.authenticated) {
139
- process.stderr.write(`\x1B[32m\u2713\x1B[0m Token valid for ${hostUrl}
140
- `);
141
- return;
142
- }
143
- process.stderr.write(`
144
- \x1B[33m!\x1B[0m No valid token for ${hostUrl}. Starting login...
145
- `);
146
- try {
147
- await getToken(hostUrl);
148
- process.stderr.write(`\x1B[32m\u2713\x1B[0m Authenticated to ${hostUrl}
149
- `);
150
- } catch (err) {
151
- process.stderr.write(`\x1B[31m\u2717\x1B[0m Auth failed: ${err.message}
152
- `);
153
- process.stderr.write(` You can set token manually: ae-cli auth set-token <token>
154
- `);
155
- }
156
- }
157
- async function promptNewHost() {
158
- const rl = readline.createInterface({ input: process.stdin, output: process.stderr });
159
- const ask = (q) => new Promise((resolve) => rl.question(q, (a) => resolve(a.trim())));
160
- const url = await ask("TE host URL (e.g., https://ta.thinkingdata.cn): ");
161
- if (!url) {
162
- rl.close();
163
- return null;
164
- }
165
- const label = await ask("Label: ");
166
- rl.close();
167
- if (!label) return null;
168
- return { url: normalizeUrl(url), label };
169
- }
170
- function normalizeUrl(url) {
171
- if (!url.startsWith("http://") && !url.startsWith("https://")) {
172
- url = `https://${url}`;
173
- }
174
- return url.replace(/\/$/, "");
175
- }
176
- function interactiveHostSelect(items, initialIndex) {
177
- return new Promise((resolve) => {
178
- let cursor = initialIndex;
179
- const stdin = process.stdin;
180
- const stderr = process.stderr;
181
- let renderCount = 0;
182
- stderr.write("\x1B[?25l");
183
- function render() {
184
- if (renderCount > 0) {
185
- stderr.write(`\x1B[${items.length}A`);
186
- }
187
- for (let i = 0; i < items.length; i++) {
188
- const pointer = i === cursor ? "\x1B[36m\u276F\x1B[0m" : " ";
189
- stderr.write(`${pointer} ${items[i].display}\x1B[K
190
- `);
191
- }
192
- renderCount++;
193
- }
194
- render();
195
- if (!stdin.isTTY) {
196
- stderr.write("\x1B[?25h");
197
- resolve({ action: "select", index: initialIndex });
198
- return;
199
- }
200
- stdin.setRawMode(true);
201
- stdin.resume();
202
- stdin.setEncoding("utf8");
203
- function cleanup() {
204
- stdin.setRawMode(false);
205
- stdin.pause();
206
- stdin.removeListener("data", onData);
207
- stderr.write("\x1B[?25h");
208
- }
209
- function onData(key) {
210
- if (key === "\x1B[A" || key === "k") {
211
- cursor = (cursor - 1 + items.length) % items.length;
212
- render();
213
- } else if (key === "\x1B[B" || key === "j") {
214
- cursor = (cursor + 1) % items.length;
215
- render();
216
- } else if (key === "\r" || key === "\n") {
217
- cleanup();
218
- resolve({ action: "select", index: cursor });
219
- } else if (key === "e" || key === "E") {
220
- if (items[cursor].type === "host") {
221
- cleanup();
222
- resolve({ action: "edit", index: cursor });
223
- }
224
- } else if (key === "d" || key === "D") {
225
- if (items[cursor].type === "host") {
226
- cleanup();
227
- resolve({ action: "delete", index: cursor });
228
- }
229
- } else if (key === "a" || key === "A") {
230
- cleanup();
231
- resolve({ action: "add", index: cursor });
232
- } else if (key === "q" || key === "Q" || key === "\x1B" || key === "") {
233
- cleanup();
234
- resolve({ action: "quit", index: cursor });
235
- }
236
- }
237
- stdin.on("data", onData);
238
- });
239
- }
240
- export {
241
- registerConfig
242
- };
@@ -1,59 +0,0 @@
1
- import {
2
- printError,
3
- printOutput
4
- } from "./chunk-KM57HI5B.js";
5
- import {
6
- httpGet,
7
- httpPost
8
- } from "./chunk-3GM5LJZR.js";
9
- import {
10
- resolveHost
11
- } from "./chunk-RJNLN3KQ.js";
12
- import "./chunk-OVQOK35G.js";
13
-
14
- // src/api/raw.ts
15
- function registerApi(program) {
16
- program.command("api").description("Raw API call: ae-cli api <METHOD> <PATH> [options]").argument("<method>", "HTTP method (GET, POST)").argument("<path>", "API path (e.g., /v1/ta/event/catalog/listEvent)").option("--params <json>", "URL parameters as JSON").option("--data <json>", "Request body as JSON").action(async (method, apiPath, opts) => {
17
- const globalOpts = program.opts();
18
- const host = resolveHost(globalOpts.host);
19
- const format = globalOpts.format || "json";
20
- const jq = globalOpts.jq;
21
- if (!host) {
22
- printError("config", "No TE host configured.", "Run: ae-cli config set-host");
23
- process.exit(1);
24
- }
25
- try {
26
- let params = {};
27
- let body = void 0;
28
- if (opts.params) {
29
- try {
30
- params = JSON.parse(opts.params);
31
- } catch {
32
- printError("validation", `Invalid JSON for --params: ${opts.params}`);
33
- process.exit(1);
34
- }
35
- }
36
- if (opts.data) {
37
- try {
38
- body = JSON.parse(opts.data);
39
- } catch {
40
- printError("validation", `Invalid JSON for --data: ${opts.data}`);
41
- process.exit(1);
42
- }
43
- }
44
- let result;
45
- if (method.toUpperCase() === "GET") {
46
- result = await httpGet(apiPath, params, host);
47
- } else {
48
- result = await httpPost(apiPath, params, body, host);
49
- }
50
- printOutput(result, format, jq);
51
- } catch (err) {
52
- printError("api", err.message);
53
- process.exit(1);
54
- }
55
- });
56
- }
57
- export {
58
- registerApi
59
- };