@thinkingai/ae-cli 6.0.38 → 6.0.39
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 +25 -3
- package/README.zh.md +25 -3
- package/dist/{auth-56Z45UVR.js → auth-GDV3H5I4.js} +18 -8
- package/dist/{auth-ENM3FE6L.js → auth-NN55553T.js} +3 -3
- package/dist/{capability-2H6PAOA3.js → capability-TPORIKRQ.js} +19 -15
- package/dist/{capability-YPOQX6PL.js → capability-VQNC5CF7.js} +19 -15
- package/dist/chunk-4NN5IWVN.js +26 -0
- package/dist/{chunk-DB4Q3ANU.js → chunk-6A2FUCIS.js} +3 -3
- package/dist/{chunk-PVBYJWC2.js → chunk-7KQWSBSL.js} +4 -4
- package/dist/{chunk-24BAVOX3.js → chunk-AXDXJTPC.js} +3 -1
- package/dist/{chunk-CPVTECJ3.js → chunk-DT6Y3TD7.js} +5 -5
- package/dist/{chunk-EGEIXA2Z.js → chunk-DWO43OIB.js} +0 -248
- package/dist/{chunk-V6FR6WTW.js → chunk-GJJA4CQZ.js} +34 -2
- package/dist/{chunk-RGXCNC4N.js → chunk-GS2P7LFD.js} +50 -17
- package/dist/{chunk-LYVNONC4.js → chunk-JHENBQ5B.js} +35 -0
- package/dist/{chunk-3P3562ZX.js → chunk-MVDZ7DBQ.js} +5 -5
- package/dist/{chunk-LCXU3AAT.js → chunk-NBPKWKRA.js} +2 -2
- package/dist/{chunk-HQ2A7ITL.js → chunk-RBNKI5ZW.js} +50 -17
- package/dist/{chunk-LHVM35J4.js → chunk-TS6BUGUY.js} +4 -4
- package/dist/chunk-TUKQZTMI.js +250 -0
- package/dist/{chunk-J7MZHDHQ.js → chunk-VKD5WQKN.js} +5 -5
- package/dist/{chunk-3KI3RRXX.js → chunk-VTXHDCBW.js} +3 -3
- package/dist/{chunk-KTYR3U6D.js → chunk-YTG6Q75E.js} +10 -6
- package/dist/{chunk-IR4ZLVPW.js → chunk-YV52FB5G.js} +25 -3
- package/dist/{chunk-E7UXXHO3.js → chunk-Z3OXWCIA.js} +3 -3
- package/dist/{cli-token-4SBMXAUK.js → cli-token-GL5MS5FK.js} +4 -4
- package/dist/{client-PP5FETMW.js → client-DAIPF7XN.js} +4 -4
- package/dist/{community-report-client-KK2QBANO.js → community-report-client-M2RW4MXD.js} +2 -2
- package/dist/config-4VZNLBKF.js +489 -0
- package/dist/index.js +96 -37
- package/dist/memory-RWJW4XFO.js +892 -0
- package/dist/memory-VO2ZJCRT.js +892 -0
- package/dist/{metadata-JIQ77HFY.js → metadata-YGTHR2XJ.js} +8 -8
- package/dist/{metadata-AN3YFZEV.js → metadata-ZRN2GHPN.js} +8 -8
- package/dist/{model-JASQVOFD.js → model-CLUIK3K5.js} +7 -5
- package/dist/{raw-XJCAT3HX.js → raw-52B4UKO4.js} +8 -7
- package/dist/sync-3REDHGY6.js +10259 -0
- package/dist/{te-agent-JHUG6DVV.js → te-agent-XNPELAKX.js} +580 -84
- package/dist/{te-analysis-ITKTO6JS.js → te-analysis-GJI5FZUL.js} +1152 -13
- package/dist/{te-analysis-RAC67YYD.js → te-analysis-N2BRDJZ5.js} +1152 -13
- package/dist/{te-community-QOYIYEJI.js → te-community-SQXKE5OO.js} +7 -7
- package/dist/{te-community-UFKI6ONP.js → te-community-TYSNU3NQ.js} +7 -7
- package/dist/{te-dataops-PZQ5NQLY.js → te-dataops-5TM7WZDI.js} +370 -189
- package/dist/{te-dataops-XTWVTJCA.js → te-dataops-OWIADNSM.js} +370 -189
- package/dist/{te-engage-NLZUPSBK.js → te-engage-F7V55KVW.js} +333 -105
- package/dist/{te-engage-E7F4HTXU.js → te-engage-FMYAYCNV.js} +333 -105
- package/dist/{te-kb-E7NSCBRB.js → te-kb-VRMEY3D4.js} +6 -6
- package/dist/{te-meta-GBDTMPEL.js → te-meta-53BVXPFI.js} +7 -7
- package/dist/{te-meta-ZTLTSHXC.js → te-meta-TOCBPBXI.js} +7 -7
- package/dist/{te-system-AH7DMCAQ.js → te-system-XGS5EQIQ.js} +4 -4
- package/dist/{te-team-BQ3SKSZV.js → te-team-BZRDV2CM.js} +7 -7
- package/dist/{update-DKG6UXEM.js → update-HEDXGOJH.js} +8 -6
- package/package.json +4 -1
- package/skills/ae-agent/SKILL.md +178 -16
- package/skills/ae-agent/references/add-skill.md +22 -10
- package/skills/ae-agent/references/edit-skill.md +24 -14
- package/skills/ae-agent/references/find-archived-conversations.md +82 -0
- package/skills/ae-agent/references/restore-conversation.md +54 -0
- package/skills/ae-agent/references/upload-skill.md +24 -14
- package/skills/ae-analysis/SKILL.md +1 -1
- package/skills/ae-analysis/references/command_index.md +104 -42
- package/skills/ae-analysis/references/entity_id_import_options.md +1 -1
- package/skills/ae-analysis/references/project_access_detail_get.md +3 -3
- package/skills/ae-analysis/references/project_data_power_delete.md +3 -3
- package/skills/ae-analysis/references/project_data_power_get.md +3 -3
- package/skills/ae-analysis/references/project_data_power_list.md +3 -3
- package/skills/ae-analysis/references/project_data_power_upsert.md +3 -3
- package/skills/ae-analysis/references/project_entity_create.md +3 -3
- package/skills/ae-analysis/references/project_entity_delete.md +3 -3
- package/skills/ae-analysis/references/project_entity_event_list.md +3 -3
- package/skills/ae-analysis/references/project_entity_get.md +3 -3
- package/skills/ae-analysis/references/project_entity_list.md +3 -3
- package/skills/ae-analysis/references/project_entity_update.md +3 -3
- package/skills/ae-analysis/references/project_function_list.md +3 -3
- package/skills/ae-analysis/references/project_info_create.md +25 -0
- package/skills/ae-analysis/references/project_info_delete.md +24 -0
- package/skills/ae-analysis/references/project_info_get.md +3 -3
- package/skills/ae-analysis/references/project_info_list.md +3 -3
- package/skills/ae-analysis/references/project_info_update.md +3 -3
- package/skills/ae-analysis/references/project_mark_time_create.md +3 -3
- package/skills/ae-analysis/references/project_mark_time_delete.md +3 -3
- package/skills/ae-analysis/references/project_mark_time_list.md +3 -3
- package/skills/ae-analysis/references/project_mark_time_update.md +3 -3
- package/skills/ae-analysis/references/project_member_add.md +3 -3
- package/skills/ae-analysis/references/project_member_batch_update.md +3 -3
- package/skills/ae-analysis/references/project_member_candidate_list.md +3 -3
- package/skills/ae-analysis/references/project_member_handover_export.md +3 -3
- package/skills/ae-analysis/references/project_member_handover_run.md +3 -3
- package/skills/ae-analysis/references/project_member_import.md +3 -3
- package/skills/ae-analysis/references/project_member_list.md +3 -3
- package/skills/ae-analysis/references/project_member_receiver_list.md +3 -3
- package/skills/ae-analysis/references/project_member_remove.md +3 -3
- package/skills/ae-analysis/references/project_member_update.md +3 -3
- package/skills/ae-analysis/references/project_owner_update.md +3 -3
- package/skills/ae-analysis/references/project_permission_binding_list.md +3 -3
- package/skills/ae-analysis/references/project_receive_status_update.md +3 -3
- package/skills/ae-analysis/references/project_role_delete.md +3 -3
- package/skills/ae-analysis/references/project_role_function_list.md +3 -3
- package/skills/ae-analysis/references/project_role_get.md +3 -3
- package/skills/ae-analysis/references/project_role_list.md +3 -3
- package/skills/ae-analysis/references/project_role_upsert.md +3 -3
- package/skills/ae-analysis/references/project_role_user_list.md +3 -3
- package/skills/ae-analysis/references/project_space_list.md +1 -1
- package/skills/ae-analysis/references/project_timezone_get.md +3 -3
- package/skills/ae-analysis/references/project_timezone_overview.md +3 -3
- package/skills/ae-analysis/references/project_timezone_update.md +3 -3
- package/skills/ae-analysis/references/project_user_id_items_update.md +3 -3
- package/skills/ae-analysis/references/system_admin_function_list.md +22 -0
- package/skills/ae-analysis/references/system_admin_function_update.md +26 -0
- package/skills/ae-analysis/references/system_admin_list.md +21 -0
- package/skills/ae-analysis/references/system_admin_remove.md +25 -0
- package/skills/ae-analysis/references/system_admin_upsert.md +25 -0
- package/skills/ae-analysis/references/system_function_list.md +21 -0
- package/skills/ae-analysis/references/system_member_add.md +25 -0
- package/skills/ae-analysis/references/system_member_candidate_list.md +22 -0
- package/skills/ae-analysis/references/system_member_delete.md +25 -0
- package/skills/ae-analysis/references/system_member_list.md +24 -0
- package/skills/ae-analysis/references/system_member_mfa_unbind.md +25 -0
- package/skills/ae-analysis/references/system_member_password_reset.md +32 -0
- package/skills/ae-analysis/references/system_member_project_batch_update.md +27 -0
- package/skills/ae-analysis/references/system_member_status_update.md +26 -0
- package/skills/ae-analysis/references/system_member_update.md +23 -0
- package/skills/ae-analysis/references/system_mfa_get.md +21 -0
- package/skills/ae-analysis/references/system_mfa_update.md +25 -0
- package/skills/ae-analysis/references/system_node_monitor_list.md +24 -0
- package/skills/ae-analysis/references/system_oauth2_update.md +22 -0
- package/skills/ae-analysis/references/system_ops_alert_contact_delete.md +25 -0
- package/skills/ae-analysis/references/system_ops_alert_contact_list.md +23 -0
- package/skills/ae-analysis/references/system_ops_alert_contact_test.md +29 -0
- package/skills/ae-analysis/references/system_ops_alert_contact_upsert.md +39 -0
- package/skills/ae-analysis/references/system_preference_get.md +21 -0
- package/skills/ae-analysis/references/system_preference_update.md +22 -0
- package/skills/ae-analysis/references/system_project_usage_list.md +28 -0
- package/skills/ae-analysis/references/system_query_alert_rule_list.md +21 -0
- package/skills/ae-analysis/references/system_query_alert_rule_update.md +26 -0
- package/skills/ae-analysis/references/system_query_monitor_overview.md +26 -0
- package/skills/ae-analysis/references/system_query_task_cancel.md +25 -0
- package/skills/ae-analysis/references/system_query_task_export.md +49 -0
- package/skills/ae-analysis/references/system_query_task_get.md +23 -0
- package/skills/ae-analysis/references/system_query_task_list.md +35 -0
- package/skills/ae-analysis/references/system_query_task_options.md +27 -0
- package/skills/ae-analysis/references/system_receiver_address_delete.md +26 -0
- package/skills/ae-analysis/references/system_receiver_address_overview.md +21 -0
- package/skills/ae-analysis/references/system_receiver_address_project_list.md +21 -0
- package/skills/ae-analysis/references/system_receiver_address_promote.md +24 -0
- package/skills/ae-analysis/references/system_receiver_address_upsert.md +27 -0
- package/skills/ae-analysis/references/system_receiver_detection_get.md +22 -0
- package/skills/ae-analysis/references/system_receiver_detection_run.md +22 -0
- package/skills/ae-analysis/references/system_receiver_detection_update.md +25 -0
- package/skills/ae-analysis/references/system_role_delete.md +26 -0
- package/skills/ae-analysis/references/system_role_function_list.md +22 -0
- package/skills/ae-analysis/references/system_role_get.md +22 -0
- package/skills/ae-analysis/references/system_role_list.md +24 -0
- package/skills/ae-analysis/references/system_role_upsert.md +27 -0
- package/skills/ae-analysis/references/system_role_user_list.md +22 -0
- package/skills/ae-analysis/references/system_seat_list.md +25 -0
- package/skills/ae-analysis/references/system_seat_update.md +26 -0
- package/skills/ae-analysis/references/system_smtp_delete.md +24 -0
- package/skills/ae-analysis/references/system_smtp_get.md +21 -0
- package/skills/ae-analysis/references/system_smtp_test.md +22 -0
- package/skills/ae-analysis/references/system_smtp_upsert.md +31 -0
- package/skills/ae-analysis/references/system_third_party_login_disable.md +25 -0
- package/skills/ae-analysis/references/system_third_party_login_list.md +21 -0
- package/skills/ae-analysis/references/system_third_party_login_upsert.md +33 -0
- package/skills/ae-analysis/references/system_usage_overview.md +21 -0
- package/skills/ae-analysis/references/system_usage_trend_export.md +44 -0
- package/skills/ae-analysis/references/system_usage_trend_query.md +28 -0
- package/skills/ae-dataops/SKILL.md +1 -1
- package/skills/ae-dataops/references/dataops-flow-create.md +51 -16
- package/skills/ae-engage/SKILL.md +56 -26
- package/skills/ae-engage/references/activity-activity.md +3 -0
- package/skills/ae-engage/references/activity-approval.md +12 -4
- package/skills/ae-engage/references/activity-task.md +21 -6
- package/skills/ae-engage/references/activity-topic.md +31 -13
- package/skills/ae-engage/references/add-channel.md +170 -41
- package/skills/ae-engage/references/build-task-save-guide.md +40 -27
- package/skills/ae-engage/references/channel-update-config.md +3 -2
- package/skills/ae-engage/references/common-metric.md +48 -120
- package/skills/ae-engage/references/flow-detail.md +13 -0
- package/skills/ae-engage/references/preset-event.md +12 -32
- package/skills/ae-engage/references/save-flow.md +127 -64
- package/skills/ae-engage/references/save-task.md +197 -59
- package/skills/ae-engage/references/scene-config-metric.md +3 -0
- package/skills/ae-engage/references/scene-preset-metric.md +8 -37
- package/skills/ae-engage/references/scene-strategy-audience.md +51 -643
- package/skills/ae-engage/references/scene-strategy.md +6 -6
- package/skills/ae-engage/references/task-detail.md +10 -0
- package/skills/ae-engage/references/task-submit-approval.md +45 -0
- package/skills/ae-engage/references/validate-flow-node-config.md +1 -1
- package/skills/ae-generate-tracking-code/SKILL.md +2 -2
- package/skills/ae-metadata/SKILL.md +1 -1
- package/dist/config-BSSALXEN.js +0 -128
- package/dist/sync-QFP4XFN3.js +0 -485
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
clearCliToken,
|
|
3
3
|
getCliToken
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-Z3OXWCIA.js";
|
|
5
5
|
import {
|
|
6
6
|
safeJsonParse
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-GJJA4CQZ.js";
|
|
8
8
|
import {
|
|
9
9
|
PermissionError
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-AXDXJTPC.js";
|
|
11
11
|
import {
|
|
12
12
|
logger
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-JHENBQ5B.js";
|
|
14
14
|
|
|
15
15
|
// src/core/capability-api.ts
|
|
16
16
|
import { readFile } from "fs/promises";
|
|
@@ -52,6 +52,14 @@ async function permissionMessage(resp) {
|
|
|
52
52
|
}
|
|
53
53
|
return "Permission denied for this resource (HTTP 403)";
|
|
54
54
|
}
|
|
55
|
+
async function permissionError(resp) {
|
|
56
|
+
const codeResponse = resp.clone();
|
|
57
|
+
const message = await permissionMessage(resp);
|
|
58
|
+
const body = safeJsonParse(await codeResponse.text());
|
|
59
|
+
const error = isRecord(body?.error) ? body.error : void 0;
|
|
60
|
+
const code = nonEmptyString(error?.code) ?? nonEmptyString(body?.code);
|
|
61
|
+
return new PermissionError(message, code);
|
|
62
|
+
}
|
|
55
63
|
function isInvalidCliTokenMessage(message) {
|
|
56
64
|
return /\byour token is invalid\b/i.test(message) || /\bcli[-_\s]?token\b.*\binvalid\b/i.test(message) || /\binvalid\b.*\bcli[-_\s]?token\b/i.test(message);
|
|
57
65
|
}
|
|
@@ -147,22 +155,26 @@ async function requestMultipartOnce(url, token, form) {
|
|
|
147
155
|
body: form
|
|
148
156
|
});
|
|
149
157
|
}
|
|
150
|
-
async function callGateway(host, domain, pathAfterV1, method, body, queryParams = {}) {
|
|
151
|
-
return (await callGatewayWithEnvelope(host, domain, pathAfterV1, method, body, queryParams)).data;
|
|
158
|
+
async function callGateway(host, domain, pathAfterV1, method, body, queryParams = {}, options = {}) {
|
|
159
|
+
return (await callGatewayWithEnvelope(host, domain, pathAfterV1, method, body, queryParams, options)).data;
|
|
152
160
|
}
|
|
153
|
-
async function callGatewayWithEnvelope(host, domain, pathAfterV1, method, body, queryParams = {}) {
|
|
154
|
-
const url = buildCapabilityGatewayUrl(host, domain, pathAfterV1, queryParams);
|
|
161
|
+
async function callGatewayWithEnvelope(host, domain, pathAfterV1, method, body, queryParams = {}, options = {}) {
|
|
162
|
+
const url = buildCapabilityGatewayUrl(options.apiBaseUrl ?? host, domain, pathAfterV1, queryParams);
|
|
155
163
|
const token = await getCliToken(host);
|
|
156
164
|
let resp = await requestOnce(url, method, token, body);
|
|
157
165
|
let permissionMsg;
|
|
158
166
|
if (resp.status === 403) {
|
|
159
|
-
|
|
167
|
+
const error = await permissionError(resp);
|
|
168
|
+
permissionMsg = error.message;
|
|
160
169
|
if (!isInvalidCliTokenMessage(permissionMsg)) {
|
|
161
|
-
throw
|
|
170
|
+
throw error;
|
|
162
171
|
}
|
|
163
172
|
}
|
|
164
|
-
if (resp.status === 401
|
|
165
|
-
|
|
173
|
+
if (resp.status === 401) {
|
|
174
|
+
if (options.retryOnUnauthorized === false) {
|
|
175
|
+
await throwCapabilityHttpError(resp);
|
|
176
|
+
}
|
|
177
|
+
logger.warn(`Capability gateway request failed (HTTP 401) for ${host}, refreshing CLI token`);
|
|
166
178
|
clearCliToken(host);
|
|
167
179
|
const newToken = await getCliToken(host);
|
|
168
180
|
process.stderr.write(`[ae-cli] CLI token refreshed for ${host}
|
|
@@ -174,6 +186,19 @@ async function callGatewayWithEnvelope(host, domain, pathAfterV1, method, body,
|
|
|
174
186
|
if (!resp.ok) {
|
|
175
187
|
await throwCapabilityHttpError(resp);
|
|
176
188
|
}
|
|
189
|
+
} else if (resp.status === 403 && permissionMsg) {
|
|
190
|
+
logger.warn(`Capability gateway request failed (${permissionMsg}) for ${host}, refreshing CLI token`);
|
|
191
|
+
clearCliToken(host);
|
|
192
|
+
const newToken = await getCliToken(host);
|
|
193
|
+
process.stderr.write(`[ae-cli] CLI token refreshed for ${host}
|
|
194
|
+
`);
|
|
195
|
+
resp = await requestOnce(url, method, newToken, body);
|
|
196
|
+
if (resp.status === 403) {
|
|
197
|
+
throw await permissionError(resp);
|
|
198
|
+
}
|
|
199
|
+
if (!resp.ok) {
|
|
200
|
+
await throwCapabilityHttpError(resp);
|
|
201
|
+
}
|
|
177
202
|
} else if (!resp.ok) {
|
|
178
203
|
await throwCapabilityHttpError(resp);
|
|
179
204
|
}
|
|
@@ -184,7 +209,7 @@ async function fetchCapabilityGateway(host, domain, pathAfterV1, method = "GET",
|
|
|
184
209
|
const token = await getCliToken(host);
|
|
185
210
|
let resp = await requestOnce(url, method, token, body, accept);
|
|
186
211
|
if (resp.status === 403) {
|
|
187
|
-
throw
|
|
212
|
+
throw await permissionError(resp);
|
|
188
213
|
}
|
|
189
214
|
if (resp.status === 401) {
|
|
190
215
|
logger.warn(`Capability gateway request failed (HTTP 401) for ${host}, refreshing CLI token`);
|
|
@@ -194,7 +219,7 @@ async function fetchCapabilityGateway(host, domain, pathAfterV1, method = "GET",
|
|
|
194
219
|
`);
|
|
195
220
|
resp = await requestOnce(url, method, newToken, body, accept);
|
|
196
221
|
if (resp.status === 403) {
|
|
197
|
-
throw
|
|
222
|
+
throw await permissionError(resp);
|
|
198
223
|
}
|
|
199
224
|
if (!resp.ok) {
|
|
200
225
|
await throwCapabilityHttpError(resp);
|
|
@@ -273,7 +298,7 @@ async function uploadInputFileBytes(host, domain, projectId, purpose, bytes, fil
|
|
|
273
298
|
const token = await getCliToken(host);
|
|
274
299
|
let resp = await requestMultipartOnce(url, token, form);
|
|
275
300
|
if (resp.status === 403) {
|
|
276
|
-
throw
|
|
301
|
+
throw await permissionError(resp);
|
|
277
302
|
}
|
|
278
303
|
if (resp.status === 401) {
|
|
279
304
|
logger.warn(`Capability gateway request failed (HTTP 401) for ${host}, refreshing CLI token`);
|
|
@@ -283,7 +308,7 @@ async function uploadInputFileBytes(host, domain, projectId, purpose, bytes, fil
|
|
|
283
308
|
`);
|
|
284
309
|
resp = await requestMultipartOnce(url, newToken, form);
|
|
285
310
|
if (resp.status === 403) {
|
|
286
|
-
throw
|
|
311
|
+
throw await permissionError(resp);
|
|
287
312
|
}
|
|
288
313
|
if (!resp.ok) {
|
|
289
314
|
await throwCapabilityHttpError(resp);
|
|
@@ -293,6 +318,13 @@ async function uploadInputFileBytes(host, domain, projectId, purpose, bytes, fil
|
|
|
293
318
|
}
|
|
294
319
|
return unwrapCapabilityEnvelope(parseCapabilityResponse(await resp.text()));
|
|
295
320
|
}
|
|
321
|
+
async function callCapabilityApi(host, domain, action, method = "POST", params = {}, options = {}) {
|
|
322
|
+
const isGet = method === "GET";
|
|
323
|
+
if (isGet) {
|
|
324
|
+
return callGateway(host, domain, action.replace(/^\/+|\/+$/g, ""), "GET", void 0, {}, options);
|
|
325
|
+
}
|
|
326
|
+
return callGateway(host, domain, action.replace(/^\/+|\/+$/g, ""), method, params, {}, options);
|
|
327
|
+
}
|
|
296
328
|
|
|
297
329
|
export {
|
|
298
330
|
CapabilityGatewayError,
|
|
@@ -307,5 +339,6 @@ export {
|
|
|
307
339
|
dryRunCapability,
|
|
308
340
|
validateCapability,
|
|
309
341
|
uploadInputFile,
|
|
310
|
-
uploadInputFileBytes
|
|
342
|
+
uploadInputFileBytes,
|
|
343
|
+
callCapabilityApi
|
|
311
344
|
};
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveGatewayDomain
|
|
3
3
|
} from "./chunk-PTE56QPL.js";
|
|
4
|
+
import {
|
|
5
|
+
withOutputMetadata
|
|
6
|
+
} from "./chunk-YTG6Q75E.js";
|
|
4
7
|
import {
|
|
5
8
|
dryRunCapability,
|
|
6
9
|
executeCapabilityWithEnvelope,
|
|
7
10
|
validateCapability
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import {
|
|
10
|
-
withOutputMetadata
|
|
11
|
-
} from "./chunk-KTYR3U6D.js";
|
|
11
|
+
} from "./chunk-GS2P7LFD.js";
|
|
12
12
|
|
|
13
13
|
// src/core/capability-command.ts
|
|
14
14
|
import { randomBytes } from "crypto";
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
// src/core/multiselect.ts
|
|
2
|
+
var MultiselectCancelled = class extends Error {
|
|
3
|
+
constructor() {
|
|
4
|
+
super("Selection cancelled by user");
|
|
5
|
+
this.name = "MultiselectCancelled";
|
|
6
|
+
}
|
|
7
|
+
};
|
|
8
|
+
function buildRows(items) {
|
|
9
|
+
const rows = [];
|
|
10
|
+
let lastGroup;
|
|
11
|
+
for (let i = 0; i < items.length; i++) {
|
|
12
|
+
const it = items[i];
|
|
13
|
+
if (it.group && it.group !== lastGroup) {
|
|
14
|
+
rows.push({ kind: "header", groupLabel: it.group });
|
|
15
|
+
lastGroup = it.group;
|
|
16
|
+
}
|
|
17
|
+
rows.push({ kind: "item", itemIndex: i, item: it });
|
|
18
|
+
}
|
|
19
|
+
return rows;
|
|
20
|
+
}
|
|
21
|
+
function promptMultiselect(opts) {
|
|
22
|
+
const { title, items } = opts;
|
|
23
|
+
if (items.length === 0) {
|
|
24
|
+
return Promise.resolve([]);
|
|
25
|
+
}
|
|
26
|
+
const stderr = process.stderr;
|
|
27
|
+
const stdin = process.stdin;
|
|
28
|
+
if (!stdin.isTTY) {
|
|
29
|
+
return Promise.reject(
|
|
30
|
+
new Error("ae-cli sync requires a TTY for multi-select; please run in an interactive terminal")
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
const rows = buildRows(items);
|
|
34
|
+
const itemRowIndices = [];
|
|
35
|
+
rows.forEach((r, idx) => {
|
|
36
|
+
if (r.kind === "item") itemRowIndices.push(idx);
|
|
37
|
+
});
|
|
38
|
+
const selected = /* @__PURE__ */ new Set();
|
|
39
|
+
items.forEach((it, idx) => {
|
|
40
|
+
if (it.preselected) selected.add(idx);
|
|
41
|
+
});
|
|
42
|
+
let cursorRowIdx = itemRowIndices[0];
|
|
43
|
+
let renderCount = 0;
|
|
44
|
+
function totalLines() {
|
|
45
|
+
return rows.length + 2;
|
|
46
|
+
}
|
|
47
|
+
function render() {
|
|
48
|
+
if (renderCount > 0) {
|
|
49
|
+
stderr.write(`\x1B[${totalLines()}A`);
|
|
50
|
+
}
|
|
51
|
+
stderr.write(`${title} (space: select \xB7 a: select all/none \xB7 enter: confirm \xB7 q: cancel)\x1B[K
|
|
52
|
+
`);
|
|
53
|
+
stderr.write(`\x1B[K
|
|
54
|
+
`);
|
|
55
|
+
rows.forEach((row, ridx) => {
|
|
56
|
+
if (row.kind === "header") {
|
|
57
|
+
stderr.write(` \x1B[90m\u2500\u2500 ${row.groupLabel} \u2500\u2500\x1B[0m\x1B[K
|
|
58
|
+
`);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const isCursor = ridx === cursorRowIdx;
|
|
62
|
+
const isSelected = selected.has(row.itemIndex);
|
|
63
|
+
const pointer = isCursor ? "\x1B[36m\u276F\x1B[0m" : " ";
|
|
64
|
+
const checkbox = isSelected ? "\x1B[32m[x]\x1B[0m" : "[ ]";
|
|
65
|
+
const label = row.item.label;
|
|
66
|
+
const hint = row.item.hint ? ` \x1B[90m${row.item.hint}\x1B[0m` : "";
|
|
67
|
+
stderr.write(`${pointer} ${checkbox} ${label}${hint}\x1B[K
|
|
68
|
+
`);
|
|
69
|
+
});
|
|
70
|
+
renderCount++;
|
|
71
|
+
}
|
|
72
|
+
return new Promise((resolve, reject) => {
|
|
73
|
+
stderr.write("\x1B[?25l");
|
|
74
|
+
stdin.setRawMode(true);
|
|
75
|
+
stdin.resume();
|
|
76
|
+
stdin.setEncoding("utf8");
|
|
77
|
+
function cleanup() {
|
|
78
|
+
stdin.setRawMode(false);
|
|
79
|
+
stdin.pause();
|
|
80
|
+
stdin.removeListener("data", onData);
|
|
81
|
+
stderr.write("\x1B[?25h");
|
|
82
|
+
}
|
|
83
|
+
function moveCursor(direction) {
|
|
84
|
+
const cur = itemRowIndices.indexOf(cursorRowIdx);
|
|
85
|
+
const next = (cur + direction + itemRowIndices.length) % itemRowIndices.length;
|
|
86
|
+
cursorRowIdx = itemRowIndices[next];
|
|
87
|
+
render();
|
|
88
|
+
}
|
|
89
|
+
function toggleAll() {
|
|
90
|
+
if (selected.size === items.length) {
|
|
91
|
+
selected.clear();
|
|
92
|
+
} else {
|
|
93
|
+
items.forEach((_, idx) => selected.add(idx));
|
|
94
|
+
}
|
|
95
|
+
render();
|
|
96
|
+
}
|
|
97
|
+
function onData(key) {
|
|
98
|
+
if (key === "\x1B[A" || key === "k") {
|
|
99
|
+
moveCursor(-1);
|
|
100
|
+
} else if (key === "\x1B[B" || key === "j") {
|
|
101
|
+
moveCursor(1);
|
|
102
|
+
} else if (key === " ") {
|
|
103
|
+
const row = rows[cursorRowIdx];
|
|
104
|
+
if (row.kind === "item") {
|
|
105
|
+
const idx = row.itemIndex;
|
|
106
|
+
if (selected.has(idx)) selected.delete(idx);
|
|
107
|
+
else selected.add(idx);
|
|
108
|
+
render();
|
|
109
|
+
}
|
|
110
|
+
} else if (key === "a" || key === "A") {
|
|
111
|
+
toggleAll();
|
|
112
|
+
} else if (key === "\r" || key === "\n") {
|
|
113
|
+
if (selected.size === 0) {
|
|
114
|
+
stderr.write("\x07");
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
cleanup();
|
|
118
|
+
const result = Array.from(selected).map((i) => items[i].value);
|
|
119
|
+
resolve(result);
|
|
120
|
+
} else if (key === "q" || key === "Q" || key === "\x1B" || key === "") {
|
|
121
|
+
cleanup();
|
|
122
|
+
reject(new MultiselectCancelled());
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
stdin.on("data", onData);
|
|
126
|
+
render();
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
function promptSingleCheckboxSelect(opts) {
|
|
130
|
+
const { title, items } = opts;
|
|
131
|
+
if (items.length === 0) return Promise.reject(new Error("No items to select"));
|
|
132
|
+
const stderr = process.stderr;
|
|
133
|
+
const stdin = process.stdin;
|
|
134
|
+
if (!stdin.isTTY) return Promise.reject(new Error("A TTY is required for single-select"));
|
|
135
|
+
const preselectedIndex = items.findIndex((item) => item.preselected);
|
|
136
|
+
let cursor = preselectedIndex >= 0 ? preselectedIndex : 0;
|
|
137
|
+
let selected = preselectedIndex >= 0 ? preselectedIndex : null;
|
|
138
|
+
let renderCount = 0;
|
|
139
|
+
const lines = items.length + 2;
|
|
140
|
+
function render() {
|
|
141
|
+
if (renderCount > 0) stderr.write(`\x1B[${lines}A`);
|
|
142
|
+
stderr.write(`${title} (space: select \xB7 enter: confirm \xB7 q: cancel)\x1B[K
|
|
143
|
+
`);
|
|
144
|
+
stderr.write(`\x1B[K
|
|
145
|
+
`);
|
|
146
|
+
items.forEach((it, idx) => {
|
|
147
|
+
const pointer = idx === cursor ? "\x1B[36m\u276F\x1B[0m" : " ";
|
|
148
|
+
const checkbox = selected === idx ? "\x1B[32m[x]\x1B[0m" : "[ ]";
|
|
149
|
+
const hint = it.hint ? ` \x1B[90m${it.hint}\x1B[0m` : "";
|
|
150
|
+
stderr.write(`${pointer} ${checkbox} ${it.label}${hint}\x1B[K
|
|
151
|
+
`);
|
|
152
|
+
});
|
|
153
|
+
renderCount++;
|
|
154
|
+
}
|
|
155
|
+
return new Promise((resolve, reject) => {
|
|
156
|
+
stderr.write("\x1B[?25l");
|
|
157
|
+
stdin.setRawMode(true);
|
|
158
|
+
stdin.resume();
|
|
159
|
+
stdin.setEncoding("utf8");
|
|
160
|
+
function cleanup() {
|
|
161
|
+
stdin.setRawMode(false);
|
|
162
|
+
stdin.pause();
|
|
163
|
+
stdin.removeListener("data", onData);
|
|
164
|
+
stderr.write("\x1B[?25h");
|
|
165
|
+
}
|
|
166
|
+
function moveCursor(direction) {
|
|
167
|
+
cursor = (cursor + direction + items.length) % items.length;
|
|
168
|
+
render();
|
|
169
|
+
}
|
|
170
|
+
function onData(key) {
|
|
171
|
+
if (key === "\x1B[A" || key === "k") {
|
|
172
|
+
moveCursor(-1);
|
|
173
|
+
} else if (key === "\x1B[B" || key === "j") {
|
|
174
|
+
moveCursor(1);
|
|
175
|
+
} else if (key === " ") {
|
|
176
|
+
selected = cursor;
|
|
177
|
+
render();
|
|
178
|
+
} else if (key === "\r" || key === "\n") {
|
|
179
|
+
if (selected === null) {
|
|
180
|
+
stderr.write("\x07");
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
cleanup();
|
|
184
|
+
resolve(items[selected].value);
|
|
185
|
+
} else if (key === "q" || key === "Q" || key === "\x1B" || key === "") {
|
|
186
|
+
cleanup();
|
|
187
|
+
reject(new MultiselectCancelled());
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
stdin.on("data", onData);
|
|
191
|
+
render();
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
function promptSingleSelect(opts) {
|
|
195
|
+
const { title, items } = opts;
|
|
196
|
+
if (items.length === 0) return Promise.reject(new Error("No items to select"));
|
|
197
|
+
const stderr = process.stderr;
|
|
198
|
+
const stdin = process.stdin;
|
|
199
|
+
if (!stdin.isTTY) return Promise.reject(new Error("A TTY is required for single-select"));
|
|
200
|
+
let cursor = 0;
|
|
201
|
+
let renderCount = 0;
|
|
202
|
+
const lines = items.length + 1;
|
|
203
|
+
function render() {
|
|
204
|
+
if (renderCount > 0) stderr.write(`\x1B[${lines}A`);
|
|
205
|
+
stderr.write(`${title}\x1B[K
|
|
206
|
+
`);
|
|
207
|
+
items.forEach((it, idx) => {
|
|
208
|
+
const pointer = idx === cursor ? "\x1B[36m\u276F\x1B[0m" : " ";
|
|
209
|
+
stderr.write(`${pointer} ${it.label}\x1B[K
|
|
210
|
+
`);
|
|
211
|
+
});
|
|
212
|
+
renderCount++;
|
|
213
|
+
}
|
|
214
|
+
return new Promise((resolve, reject) => {
|
|
215
|
+
stderr.write("\x1B[?25l");
|
|
216
|
+
stdin.setRawMode(true);
|
|
217
|
+
stdin.resume();
|
|
218
|
+
stdin.setEncoding("utf8");
|
|
219
|
+
function cleanup() {
|
|
220
|
+
stdin.setRawMode(false);
|
|
221
|
+
stdin.pause();
|
|
222
|
+
stdin.removeListener("data", onData);
|
|
223
|
+
stderr.write("\x1B[?25h");
|
|
224
|
+
}
|
|
225
|
+
function onData(key) {
|
|
226
|
+
if (key === "\x1B[A" || key === "k") {
|
|
227
|
+
cursor = (cursor - 1 + items.length) % items.length;
|
|
228
|
+
render();
|
|
229
|
+
} else if (key === "\x1B[B" || key === "j") {
|
|
230
|
+
cursor = (cursor + 1) % items.length;
|
|
231
|
+
render();
|
|
232
|
+
} else if (key === "\r" || key === "\n") {
|
|
233
|
+
cleanup();
|
|
234
|
+
resolve(items[cursor].value);
|
|
235
|
+
} else if (key === "q" || key === "Q" || key === "\x1B" || key === "") {
|
|
236
|
+
cleanup();
|
|
237
|
+
reject(new MultiselectCancelled());
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
stdin.on("data", onData);
|
|
241
|
+
render();
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
export {
|
|
246
|
+
MultiselectCancelled,
|
|
247
|
+
promptMultiselect,
|
|
248
|
+
promptSingleCheckboxSelect,
|
|
249
|
+
promptSingleSelect
|
|
250
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getActiveHost,
|
|
3
3
|
getSandboxRuntimeRoot
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-GJJA4CQZ.js";
|
|
5
5
|
|
|
6
6
|
// src/core/te-agent-credentials.ts
|
|
7
7
|
import { readFileSync } from "fs";
|
|
@@ -147,8 +147,8 @@ async function signRequest(method, path, rawBody, hostOverride) {
|
|
|
147
147
|
rawBody
|
|
148
148
|
};
|
|
149
149
|
}
|
|
150
|
-
const { getToken } = await import("./auth-
|
|
151
|
-
const { getCliToken } = await import("./cli-token-
|
|
150
|
+
const { getToken } = await import("./auth-NN55553T.js");
|
|
151
|
+
const { getCliToken } = await import("./cli-token-GL5MS5FK.js");
|
|
152
152
|
const baseUrl = hostOverride ? teClaudeBaseFromActiveHost(hostOverride) : sandboxCred?.url || teClaudeBaseFromActiveHost();
|
|
153
153
|
if (!baseUrl) {
|
|
154
154
|
throw new TeAgentCredentialsError(
|
|
@@ -338,8 +338,8 @@ async function uploadToMainApp(path, formData, hostOverride) {
|
|
|
338
338
|
"X-Sandbox-Secret-Key": sandboxCred.sandboxSecretKey
|
|
339
339
|
};
|
|
340
340
|
} else {
|
|
341
|
-
const { getToken } = await import("./auth-
|
|
342
|
-
const { getCliToken } = await import("./cli-token-
|
|
341
|
+
const { getToken } = await import("./auth-NN55553T.js");
|
|
342
|
+
const { getCliToken } = await import("./cli-token-GL5MS5FK.js");
|
|
343
343
|
baseUrl = (hostOverride ? teClaudeBaseFromActiveHost(hostOverride) : sandboxCred?.url || teClaudeBaseFromActiveHost())?.replace(/\/$/, "") || "";
|
|
344
344
|
if (!baseUrl) {
|
|
345
345
|
throw new TeAgentCredentialsError(
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getCliToken
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-Z3OXWCIA.js";
|
|
4
4
|
import {
|
|
5
5
|
safeJsonParse
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-GJJA4CQZ.js";
|
|
7
7
|
import {
|
|
8
8
|
PermissionError
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-AXDXJTPC.js";
|
|
10
10
|
|
|
11
11
|
// src/core/mcp-access.ts
|
|
12
12
|
function buildUrl(host, path, params = {}) {
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
peekCliToken
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-Z3OXWCIA.js";
|
|
4
4
|
import {
|
|
5
5
|
getToken
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YV52FB5G.js";
|
|
7
7
|
import {
|
|
8
8
|
getActiveHost,
|
|
9
9
|
getConfigDir,
|
|
10
10
|
isAeSandboxRuntime,
|
|
11
11
|
normalizeUrl
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-GJJA4CQZ.js";
|
|
13
13
|
import {
|
|
14
14
|
logger
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-JHENBQ5B.js";
|
|
16
16
|
|
|
17
17
|
// src/core/version-sync.ts
|
|
18
18
|
import { spawnSync } from "child_process";
|
|
@@ -23,9 +23,13 @@ import path from "path";
|
|
|
23
23
|
function shouldSkipUpdateCheck(argv = process.argv) {
|
|
24
24
|
if (process.env.AE_CLI_NO_UPDATE_CHECK === "1") return true;
|
|
25
25
|
if (process.env.CI === "true" || process.env.CI === "1") return true;
|
|
26
|
-
return argv.slice(2).some((arg) => {
|
|
26
|
+
return argv.slice(2).some((arg, index, args) => {
|
|
27
27
|
if (arg === "--no-update-check") return true;
|
|
28
|
-
if (arg === "--version"
|
|
28
|
+
if (arg === "--version") {
|
|
29
|
+
const value = args[index + 1];
|
|
30
|
+
return !value || value.startsWith("-");
|
|
31
|
+
}
|
|
32
|
+
if (arg === "-V" || arg === "--help" || arg === "-h") return true;
|
|
29
33
|
return false;
|
|
30
34
|
});
|
|
31
35
|
}
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
getConfigDir,
|
|
4
4
|
normalizeUrl,
|
|
5
5
|
safeJsonParse
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-GJJA4CQZ.js";
|
|
7
7
|
import {
|
|
8
8
|
logger
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-JHENBQ5B.js";
|
|
10
10
|
|
|
11
11
|
// src/core/secure-store.ts
|
|
12
12
|
import crypto from "crypto";
|
|
@@ -233,6 +233,25 @@ var SecureStoreAuthError = class extends Error {
|
|
|
233
233
|
}
|
|
234
234
|
};
|
|
235
235
|
|
|
236
|
+
// src/core/host-guidance.ts
|
|
237
|
+
var AE_TRIAL_URL = "https://thinkingai.cn/request-demo";
|
|
238
|
+
var AE_HOST_SETUP_COMMAND = "ae-cli config set-host <url>";
|
|
239
|
+
function missingAeHostHint(additionalAction) {
|
|
240
|
+
const actions = [
|
|
241
|
+
`If your organization already uses AgenticEngine, ask your administrator for its AE URL, then run: ${AE_HOST_SETUP_COMMAND}.`,
|
|
242
|
+
`If you do not have an AgenticEngine environment, request a trial: ${AE_TRIAL_URL}`
|
|
243
|
+
];
|
|
244
|
+
if (additionalAction) actions.push(additionalAction);
|
|
245
|
+
return actions.join(" ");
|
|
246
|
+
}
|
|
247
|
+
function missingAeHostGuidance() {
|
|
248
|
+
return {
|
|
249
|
+
configure_host: AE_HOST_SETUP_COMMAND,
|
|
250
|
+
existing_customer: "Ask your AgenticEngine administrator for the AE environment URL.",
|
|
251
|
+
request_trial_url: AE_TRIAL_URL
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
|
|
236
255
|
// src/core/auth.ts
|
|
237
256
|
function resolveHost(hostOverride) {
|
|
238
257
|
if (hostOverride) return normalizeUrl(hostOverride);
|
|
@@ -262,7 +281,7 @@ async function getToken(hostUrl) {
|
|
|
262
281
|
if (!hostUrl) {
|
|
263
282
|
throw new Error(
|
|
264
283
|
`No AE host configured.
|
|
265
|
-
|
|
284
|
+
` + missingAeHostHint()
|
|
266
285
|
);
|
|
267
286
|
}
|
|
268
287
|
try {
|
|
@@ -288,6 +307,9 @@ export {
|
|
|
288
307
|
clear,
|
|
289
308
|
loadCliToken,
|
|
290
309
|
SecureStoreAuthError,
|
|
310
|
+
AE_TRIAL_URL,
|
|
311
|
+
missingAeHostHint,
|
|
312
|
+
missingAeHostGuidance,
|
|
291
313
|
resolveHost,
|
|
292
314
|
validateToken,
|
|
293
315
|
invalidateAccessTokenForRetry,
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
load,
|
|
4
4
|
loadCliToken,
|
|
5
5
|
save
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YV52FB5G.js";
|
|
7
7
|
import {
|
|
8
8
|
getActiveHost,
|
|
9
9
|
getConfigDir,
|
|
@@ -12,10 +12,10 @@ import {
|
|
|
12
12
|
normalizeUrl,
|
|
13
13
|
safeJsonParse,
|
|
14
14
|
safeReadJsonFile
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-GJJA4CQZ.js";
|
|
16
16
|
import {
|
|
17
17
|
logger
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-JHENBQ5B.js";
|
|
19
19
|
|
|
20
20
|
// src/core/cli-token.ts
|
|
21
21
|
import fs from "fs";
|
|
@@ -6,10 +6,10 @@ import {
|
|
|
6
6
|
mintCliToken,
|
|
7
7
|
peekCliToken,
|
|
8
8
|
setCliTokenManual
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-Z3OXWCIA.js";
|
|
10
|
+
import "./chunk-YV52FB5G.js";
|
|
11
|
+
import "./chunk-GJJA4CQZ.js";
|
|
12
|
+
import "./chunk-JHENBQ5B.js";
|
|
13
13
|
export {
|
|
14
14
|
_resetRenewMemoryForTest,
|
|
15
15
|
clearCliToken,
|
|
@@ -7,10 +7,10 @@ import {
|
|
|
7
7
|
queryReportData,
|
|
8
8
|
querySql,
|
|
9
9
|
wsQuery
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-6A2FUCIS.js";
|
|
11
|
+
import "./chunk-YV52FB5G.js";
|
|
12
|
+
import "./chunk-GJJA4CQZ.js";
|
|
13
|
+
import "./chunk-JHENBQ5B.js";
|
|
14
14
|
export {
|
|
15
15
|
httpDelete,
|
|
16
16
|
httpGet,
|