@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.
- package/README.md +42 -72
- package/README.zh.md +202 -0
- package/dist/auth-2UTBG5U3.js +144 -0
- package/dist/{auth-BQC5DBE7.js → auth-ECD46NBA.js} +6 -4
- package/dist/{chunk-3CDLNXTD.js → chunk-4KQ7H7DY.js} +15 -3
- package/dist/{chunk-53FNNCZW.js → chunk-7QBNU44L.js} +101 -3
- package/dist/{chunk-ZYXIGPG7.js → chunk-LAAS6ITR.js} +3 -3
- package/dist/{chunk-EBFUVWIZ.js → chunk-MR57UIKC.js} +42 -0
- package/dist/{client-5QSQBBDB.js → client-O56G2SNJ.js} +3 -3
- package/dist/{config-Q7J3Z7Z2.js → config-BU5FHGGE.js} +23 -8
- package/dist/index.js +15 -15
- package/dist/{raw-G3GKHAPZ.js → raw-A3VN2B6I.js} +4 -4
- package/dist/{te-analysis-CHFTDN55.js → te-analysis-UGKESPBE.js} +62 -24
- package/dist/{te-audience-M6LQY6M7.js → te-audience-THZNVHYB.js} +61 -21
- package/dist/{te-common-BLQ7DVGC.js → te-common-QZOUME3S.js} +6 -33
- package/dist/{community-FVDAWGS4.js → te-community-AZVW3NFX.js} +59 -59
- package/dist/{te-dataops-V4OTKY35.js → te-dataops-OE5PX2K6.js} +3 -28
- package/dist/{te-engage-DXE4R5EW.js → te-engage-RYGEQTYK.js} +4 -22
- package/dist/{te-meta-FMM7KCVI.js → te-meta-MGO5BCMG.js} +88 -18
- package/package.json +3 -3
- package/skills/ae-analysis/SKILL.md +287 -0
- package/skills/{te-meta/references/batch-create-metadata.md → ae-analysis/references/batch_create_metadata.md} +3 -3
- package/skills/{te-meta/references/batch-edit-metadata.md → ae-analysis/references/batch_edit_metadata.md} +2 -2
- package/skills/{te-analysis/references/build-entity-details-sql.md → ae-analysis/references/build_entity_details_sql.md} +9 -9
- package/skills/{te-analysis/references/build-event-details-sql.md → ae-analysis/references/build_event_details_sql.md} +9 -9
- package/skills/{te-analysis/references/create-alert.md → ae-analysis/references/create_alert.md} +4 -4
- package/skills/{te-audience/references/create-cluster.md → ae-analysis/references/create_cluster.md} +23 -19
- package/skills/{te-analysis/references/create-dashboard.md → ae-analysis/references/create_dashboard.md} +4 -4
- package/skills/{te-meta/references/create-metric.md → ae-analysis/references/create_metric.md} +10 -10
- package/skills/{te-analysis/references/create-or-update-dashboard-note.md → ae-analysis/references/create_or_update_dashboard_note.md} +3 -3
- package/skills/{te-meta/references/create-project-mark-time.md → ae-analysis/references/create_project_mark_time.md} +3 -3
- package/skills/{te-analysis/references/create-public-access-link.md → ae-analysis/references/create_public_access_link.md} +3 -3
- package/skills/{te-analysis/references/create-report.md → ae-analysis/references/create_report.md} +9 -9
- package/skills/{te-analysis/references/create-result-cluster.md → ae-analysis/references/create_result_cluster.md} +6 -6
- package/skills/{te-audience/references/create-tag.md → ae-analysis/references/create_tag.md} +16 -15
- package/skills/{te-meta/references/create-virtual-event.md → ae-analysis/references/create_virtual_event.md} +9 -9
- package/skills/{te-meta/references/create-virtual-property.md → ae-analysis/references/create_virtual_property.md} +7 -7
- package/skills/{te-meta/references/delete-project-mark-times.md → ae-analysis/references/delete_project_mark_times.md} +2 -2
- package/skills/{te-meta/references/delete-track-items.md → ae-analysis/references/delete_track_items.md} +2 -2
- package/skills/{te-analysis/references/drilldown-user-events.md → ae-analysis/references/drilldown_user_events.md} +8 -8
- package/skills/{te-analysis/references/drilldown-users.md → ae-analysis/references/drilldown_users.md} +10 -7
- package/skills/ae-analysis/references/generate_track_program.md +51 -0
- package/skills/ae-analysis/references/generate_track_sdk_sample.md +43 -0
- package/skills/{te-analysis/references/get-alert.md → ae-analysis/references/get_alert.md} +2 -2
- package/skills/{te-analysis/references/get-alert-definition-schema.md → ae-analysis/references/get_alert_definition_schema.md} +1 -1
- package/skills/ae-analysis/references/get_analysis_query_schema.md +61 -0
- package/skills/ae-analysis/references/get_cluster_definition_schema.md +53 -0
- package/skills/ae-analysis/references/get_clusters_by_name.md +69 -0
- package/skills/{te-analysis/references/get-filter-schema.md → ae-analysis/references/get_filter_schema.md} +1 -1
- package/skills/{te-analysis/references/get-groupby-schema.md → ae-analysis/references/get_groupby_schema.md} +1 -1
- package/skills/{te-meta/references/get-metric.md → ae-analysis/references/get_metric.md} +2 -2
- package/skills/{te-meta/references/get-project-config.md → ae-analysis/references/get_project_config.md} +2 -2
- package/skills/{te-analysis/references/get-report-definition.md → ae-analysis/references/get_report_definition.md} +2 -2
- package/skills/{te-common/references/get-resource-url.md → ae-analysis/references/get_resource_url.md} +4 -4
- package/skills/{te-analysis/references/get-table-columns.md → ae-analysis/references/get_table_columns.md} +2 -2
- package/skills/ae-analysis/references/get_tag_definition_schema.md +49 -0
- package/skills/ae-analysis/references/get_tags_by_name.md +69 -0
- package/skills/{te-meta/references/get-track-program.md → ae-analysis/references/get_track_program.md} +2 -2
- package/skills/{te-analysis/references/list-alerts.md → ae-analysis/references/list_alerts.md} +10 -3
- package/skills/{te-audience/references/list-cluster-members.md → ae-analysis/references/list_cluster_members.md} +11 -4
- package/skills/{te-audience/references/list-clusters.md → ae-analysis/references/list_clusters.md} +14 -4
- package/skills/{te-analysis/references/list-dashboards.md → ae-analysis/references/list_dashboards.md} +12 -4
- package/skills/{te-meta/references/list-entities.md → ae-analysis/references/list_entities.md} +10 -3
- package/skills/{te-meta/references/list-events.md → ae-analysis/references/list_events.md} +12 -5
- package/skills/ae-analysis/references/list_metrics.md +45 -0
- package/skills/ae-analysis/references/list_project_mark_times.md +42 -0
- package/skills/{te-meta/references/list-project-users.md → ae-analysis/references/list_project_users.md} +2 -2
- package/skills/{te-common/references/list-projects.md → ae-analysis/references/list_projects.md} +6 -4
- package/skills/{te-meta/references/list-properties.md → ae-analysis/references/list_properties.md} +9 -4
- package/skills/ae-analysis/references/list_public_access_links.md +41 -0
- package/skills/{te-analysis/references/list-reports.md → ae-analysis/references/list_reports.md} +12 -4
- package/skills/{te-audience/references/list-tag-members.md → ae-analysis/references/list_tag_members.md} +11 -4
- package/skills/{te-audience/references/list-tags.md → ae-analysis/references/list_tags.md} +14 -4
- package/skills/{te-analysis/references/load-filters.md → ae-analysis/references/load_filters.md} +3 -3
- package/skills/{te-analysis/references/query-adhoc.md → ae-analysis/references/query_adhoc.md} +24 -9
- package/skills/{te-analysis/references/query-dashboard-detail.md → ae-analysis/references/query_dashboard_detail.md} +2 -2
- package/skills/{te-analysis/references/query-dashboard-report-data.md → ae-analysis/references/query_dashboard_report_data.md} +9 -9
- package/skills/{te-analysis/references/query-entity-details.md → ae-analysis/references/query_entity_details.md} +10 -10
- package/skills/{te-analysis/references/query-event-details.md → ae-analysis/references/query_event_details.md} +12 -12
- package/skills/{te-analysis/references/query-report-data.md → ae-analysis/references/query_report_data.md} +11 -11
- package/skills/{te-audience/references/refresh-cluster.md → ae-analysis/references/refresh_cluster.md} +2 -2
- package/skills/{te-audience/references/refresh-tag.md → ae-analysis/references/refresh_tag.md} +2 -2
- package/skills/{te-meta/references/save-track-items.md → ae-analysis/references/save_track_items.md} +2 -2
- package/skills/{te-analysis/references/update-alert.md → ae-analysis/references/update_alert.md} +4 -4
- package/skills/{te-audience/references/update-cluster.md → ae-analysis/references/update_cluster.md} +15 -13
- package/skills/{te-analysis/references/update-dashboard.md → ae-analysis/references/update_dashboard.md} +3 -3
- package/skills/{te-meta/references/update-metric.md → ae-analysis/references/update_metric.md} +9 -9
- package/skills/{te-meta/references/update-project-mark-time.md → ae-analysis/references/update_project_mark_time.md} +3 -3
- package/skills/{te-analysis/references/update-public-access-link.md → ae-analysis/references/update_public_access_link.md} +3 -3
- package/skills/{te-audience/references/update-tag.md → ae-analysis/references/update_tag.md} +15 -14
- package/skills/ae-community/SKILL.md +305 -0
- package/skills/{te-community → ae-community}/references/community-activity-analysis.md +6 -7
- package/skills/{te-community → ae-community}/references/community-analyzing-official-content.md +3 -4
- package/skills/{te-community → ae-community}/references/community-analyzing-theme-comment.md +5 -6
- package/skills/{te-community → ae-community}/references/community-character-analysis.md +5 -6
- package/skills/{te-community → ae-community}/references/community-daily-report.md +7 -8
- package/skills/{te-community → ae-community}/references/community-hottopic-insight.md +4 -5
- package/skills/{te-community → ae-community}/references/community-weekly-report.md +7 -8
- package/skills/{te-community → ae-community}/references/get_channel_info.md +4 -5
- package/skills/{te-community → ae-community}/references/get_comment_tag_analysis.md +3 -4
- package/skills/{te-community → ae-community}/references/get_comments_summary.md +4 -5
- package/skills/{te-community → ae-community}/references/get_corpus_tags.md +3 -4
- package/skills/{te-community → ae-community}/references/get_daily_summary.md +3 -4
- package/skills/{te-community → ae-community}/references/get_hot_topics.md +3 -4
- package/skills/{te-community → ae-community}/references/get_livestream_analysis.md +3 -4
- package/skills/{te-community → ae-community}/references/get_livestream_detail.md +4 -5
- package/skills/{te-community → ae-community}/references/get_livestream_list.md +3 -4
- package/skills/{te-community → ae-community}/references/get_livestream_overview.md +3 -4
- package/skills/{te-community → ae-community}/references/get_livestream_room_metrics.md +3 -4
- package/skills/{te-community → ae-community}/references/get_livestream_rooms.md +3 -4
- package/skills/{te-community → ae-community}/references/get_overview_metrics.md +3 -4
- package/skills/{te-community → ae-community}/references/get_post_detail.md +4 -5
- package/skills/{te-community → ae-community}/references/get_risk_content.md +5 -6
- package/skills/{te-community → ae-community}/references/get_sentiment_overview.md +4 -5
- package/skills/{te-community → ae-community}/references/get_tag_trends.md +3 -4
- package/skills/{te-community → ae-community}/references/get_topic_detail.md +3 -4
- package/skills/{te-community → ae-community}/references/search_posts.md +5 -6
- package/skills/{te-dataops → ae-dataops}/SKILL.md +73 -10
- package/skills/{te-dataops → ae-dataops}/references/dataops-flow-create.md +1 -1
- package/skills/{te-dataops → ae-dataops}/references/dataops-flow-monitor.md +1 -1
- package/skills/{te-dataops → ae-dataops}/references/dataops-integration.md +1 -1
- package/skills/{te-dataops → ae-dataops}/references/dataops-query.md +1 -1
- package/skills/{te-dataops → ae-dataops}/references/dataops-table.md +1 -1
- package/skills/{te-engage → ae-engage}/SKILL.md +106 -6
- package/skills/{te-engage → ae-engage}/references/add-approver.md +2 -2
- package/skills/{te-engage → ae-engage}/references/add-channel.md +2 -2
- package/skills/{te-engage → ae-engage}/references/approver-list.md +2 -2
- package/skills/{te-engage → ae-engage}/references/cancel-query-by-request-id.md +2 -2
- package/skills/{te-engage → ae-engage}/references/channel-detail.md +2 -2
- package/skills/{te-engage → ae-engage}/references/channel-list.md +2 -2
- package/skills/{te-engage → ae-engage}/references/config-channel-detail.md +2 -2
- package/skills/{te-engage → ae-engage}/references/config-channel-list.md +2 -2
- package/skills/{te-engage → ae-engage}/references/config-item-analysis-report.md +2 -2
- package/skills/{te-engage → ae-engage}/references/config-item-detail.md +2 -2
- package/skills/{te-engage → ae-engage}/references/config-item-list.md +2 -2
- package/skills/{te-engage → ae-engage}/references/config-item-strategy-comparison.md +2 -2
- package/skills/{te-engage → ae-engage}/references/config-item-trigger-report.md +2 -2
- package/skills/{te-engage → ae-engage}/references/copy-config-template.md +2 -2
- package/skills/{te-engage → ae-engage}/references/delete-channel.md +2 -2
- package/skills/{te-engage → ae-engage}/references/delete-config-channel.md +2 -2
- package/skills/{te-engage → ae-engage}/references/delete-config-item.md +2 -2
- package/skills/{te-engage → ae-engage}/references/delete-flow.md +2 -2
- package/skills/{te-engage → ae-engage}/references/flow-ab-split-node-report.md +2 -2
- package/skills/{te-engage → ae-engage}/references/flow-detail.md +2 -2
- package/skills/{te-engage → ae-engage}/references/flow-list.md +2 -2
- package/skills/{te-engage → ae-engage}/references/flow-node-config-schema.md +2 -2
- package/skills/{te-engage → ae-engage}/references/flow-node-detail-report.md +2 -2
- package/skills/{te-engage → ae-engage}/references/flow-node-overview-report.md +2 -2
- package/skills/{te-engage → ae-engage}/references/flow-process-report.md +2 -2
- package/skills/{te-engage → ae-engage}/references/manage-flow.md +2 -2
- package/skills/{te-engage → ae-engage}/references/manage-strategy.md +2 -2
- package/skills/{te-engage → ae-engage}/references/manage-task.md +2 -2
- package/skills/{te-engage → ae-engage}/references/modify-flow-base-info.md +2 -2
- package/skills/{te-engage → ae-engage}/references/save-flow.md +3 -3
- package/skills/{te-engage → ae-engage}/references/strategy-detail.md +2 -2
- package/skills/{te-engage → ae-engage}/references/strategy-list.md +2 -2
- package/skills/{te-engage → ae-engage}/references/task-data-detail.md +3 -10
- package/skills/{te-engage → ae-engage}/references/task-data-overview.md +3 -9
- package/skills/{te-engage → ae-engage}/references/task-detail.md +2 -2
- package/skills/{te-engage → ae-engage}/references/task-experiment-report.md +3 -9
- package/skills/{te-engage → ae-engage}/references/task-list.md +2 -2
- package/skills/{te-engage → ae-engage}/references/task-metric-detail.md +3 -9
- package/skills/{te-engage → ae-engage}/references/task-stats.md +2 -2
- package/skills/{te-engage → ae-engage}/references/update-channel-status.md +2 -2
- package/skills/{te-engage → ae-engage}/references/update-config-channel-status.md +2 -2
- package/skills/{te-engage → ae-engage}/references/validate-flow-node-config.md +2 -2
- package/skills/{te-engage → ae-engage}/references/whitelist-list.md +2 -2
- package/dist/auth-DXKYLMO7.js +0 -81
- package/dist/auth-JXELJNDS.js +0 -19
- package/dist/auth-L3G3A74I.js +0 -67
- package/dist/chunk-3GM5LJZR.js +0 -145
- package/dist/chunk-JD5DXMKL.js +0 -172
- package/dist/chunk-OVQOK35G.js +0 -108
- package/dist/chunk-RJNLN3KQ.js +0 -217
- package/dist/client-T4VODLA6.js +0 -16
- package/dist/community-GMALVSRF.js +0 -684
- package/dist/config-V7AXKDMB.js +0 -242
- package/dist/raw-ZNVURYMR.js +0 -59
- package/dist/te-analysis-7NN3SY3I.js +0 -871
- package/dist/te-audience-P43BWMHM.js +0 -350
- package/dist/te-common-H3IPTI2I.js +0 -144
- package/dist/te-dataops-WCGDBJLF.js +0 -1853
- package/dist/te-engage-UTRVNTGU.js +0 -1470
- package/dist/te-meta-HGYNXVGF.js +0 -479
- package/skills/te-analysis/SKILL.md +0 -107
- package/skills/te-analysis/references/get-analysis-query-schema.md +0 -36
- package/skills/te-analysis/references/list-public-access-links.md +0 -31
- package/skills/te-audience/SKILL.md +0 -63
- package/skills/te-audience/references/get-cluster-definition-schema.md +0 -37
- package/skills/te-audience/references/get-clusters-by-name.md +0 -32
- package/skills/te-audience/references/get-tag-definition-schema.md +0 -32
- package/skills/te-audience/references/get-tags-by-name.md +0 -32
- package/skills/te-common/SKILL.md +0 -135
- package/skills/te-community/SKILL.md +0 -125
- package/skills/te-meta/SKILL.md +0 -71
- package/skills/te-meta/references/list-metrics.md +0 -33
- package/skills/te-meta/references/list-project-mark-times.md +0 -33
- package/skills/te-shared/SKILL.md +0 -115
package/dist/config-V7AXKDMB.js
DELETED
|
@@ -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
|
-
};
|
package/dist/raw-ZNVURYMR.js
DELETED
|
@@ -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
|
-
};
|