@thinkingai/ae-cli 1.0.1 → 1.0.3

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 (170) hide show
  1. package/README.md +16 -13
  2. package/dist/auth-BQC5DBE7.js +19 -0
  3. package/dist/auth-DXKYLMO7.js +81 -0
  4. package/dist/chunk-3CDLNXTD.js +218 -0
  5. package/dist/chunk-53FNNCZW.js +174 -0
  6. package/dist/chunk-EBFUVWIZ.js +127 -0
  7. package/dist/chunk-ZYXIGPG7.js +148 -0
  8. package/dist/client-T4VODLA6.js +16 -0
  9. package/dist/community-FVDAWGS4.js +684 -0
  10. package/dist/config-V7AXKDMB.js +242 -0
  11. package/dist/index.js +16 -15
  12. package/dist/raw-G3GKHAPZ.js +61 -0
  13. package/dist/te-analysis-CHFTDN55.js +871 -0
  14. package/dist/te-audience-M6LQY6M7.js +350 -0
  15. package/dist/te-common-BLQ7DVGC.js +144 -0
  16. package/dist/te-dataops-V4OTKY35.js +1853 -0
  17. package/dist/te-engage-DXE4R5EW.js +1470 -0
  18. package/dist/te-meta-FMM7KCVI.js +479 -0
  19. package/package.json +7 -5
  20. package/skills/te-analysis/SKILL.md +10 -10
  21. package/skills/te-analysis/references/build-entity-details-sql.md +10 -10
  22. package/skills/te-analysis/references/build-event-details-sql.md +10 -10
  23. package/skills/te-analysis/references/create-alert.md +4 -4
  24. package/skills/te-analysis/references/create-dashboard.md +4 -4
  25. package/skills/te-analysis/references/create-or-update-dashboard-note.md +4 -4
  26. package/skills/te-analysis/references/create-public-access-link.md +4 -4
  27. package/skills/te-analysis/references/create-report.md +10 -10
  28. package/skills/te-analysis/references/create-result-cluster.md +4 -4
  29. package/skills/te-analysis/references/drilldown-user-events.md +6 -6
  30. package/skills/te-analysis/references/drilldown-users.md +4 -4
  31. package/skills/te-analysis/references/get-alert-definition-schema.md +3 -3
  32. package/skills/te-analysis/references/get-alert.md +3 -3
  33. package/skills/te-analysis/references/get-analysis-query-schema.md +4 -4
  34. package/skills/te-analysis/references/get-filter-schema.md +3 -3
  35. package/skills/te-analysis/references/get-groupby-schema.md +3 -3
  36. package/skills/te-analysis/references/get-report-definition.md +3 -3
  37. package/skills/te-analysis/references/get-table-columns.md +3 -3
  38. package/skills/te-analysis/references/list-alerts.md +4 -4
  39. package/skills/te-analysis/references/list-dashboards.md +4 -4
  40. package/skills/te-analysis/references/list-public-access-links.md +3 -3
  41. package/skills/te-analysis/references/list-reports.md +4 -4
  42. package/skills/te-analysis/references/load-filters.md +4 -4
  43. package/skills/te-analysis/references/query-adhoc.md +10 -10
  44. package/skills/te-analysis/references/query-dashboard-detail.md +3 -3
  45. package/skills/te-analysis/references/query-dashboard-report-data.md +9 -9
  46. package/skills/te-analysis/references/query-entity-details.md +10 -10
  47. package/skills/te-analysis/references/query-event-details.md +10 -10
  48. package/skills/te-analysis/references/query-report-data.md +11 -11
  49. package/skills/te-analysis/references/update-alert.md +4 -4
  50. package/skills/te-analysis/references/update-dashboard.md +4 -4
  51. package/skills/te-analysis/references/update-public-access-link.md +4 -4
  52. package/skills/te-audience/SKILL.md +5 -5
  53. package/skills/te-audience/references/create-cluster.md +10 -10
  54. package/skills/te-audience/references/create-tag.md +10 -10
  55. package/skills/te-audience/references/get-cluster-definition-schema.md +9 -9
  56. package/skills/te-audience/references/get-clusters-by-name.md +3 -3
  57. package/skills/te-audience/references/get-tag-definition-schema.md +3 -3
  58. package/skills/te-audience/references/get-tags-by-name.md +3 -3
  59. package/skills/te-audience/references/list-cluster-members.md +4 -4
  60. package/skills/te-audience/references/list-clusters.md +4 -4
  61. package/skills/te-audience/references/list-tag-members.md +4 -4
  62. package/skills/te-audience/references/list-tags.md +4 -4
  63. package/skills/te-audience/references/refresh-cluster.md +3 -3
  64. package/skills/te-audience/references/refresh-tag.md +3 -3
  65. package/skills/te-audience/references/update-cluster.md +9 -9
  66. package/skills/te-audience/references/update-tag.md +10 -10
  67. package/skills/te-common/SKILL.md +2 -2
  68. package/skills/te-common/references/get-resource-url.md +5 -5
  69. package/skills/te-common/references/list-projects.md +3 -3
  70. package/skills/te-community/SKILL.md +61 -69
  71. package/skills/te-community/references/community-activity-analysis.md +43 -43
  72. package/skills/te-community/references/community-analyzing-official-content.md +47 -47
  73. package/skills/te-community/references/community-analyzing-theme-comment.md +87 -87
  74. package/skills/te-community/references/community-character-analysis.md +44 -44
  75. package/skills/te-community/references/community-daily-report.md +56 -53
  76. package/skills/te-community/references/community-hottopic-insight.md +81 -87
  77. package/skills/te-community/references/community-weekly-report.md +54 -53
  78. package/skills/te-community/references/get_channel_info.md +9 -9
  79. package/skills/te-community/references/get_comment_tag_analysis.md +15 -15
  80. package/skills/te-community/references/get_comments_summary.md +15 -15
  81. package/skills/te-community/references/get_corpus_tags.md +9 -9
  82. package/skills/te-community/references/get_daily_summary.md +10 -10
  83. package/skills/te-community/references/get_hot_topics.md +12 -12
  84. package/skills/te-community/references/get_livestream_analysis.md +9 -9
  85. package/skills/te-community/references/get_livestream_detail.md +19 -19
  86. package/skills/te-community/references/get_livestream_list.md +13 -13
  87. package/skills/te-community/references/get_livestream_overview.md +11 -11
  88. package/skills/te-community/references/get_livestream_room_metrics.md +12 -12
  89. package/skills/te-community/references/get_livestream_rooms.md +12 -12
  90. package/skills/te-community/references/get_overview_metrics.md +12 -12
  91. package/skills/te-community/references/get_post_detail.md +21 -21
  92. package/skills/te-community/references/get_risk_content.md +23 -23
  93. package/skills/te-community/references/get_sentiment_overview.md +16 -16
  94. package/skills/te-community/references/get_tag_trends.md +13 -13
  95. package/skills/te-community/references/get_topic_detail.md +12 -12
  96. package/skills/te-community/references/search_posts.md +26 -26
  97. package/skills/te-dataops/SKILL.md +390 -392
  98. package/skills/te-dataops/references/dataops-flow-create.md +87 -87
  99. package/skills/te-dataops/references/dataops-flow-monitor.md +65 -65
  100. package/skills/te-dataops/references/dataops-integration.md +90 -85
  101. package/skills/te-dataops/references/dataops-query.md +58 -58
  102. package/skills/te-dataops/references/dataops-table.md +63 -63
  103. package/skills/te-engage/SKILL.md +103 -103
  104. package/skills/te-engage/references/add-approver.md +11 -11
  105. package/skills/te-engage/references/add-channel.md +34 -34
  106. package/skills/te-engage/references/approver-list.md +8 -8
  107. package/skills/te-engage/references/cancel-query-by-request-id.md +10 -10
  108. package/skills/te-engage/references/channel-detail.md +13 -13
  109. package/skills/te-engage/references/channel-list.md +15 -15
  110. package/skills/te-engage/references/config-channel-detail.md +10 -10
  111. package/skills/te-engage/references/config-channel-list.md +11 -11
  112. package/skills/te-engage/references/config-item-analysis-report.md +21 -21
  113. package/skills/te-engage/references/config-item-detail.md +10 -10
  114. package/skills/te-engage/references/config-item-list.md +8 -8
  115. package/skills/te-engage/references/config-item-strategy-comparison.md +14 -14
  116. package/skills/te-engage/references/config-item-trigger-report.md +26 -26
  117. package/skills/te-engage/references/copy-config-template.md +16 -16
  118. package/skills/te-engage/references/delete-channel.md +11 -11
  119. package/skills/te-engage/references/delete-config-channel.md +11 -11
  120. package/skills/te-engage/references/delete-config-item.md +12 -12
  121. package/skills/te-engage/references/delete-flow.md +11 -11
  122. package/skills/te-engage/references/flow-ab-split-node-report.md +29 -29
  123. package/skills/te-engage/references/flow-detail.md +19 -19
  124. package/skills/te-engage/references/flow-list.md +8 -8
  125. package/skills/te-engage/references/flow-node-config-schema.md +11 -11
  126. package/skills/te-engage/references/flow-node-detail-report.md +30 -30
  127. package/skills/te-engage/references/flow-node-overview-report.md +27 -27
  128. package/skills/te-engage/references/flow-process-report.md +32 -32
  129. package/skills/te-engage/references/manage-flow.md +44 -44
  130. package/skills/te-engage/references/manage-strategy.md +37 -37
  131. package/skills/te-engage/references/manage-task.md +20 -20
  132. package/skills/te-engage/references/modify-flow-base-info.md +14 -14
  133. package/skills/te-engage/references/save-flow.md +264 -263
  134. package/skills/te-engage/references/strategy-detail.md +16 -16
  135. package/skills/te-engage/references/strategy-list.md +10 -10
  136. package/skills/te-engage/references/task-data-detail.md +47 -47
  137. package/skills/te-engage/references/task-data-overview.md +23 -23
  138. package/skills/te-engage/references/task-detail.md +18 -18
  139. package/skills/te-engage/references/task-experiment-report.md +26 -26
  140. package/skills/te-engage/references/task-list.md +35 -35
  141. package/skills/te-engage/references/task-metric-detail.md +31 -31
  142. package/skills/te-engage/references/task-stats.md +31 -31
  143. package/skills/te-engage/references/update-channel-status.md +13 -13
  144. package/skills/te-engage/references/update-config-channel-status.md +14 -14
  145. package/skills/te-engage/references/validate-flow-node-config.md +15 -15
  146. package/skills/te-engage/references/whitelist-list.md +8 -8
  147. package/skills/te-meta/SKILL.md +5 -5
  148. package/skills/te-meta/references/batch-create-metadata.md +4 -4
  149. package/skills/te-meta/references/batch-edit-metadata.md +3 -3
  150. package/skills/te-meta/references/create-metric.md +12 -12
  151. package/skills/te-meta/references/create-project-mark-time.md +4 -4
  152. package/skills/te-meta/references/create-virtual-event.md +10 -10
  153. package/skills/te-meta/references/create-virtual-property.md +8 -8
  154. package/skills/te-meta/references/delete-project-mark-times.md +3 -3
  155. package/skills/te-meta/references/delete-track-items.md +3 -3
  156. package/skills/te-meta/references/get-metric.md +3 -3
  157. package/skills/te-meta/references/get-project-config.md +3 -3
  158. package/skills/te-meta/references/get-track-program.md +3 -3
  159. package/skills/te-meta/references/list-entities.md +4 -4
  160. package/skills/te-meta/references/list-events.md +4 -4
  161. package/skills/te-meta/references/list-metrics.md +4 -4
  162. package/skills/te-meta/references/list-project-mark-times.md +4 -4
  163. package/skills/te-meta/references/list-project-users.md +3 -3
  164. package/skills/te-meta/references/list-properties.md +4 -4
  165. package/skills/te-meta/references/save-track-items.md +3 -3
  166. package/skills/te-meta/references/update-metric.md +10 -10
  167. package/skills/te-meta/references/update-project-mark-time.md +4 -4
  168. package/skills/te-shared/SKILL.md +8 -8
  169. package/skills/te-community/references/community-release-analysis.md +0 -79
  170. package/skills/te-dataops/references/dataops-operations.md +0 -107
@@ -0,0 +1,242 @@
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
+ };
package/dist/index.js CHANGED
@@ -3,8 +3,9 @@ import {
3
3
  printOutput
4
4
  } from "./chunk-KM57HI5B.js";
5
5
  import {
6
- getActiveHost
7
- } from "./chunk-OVQOK35G.js";
6
+ getActiveHost,
7
+ safeJsonParse
8
+ } from "./chunk-EBFUVWIZ.js";
8
9
 
9
10
  // src/index.ts
10
11
  import { Command as CommanderCommand } from "commander";
@@ -61,7 +62,7 @@ function createRuntimeContext(cmd, opts, globalOpts) {
61
62
  let _clientModule = null;
62
63
  async function getClient() {
63
64
  if (!_clientModule) {
64
- _clientModule = await import("./client-5QSQBBDB.js");
65
+ _clientModule = await import("./client-T4VODLA6.js");
65
66
  }
66
67
  return _clientModule;
67
68
  }
@@ -81,7 +82,7 @@ function createRuntimeContext(cmd, opts, globalOpts) {
81
82
  if (val === void 0 || val === null) return void 0;
82
83
  if (typeof val === "object") return val;
83
84
  try {
84
- return JSON.parse(String(val));
85
+ return safeJsonParse(String(val));
85
86
  } catch {
86
87
  printError("validation", `Invalid JSON for --${name}: ${val}`);
87
88
  process.exit(1);
@@ -104,7 +105,7 @@ function createRuntimeContext(cmd, opts, globalOpts) {
104
105
  return client.queryReportData(projectId, reportId, qp, eventModel, options, ctx.host());
105
106
  },
106
107
  async token() {
107
- const { getToken } = await import("./auth-JXELJNDS.js");
108
+ const { getToken } = await import("./auth-BQC5DBE7.js");
108
109
  return getToken(ctx.host());
109
110
  },
110
111
  host() {
@@ -209,37 +210,37 @@ program.name("ae-cli").version(version).description("CLI tool for ThinkingEngine
209
210
  async function loadCommands() {
210
211
  const commands = [];
211
212
  try {
212
- const teAnalysis = await import("./te-analysis-7NN3SY3I.js");
213
+ const teAnalysis = await import("./te-analysis-CHFTDN55.js");
213
214
  commands.push(...teAnalysis.default);
214
215
  } catch {
215
216
  }
216
217
  try {
217
- const teAudience = await import("./te-audience-P43BWMHM.js");
218
+ const teAudience = await import("./te-audience-M6LQY6M7.js");
218
219
  commands.push(...teAudience.default);
219
220
  } catch {
220
221
  }
221
222
  try {
222
- const teMeta = await import("./te-meta-HGYNXVGF.js");
223
+ const teMeta = await import("./te-meta-FMM7KCVI.js");
223
224
  commands.push(...teMeta.default);
224
225
  } catch {
225
226
  }
226
227
  try {
227
- const teCommon = await import("./te-common-H3IPTI2I.js");
228
+ const teCommon = await import("./te-common-BLQ7DVGC.js");
228
229
  commands.push(...teCommon.default);
229
230
  } catch {
230
231
  }
231
232
  try {
232
- const engage = await import("./te-engage-UTRVNTGU.js");
233
+ const engage = await import("./te-engage-DXE4R5EW.js");
233
234
  commands.push(...engage.default);
234
235
  } catch {
235
236
  }
236
237
  try {
237
- const community = await import("./community-GMALVSRF.js");
238
+ const community = await import("./community-FVDAWGS4.js");
238
239
  commands.push(...community.default);
239
240
  } catch {
240
241
  }
241
242
  try {
242
- const dataops = await import("./te-dataops-WCGDBJLF.js");
243
+ const dataops = await import("./te-dataops-V4OTKY35.js");
243
244
  commands.push(...dataops.default);
244
245
  } catch {
245
246
  }
@@ -247,21 +248,21 @@ async function loadCommands() {
247
248
  }
248
249
  async function registerAuthCommands() {
249
250
  try {
250
- const { registerAuth } = await import("./auth-L3G3A74I.js");
251
+ const { registerAuth } = await import("./auth-DXKYLMO7.js");
251
252
  registerAuth(program);
252
253
  } catch {
253
254
  }
254
255
  }
255
256
  async function registerConfigCommands() {
256
257
  try {
257
- const { registerConfig } = await import("./config-Q7J3Z7Z2.js");
258
+ const { registerConfig } = await import("./config-V7AXKDMB.js");
258
259
  registerConfig(program);
259
260
  } catch {
260
261
  }
261
262
  }
262
263
  async function registerApiCommand() {
263
264
  try {
264
- const { registerApi } = await import("./raw-ZNVURYMR.js");
265
+ const { registerApi } = await import("./raw-G3GKHAPZ.js");
265
266
  registerApi(program);
266
267
  } catch {
267
268
  }
@@ -0,0 +1,61 @@
1
+ import {
2
+ printError,
3
+ printOutput
4
+ } from "./chunk-KM57HI5B.js";
5
+ import {
6
+ httpGet,
7
+ httpPost
8
+ } from "./chunk-ZYXIGPG7.js";
9
+ import {
10
+ resolveHost
11
+ } from "./chunk-3CDLNXTD.js";
12
+ import {
13
+ safeJsonParse
14
+ } from "./chunk-EBFUVWIZ.js";
15
+
16
+ // src/api/raw.ts
17
+ function registerApi(program) {
18
+ 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) => {
19
+ const globalOpts = program.opts();
20
+ const host = resolveHost(globalOpts.host);
21
+ const format = globalOpts.format || "json";
22
+ const jq = globalOpts.jq;
23
+ if (!host) {
24
+ printError("config", "No TE host configured.", "Run: ae-cli config set-host");
25
+ process.exit(1);
26
+ }
27
+ try {
28
+ let params = {};
29
+ let body = void 0;
30
+ if (opts.params) {
31
+ try {
32
+ params = safeJsonParse(opts.params);
33
+ } catch {
34
+ printError("validation", `Invalid JSON for --params: ${opts.params}`);
35
+ process.exit(1);
36
+ }
37
+ }
38
+ if (opts.data) {
39
+ try {
40
+ body = safeJsonParse(opts.data);
41
+ } catch {
42
+ printError("validation", `Invalid JSON for --data: ${opts.data}`);
43
+ process.exit(1);
44
+ }
45
+ }
46
+ let result;
47
+ if (method.toUpperCase() === "GET") {
48
+ result = await httpGet(apiPath, params, host);
49
+ } else {
50
+ result = await httpPost(apiPath, params, body, host);
51
+ }
52
+ printOutput(result, format, jq);
53
+ } catch (err) {
54
+ printError("api", err.message);
55
+ process.exit(1);
56
+ }
57
+ });
58
+ }
59
+ export {
60
+ registerApi
61
+ };