@thinkingai/ae-cli 6.1.5 → 6.1.7

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 (203) hide show
  1. package/README.md +3 -2
  2. package/README.zh.md +3 -2
  3. package/dist/index.js +28 -20
  4. package/dist/{metadata-W2MEOI4Z.js → metadata-ELUAR3EJ.js} +0 -53
  5. package/dist/{metadata-3M5F2AED.js → metadata-P5GIVMZ6.js} +0 -53
  6. package/dist/{te-agent-K2OWMZXT.js → te-agent-BOQ7ZY56.js} +194 -1
  7. package/dist/{te-analysis-Q7AZCDU4.js → te-analysis-HZIP6SYW.js} +446 -562
  8. package/dist/{te-analysis-I73ZS4NK.js → te-analysis-ZT2MYAHL.js} +446 -562
  9. package/dist/{te-dataops-MJV54MNY.js → te-dataops-VYN3IOKO.js} +6 -6
  10. package/dist/{te-dataops-OA7I6HBG.js → te-dataops-Y5QAPPPF.js} +6 -6
  11. package/dist/{te-engage-GJRVQMK3.js → te-engage-2FSDUOIZ.js} +965 -1578
  12. package/dist/{te-engage-JIXX3WBI.js → te-engage-BMJ6UOUU.js} +965 -1578
  13. package/dist/te-experiment-4JC7WUKW.js +590 -0
  14. package/dist/te-experiment-KYRWAUZY.js +590 -0
  15. package/dist/{te-kb-CIZXRWMO.js → te-kb-E7NSCBRB.js} +25 -6
  16. package/dist/te-meta-GBDTMPEL.js +95 -0
  17. package/dist/te-meta-ZTLTSHXC.js +95 -0
  18. package/package.json +6 -5
  19. package/skills/ae-agent/SKILL.md +5 -1
  20. package/skills/ae-agent/references/list-sandbox-tools.md +79 -0
  21. package/skills/ae-analysis/SKILL.md +8 -9
  22. package/skills/ae-analysis/references/adhoc_export.md +8 -0
  23. package/skills/ae-analysis/references/adhoc_run.md +9 -0
  24. package/skills/ae-analysis/references/ai_models.md +3 -1
  25. package/skills/ae-analysis/references/analysis_data_retrieval.md +2 -0
  26. package/skills/ae-analysis/references/analysis_drilldown_contract.md +2 -0
  27. package/skills/ae-analysis/references/analysis_gateway_assets.md +9 -7
  28. package/skills/ae-analysis/references/command_index.md +18 -40
  29. package/skills/ae-analysis/references/dashboard_report_data_export.md +4 -2
  30. package/skills/ae-analysis/references/dashboard_report_data_run.md +5 -3
  31. package/skills/ae-analysis/references/drilldown_entities_export.md +3 -0
  32. package/skills/ae-analysis/references/drilldown_entities_run.md +2 -1
  33. package/skills/ae-analysis/references/drilldown_events_export.md +3 -0
  34. package/skills/ae-analysis/references/drilldown_events_run.md +2 -1
  35. package/skills/ae-analysis/references/drilldown_user_events_export.md +3 -0
  36. package/skills/ae-analysis/references/drilldown_user_events_run.md +2 -0
  37. package/skills/ae-analysis/references/entity_id_import_options.md +1 -1
  38. package/skills/ae-analysis/references/filter_value_list.md +47 -0
  39. package/skills/ae-analysis/references/project_space_get.md +3 -3
  40. package/skills/ae-analysis/references/project_space_list.md +6 -2
  41. package/skills/ae-analysis/references/query_cancel.md +3 -1
  42. package/skills/ae-analysis/references/query_cluster_list.md +34 -0
  43. package/skills/ae-analysis/references/query_create_result_cluster.md +2 -0
  44. package/skills/ae-analysis/references/report_create.md +5 -1
  45. package/skills/ae-analysis/references/report_data_export.md +9 -2
  46. package/skills/ae-analysis/references/report_data_run.md +8 -3
  47. package/skills/ae-analysis/references/report_get.md +3 -1
  48. package/skills/ae-analysis/references/report_update.md +4 -0
  49. package/skills/ae-analysis/references/virtual_event_create.md +7 -6
  50. package/skills/ae-analysis-global/SKILL.md +15 -32
  51. package/skills/ae-community/SKILL.md +1 -1
  52. package/skills/ae-data-integration-helper/SKILL.md +3 -2
  53. package/skills/ae-data-integration-helper/references/sdk_usage_notes.md +1 -1
  54. package/skills/ae-dataops/SKILL.md +2 -1
  55. package/skills/ae-dataops/references/dataops-integration.md +75 -6
  56. package/skills/ae-engage/SKILL.md +127 -104
  57. package/skills/ae-engage/references/activity-activity-type.md +1 -1
  58. package/skills/ae-engage/references/activity-activity.md +1 -1
  59. package/skills/ae-engage/references/activity-approval.md +5 -7
  60. package/skills/ae-engage/references/activity-task.md +12 -18
  61. package/skills/ae-engage/references/activity-topic.md +39 -22
  62. package/skills/ae-engage/references/add-approver.md +4 -4
  63. package/skills/ae-engage/references/add-channel.md +10 -5
  64. package/skills/ae-engage/references/approval-approver-delete.md +1 -1
  65. package/skills/ae-engage/references/approver-list.md +4 -4
  66. package/skills/ae-engage/references/build-task-save-guide.md +13 -13
  67. package/skills/ae-engage/references/cancel-query-by-request-id.md +7 -6
  68. package/skills/ae-engage/references/channel-detail.md +14 -9
  69. package/skills/ae-engage/references/channel-list.md +15 -10
  70. package/skills/ae-engage/references/channel-mgmt.md +109 -0
  71. package/skills/ae-engage/references/channel-test-send.md +1 -1
  72. package/skills/ae-engage/references/channel-update-config.md +1 -1
  73. package/skills/ae-engage/references/channel_touch_limits_list.md +1 -1
  74. package/skills/ae-engage/references/client-param.md +34 -16
  75. package/skills/ae-engage/references/common-metric.md +85 -18
  76. package/skills/ae-engage/references/config-item-analysis-report.md +8 -27
  77. package/skills/ae-engage/references/config-item-strategy-comparison.md +7 -18
  78. package/skills/ae-engage/references/config-item-trigger-report.md +8 -35
  79. package/skills/ae-engage/references/delete-channel.md +5 -5
  80. package/skills/ae-engage/references/delete-flow.md +5 -5
  81. package/skills/ae-engage/references/flow-ab-split-node-report.md +11 -45
  82. package/skills/ae-engage/references/flow-detail.md +15 -10
  83. package/skills/ae-engage/references/flow-list.md +9 -4
  84. package/skills/ae-engage/references/flow-node-config-schema.md +9 -8
  85. package/skills/ae-engage/references/flow-node-detail-report.md +11 -46
  86. package/skills/ae-engage/references/flow-node-overview-report.md +11 -43
  87. package/skills/ae-engage/references/flow-process-report.md +12 -50
  88. package/skills/ae-engage/references/flow-update-remark.md +19 -0
  89. package/skills/ae-engage/references/manage-flow.md +19 -19
  90. package/skills/ae-engage/references/manage-task.md +5 -5
  91. package/skills/ae-engage/references/modify-flow-base-info.md +8 -8
  92. package/skills/ae-engage/references/preset-event.md +1 -1
  93. package/skills/ae-engage/references/push-language.md +1 -1
  94. package/skills/ae-engage/references/save-flow.md +54 -52
  95. package/skills/ae-engage/references/save-task.md +23 -17
  96. package/skills/ae-engage/references/scene-config-channel.md +90 -10
  97. package/skills/ae-engage/references/scene-config-group.md +1 -1
  98. package/skills/ae-engage/references/scene-config-item.md +27 -4
  99. package/skills/ae-engage/references/scene-config-metric.md +1 -1
  100. package/skills/ae-engage/references/scene-config-param.md +2 -2
  101. package/skills/ae-engage/references/scene-preset-metric.md +1 -1
  102. package/skills/ae-engage/references/scene-strategy.md +19 -3
  103. package/skills/ae-engage/references/scene-template.md +10 -4
  104. package/skills/ae-engage/references/task-data-detail.md +5 -67
  105. package/skills/ae-engage/references/task-data-overview.md +5 -35
  106. package/skills/ae-engage/references/task-detail.md +5 -5
  107. package/skills/ae-engage/references/task-experiment-report.md +5 -38
  108. package/skills/ae-engage/references/task-list.md +4 -4
  109. package/skills/ae-engage/references/task-metric-detail.md +5 -43
  110. package/skills/ae-engage/references/task-stats.md +5 -5
  111. package/skills/ae-engage/references/update-channel-status.md +6 -6
  112. package/skills/ae-engage/references/validate-flow-node-config.md +12 -11
  113. package/skills/ae-engage/references/whitelist-list.md +4 -4
  114. package/skills/ae-engage/references/whitelist.md +1 -1
  115. package/skills/ae-engage/references/workbench-workbench.md +1 -1
  116. package/skills/ae-experiment/SKILL.md +30 -20
  117. package/skills/ae-experiment/references/batch_delete_experiment.md +4 -4
  118. package/skills/ae-experiment/references/batch_delete_feature.md +3 -3
  119. package/skills/ae-experiment/references/batch_delete_traffic_layer.md +4 -4
  120. package/skills/ae-experiment/references/cancel_experiment_query_by_request_id.md +5 -4
  121. package/skills/ae-experiment/references/check_experiment_ready.md +7 -5
  122. package/skills/ae-experiment/references/check_experiment_traffic_layer_conflict.md +37 -0
  123. package/skills/ae-experiment/references/delete_metric.md +4 -4
  124. package/skills/ae-experiment/references/manage_experiment.md +8 -6
  125. package/skills/ae-experiment/references/manage_feature_status.md +3 -3
  126. package/skills/ae-experiment/references/query_bucket_list.md +5 -3
  127. package/skills/ae-experiment/references/query_experiment_detail.md +6 -4
  128. package/skills/ae-experiment/references/query_experiment_list.md +12 -4
  129. package/skills/ae-experiment/references/query_experiment_list_archived.md +15 -0
  130. package/skills/ae-experiment/references/query_experiment_metric_trend.md +6 -10
  131. package/skills/ae-experiment/references/query_experiment_operation_log.md +17 -0
  132. package/skills/ae-experiment/references/query_experiment_report_summary.md +5 -6
  133. package/skills/ae-experiment/references/query_experiment_sample_size_report.md +6 -10
  134. package/skills/ae-experiment/references/query_feature_detail.md +6 -4
  135. package/skills/ae-experiment/references/query_feature_list.md +5 -3
  136. package/skills/ae-experiment/references/query_feature_operation_log.md +19 -0
  137. package/skills/ae-experiment/references/query_feature_version_list.md +20 -0
  138. package/skills/ae-experiment/references/query_metric_detail.md +6 -4
  139. package/skills/ae-experiment/references/query_metric_list.md +5 -3
  140. package/skills/ae-experiment/references/query_traffic_layer_detail.md +6 -4
  141. package/skills/ae-experiment/references/query_traffic_layer_list.md +5 -3
  142. package/skills/ae-experiment/references/save_experiment.md +148 -9
  143. package/skills/ae-experiment/references/save_feature.md +3 -3
  144. package/skills/ae-experiment/references/save_metric.md +3 -3
  145. package/skills/ae-experiment/references/save_submit_experiment.md +6 -6
  146. package/skills/ae-experiment/references/save_traffic_layer.md +3 -3
  147. package/skills/ae-experiment/references/update_experiment_group.md +20 -0
  148. package/skills/ae-generate-tracking-code/SKILL.md +4 -3
  149. package/skills/ae-generate-tracking-code/references/client-sdk-insert.md +1 -1
  150. package/skills/ae-generate-tracking-code/references/server-sdk-insert.md +1 -1
  151. package/skills/ae-generate-tracking-code/references/snippet-delivery.md +1 -1
  152. package/skills/ae-generate-tracking-plan/SKILL.md +6 -2
  153. package/skills/ae-kb/SKILL.md +9 -5
  154. package/skills/ae-metadata/SKILL.md +8 -15
  155. package/skills/ae-metadata/references/metadata_property_dimension_table_bind_existing.md +1 -1
  156. package/dist/te-common-ST3QPSXJ.js +0 -61
  157. package/dist/te-common-WSLIKKPC.js +0 -61
  158. package/dist/te-experiment-JKX4FH6D.js +0 -607
  159. package/dist/te-experiment-UMSHBBKI.js +0 -607
  160. package/dist/te-meta-Q4L6EE3Q.js +0 -363
  161. package/dist/te-meta-VHCN4Q62.js +0 -363
  162. package/skills/ae-analysis/references/batch_create_metadata.md +0 -41
  163. package/skills/ae-analysis/references/batch_edit_metadata.md +0 -39
  164. package/skills/ae-analysis/references/cancel_query.md +0 -38
  165. package/skills/ae-analysis/references/create_alert.md +0 -47
  166. package/skills/ae-analysis/references/create_entity.md +0 -39
  167. package/skills/ae-analysis/references/create_project_mark_time.md +0 -39
  168. package/skills/ae-analysis/references/delete_alert.md +0 -32
  169. package/skills/ae-analysis/references/delete_project_mark_times.md +0 -36
  170. package/skills/ae-analysis/references/delete_track_items.md +0 -36
  171. package/skills/ae-analysis/references/generate_track_program.md +0 -52
  172. package/skills/ae-analysis/references/generate_track_sdk_sample.md +0 -44
  173. package/skills/ae-analysis/references/get_alert.md +0 -35
  174. package/skills/ae-analysis/references/get_alert_definition_schema.md +0 -33
  175. package/skills/ae-analysis/references/get_project_config.md +0 -33
  176. package/skills/ae-analysis/references/get_track_program.md +0 -34
  177. package/skills/ae-analysis/references/list_alerts.md +0 -41
  178. package/skills/ae-analysis/references/list_entities.md +0 -42
  179. package/skills/ae-analysis/references/list_project_mark_times.md +0 -43
  180. package/skills/ae-analysis/references/list_project_users.md +0 -33
  181. package/skills/ae-analysis/references/list_projects.md +0 -39
  182. package/skills/ae-analysis/references/load_filters.md +0 -47
  183. package/skills/ae-analysis/references/save_track_items.md +0 -37
  184. package/skills/ae-analysis/references/update_alert.md +0 -49
  185. package/skills/ae-analysis/references/update_project_mark_time.md +0 -40
  186. package/skills/ae-analysis-global/references/list_query_clusters.md +0 -68
  187. package/skills/ae-engage/references/config-channel-detail.md +0 -31
  188. package/skills/ae-engage/references/config-channel-list.md +0 -26
  189. package/skills/ae-engage/references/config-item-detail.md +0 -29
  190. package/skills/ae-engage/references/config-item-list.md +0 -18
  191. package/skills/ae-engage/references/copy-config-template.md +0 -28
  192. package/skills/ae-engage/references/delete-config-channel.md +0 -23
  193. package/skills/ae-engage/references/delete-config-item.md +0 -24
  194. package/skills/ae-engage/references/engage-scene-config-item.md +0 -69
  195. package/skills/ae-engage/references/manage-strategy.md +0 -73
  196. package/skills/ae-engage/references/strategy-detail.md +0 -72
  197. package/skills/ae-engage/references/strategy-list.md +0 -20
  198. package/skills/ae-engage/references/update-config-channel-status.md +0 -31
  199. package/skills/ae-metadata/references/metadata_event_get.md +0 -52
  200. package/skills/ae-metadata/references/metadata_property_get.md +0 -54
  201. package/dist/{config-RCCGHHYA.js → config-PMPISN5Y.js} +4 -4
  202. package/dist/{te-community-WXGB6IOX.js → te-community-QOYIYEJI.js} +3 -3
  203. package/dist/{te-community-X2AHXGCA.js → te-community-UFKI6ONP.js} +3 -3
package/README.md CHANGED
@@ -52,7 +52,8 @@ ae-cli kb +add --name engineering-handbook --files '["./docs/guide.md","https://
52
52
  ae-cli kb +schema --name engineering-handbook
53
53
  ae-cli kb +compile --name engineering-handbook
54
54
  ae-cli kb +query -q "How to configure sandbox?" \
55
- --sources '[{"scope":"company","name":"engineering-handbook"}]'
55
+ --sources '[{"scope":"company","name":"engineering-handbook"}]' \
56
+ --top-k 10
56
57
 
57
58
  # Retrieval primitives for external agents (read index → grep → read page)
58
59
  ae-cli kb +index --sources '[{"scope":"company","name":"engineering-handbook"}]'
@@ -107,7 +108,7 @@ Knowledge base lifecycle (`+new` → `+add` → `+schema` → `+compile` → `+s
107
108
  - **Schema** (`+schema`): `--name`, optional `--force`, `--model`
108
109
  - **Compile** (`+compile`): `--name`, `--mode incremental|full` (default: incremental)
109
110
  - **Status** (`+status`): `--name`
110
- - **Query** (`+query`): `--query` / `-q`, `--sources` JSON refs e.g. `[{"scope":"company","name":"engineering-handbook"}]`
111
+ - **Query** (`+query`): `--query` / `-q`, optional `--sources` JSON refs (omit to search all accessible KBs), `--top-k` (1-50, default 10), `--locale`
111
112
  - **Remove source** (`+rm-source`): `--name`, `--display-name`
112
113
  - **Remove KB** (`+remove`): `--name`
113
114
 
package/README.zh.md CHANGED
@@ -52,7 +52,8 @@ ae-cli kb +add --name engineering-handbook --files '["./docs/guide.md","https://
52
52
  ae-cli kb +schema --name engineering-handbook
53
53
  ae-cli kb +compile --name engineering-handbook
54
54
  ae-cli kb +query -q "如何配置 sandbox 容器?" \
55
- --sources '[{"scope":"company","name":"engineering-handbook"}]'
55
+ --sources '[{"scope":"company","name":"engineering-handbook"}]' \
56
+ --top-k 10
56
57
 
57
58
  # 面向外部 agent 的检索原语(读 index → grep 定位 → read 翻页)
58
59
  ae-cli kb +index --sources '[{"scope":"company","name":"engineering-handbook"}]'
@@ -108,7 +109,7 @@ ae-cli auth logout
108
109
  - **生成 schema** (`+schema`):`--name`,可选 `--force`、`--model`
109
110
  - **编译** (`+compile`):`--name`,`--mode incremental|full`(默认 incremental)
110
111
  - **查询状态** (`+status`):`--name`
111
- - **查询** (`+query`):`--query` / `-q`,`--sources` JSON 引用,如 `[{"scope":"company","name":"engineering-handbook"}]`
112
+ - **查询** (`+query`):`--query` / `-q`,可选 `--sources` JSON 引用(省略则搜索全部可访问知识库)、`--top-k`(1-50,默认 10)、`--locale`
112
113
  - **删除源** (`+rm-source`):`--name`,`--display-name`
113
114
  - **删除知识库** (`+remove`):`--name`
114
115
 
package/dist/index.js CHANGED
@@ -1,6 +1,3 @@
1
- import {
2
- getLocalCliPackageInfo
3
- } from "./chunk-VTWMIC5L.js";
4
1
  import {
5
2
  requiresConfirmation
6
3
  } from "./chunk-OO6XR6LK.js";
@@ -8,6 +5,9 @@ import {
8
5
  TeAgentApiError,
9
6
  TeAgentCredentialsError
10
7
  } from "./chunk-4Q5TNP4Q.js";
8
+ import {
9
+ getLocalCliPackageInfo
10
+ } from "./chunk-VTWMIC5L.js";
11
11
  import {
12
12
  CapabilityGatewayError,
13
13
  executeCapability,
@@ -1689,6 +1689,7 @@ var AUTOTRACK_I18N = {
1689
1689
  desc: { zh: "\u6E38\u620F\u573A\u666F\uFF08Scene\uFF09\u5378\u8F7D\u65F6\u89E6\u53D1", en: "Triggered when a game scene is unloaded", ja: "\u30B2\u30FC\u30E0\u30B7\u30FC\u30F3\uFF08Scene\uFF09\u306E\u30A2\u30F3\u30ED\u30FC\u30C9\u6642\u306B\u767A\u751F", ko: "\uAC8C\uC784 \uC52C(Scene)\uC774 \uC5B8\uB85C\uB4DC\uB420 \uB54C \uBC1C\uC0DD\uD569\uB2C8\uB2E4" }
1690
1690
  }
1691
1691
  };
1692
+ var ALL_AUTOTRACK_EVENT_NAMES = new Set(Object.keys(AUTOTRACK_I18N));
1692
1693
  function makeAutotrackEvent(eventName, locale) {
1693
1694
  const i18n = AUTOTRACK_I18N[eventName];
1694
1695
  return {
@@ -1775,6 +1776,13 @@ function injectAutotrackEvents(draft, locale = "zh") {
1775
1776
  } else {
1776
1777
  autotrackEvents = getAutotrackEvents(sdkTypeOrPlatforms, locale);
1777
1778
  }
1779
+ const validNames = new Set(autotrackEvents.map((e) => e.event_name));
1780
+ draft.events = draft.events.filter((e) => {
1781
+ if (ALL_AUTOTRACK_EVENT_NAMES.has(e.event_name)) {
1782
+ return validNames.has(e.event_name);
1783
+ }
1784
+ return true;
1785
+ });
1778
1786
  const existingNames = new Set(draft.events.map((e) => e.event_name));
1779
1787
  const newEvents = autotrackEvents.filter((e) => !existingNames.has(e.event_name));
1780
1788
  const eventsWithPlatform = newEvents.map((e) => ({
@@ -3359,6 +3367,11 @@ function getOrCreateCommand(parent, name, description) {
3359
3367
  return parent.command(name).description(description);
3360
3368
  }
3361
3369
 
3370
+ // src/framework/program-lifecycle.ts
3371
+ async function parseProgram(program2, argv = process.argv) {
3372
+ await program2.parseAsync(argv);
3373
+ }
3374
+
3362
3375
  // src/index.ts
3363
3376
  var require2 = createRequire(import.meta.url);
3364
3377
  var pkg = require2("../package.json");
@@ -3376,42 +3389,37 @@ program.name("ae-cli").version(version).description("CLI tool for ThinkingAI (AE
3376
3389
  async function loadCommands() {
3377
3390
  const commands = [];
3378
3391
  try {
3379
- const teAnalysis = await import("./te-analysis-Q7AZCDU4.js");
3392
+ const teAnalysis = await import("./te-analysis-HZIP6SYW.js");
3380
3393
  commands.push(...teAnalysis.default);
3381
3394
  } catch {
3382
3395
  }
3383
3396
  try {
3384
- const teMeta = await import("./te-meta-VHCN4Q62.js");
3397
+ const teMeta = await import("./te-meta-ZTLTSHXC.js");
3385
3398
  commands.push(...teMeta.default);
3386
3399
  } catch {
3387
3400
  }
3388
3401
  try {
3389
- const teCommon = await import("./te-common-ST3QPSXJ.js");
3390
- commands.push(...teCommon.default);
3391
- } catch {
3392
- }
3393
- try {
3394
- const engage = await import("./te-engage-JIXX3WBI.js");
3402
+ const engage = await import("./te-engage-BMJ6UOUU.js");
3395
3403
  commands.push(...engage.default);
3396
3404
  } catch {
3397
3405
  }
3398
3406
  try {
3399
- const experiment = await import("./te-experiment-JKX4FH6D.js");
3407
+ const experiment = await import("./te-experiment-4JC7WUKW.js");
3400
3408
  commands.push(...experiment.default);
3401
3409
  } catch {
3402
3410
  }
3403
3411
  try {
3404
- const community = await import("./te-community-X2AHXGCA.js");
3412
+ const community = await import("./te-community-UFKI6ONP.js");
3405
3413
  commands.push(...community.default);
3406
3414
  } catch {
3407
3415
  }
3408
3416
  try {
3409
- const dataops = await import("./te-dataops-OA7I6HBG.js");
3417
+ const dataops = await import("./te-dataops-Y5QAPPPF.js");
3410
3418
  commands.push(...dataops.default);
3411
3419
  } catch {
3412
3420
  }
3413
3421
  try {
3414
- const teKb = await import("./te-kb-CIZXRWMO.js");
3422
+ const teKb = await import("./te-kb-E7NSCBRB.js");
3415
3423
  commands.push(...teKb.default);
3416
3424
  } catch {
3417
3425
  }
@@ -3421,12 +3429,12 @@ async function loadCommands() {
3421
3429
  } catch {
3422
3430
  }
3423
3431
  try {
3424
- const teAgent = await import("./te-agent-K2OWMZXT.js");
3432
+ const teAgent = await import("./te-agent-BOQ7ZY56.js");
3425
3433
  commands.push(...teAgent.default);
3426
3434
  } catch {
3427
3435
  }
3428
3436
  try {
3429
- const metadata = await import("./metadata-3M5F2AED.js");
3437
+ const metadata = await import("./metadata-P5GIVMZ6.js");
3430
3438
  commands.push(...metadata.default);
3431
3439
  } catch {
3432
3440
  }
@@ -3441,7 +3449,7 @@ async function registerAuthCommands() {
3441
3449
  }
3442
3450
  async function registerConfigCommands() {
3443
3451
  try {
3444
- const { registerConfig } = await import("./config-RCCGHHYA.js");
3452
+ const { registerConfig } = await import("./config-PMPISN5Y.js");
3445
3453
  registerConfig(program);
3446
3454
  } catch {
3447
3455
  }
@@ -3488,9 +3496,9 @@ async function main() {
3488
3496
  await registerModelCommand();
3489
3497
  registerTracking(program);
3490
3498
  rejectUnknownHelpCommandPath(program, process.argv.slice(2));
3491
- program.parse();
3499
+ await parseProgram(program);
3492
3500
  }
3493
- main();
3501
+ await main();
3494
3502
  function rejectUnknownHelpCommandPath(root, args) {
3495
3503
  if (!args.includes("--help") && !args.includes("-h")) {
3496
3504
  return;
@@ -72,57 +72,6 @@ function normalizeDataTableColumns(value, kind) {
72
72
  });
73
73
  }
74
74
 
75
- // src/commands/metadata/event/get.ts
76
- var eventGet = createCapabilityCommand2({
77
- resource: "event",
78
- command: "get",
79
- capabilityId: "metadata.event.get",
80
- description: "Get one super-event metadata detail, including virtual event definitions. Requires metadata view permission in the target project.",
81
- flags: [
82
- { name: "project-id", type: "number", required: true, desc: "Numeric project ID.", alias: "p" },
83
- {
84
- name: "event-name",
85
- type: "string",
86
- required: true,
87
- desc: "Super-event technical name. Virtual events use the same field."
88
- }
89
- ],
90
- risk: "read",
91
- buildInput: (ctx) => ({
92
- project_id: ctx.num("project-id"),
93
- event_name: ctx.str("event-name")
94
- })
95
- });
96
-
97
- // src/commands/metadata/property/get.ts
98
- var propertyGet = createCapabilityCommand2({
99
- resource: "property",
100
- command: "get",
101
- capabilityId: "metadata.property.get",
102
- description: "Get one super-property metadata detail, including virtual property definitions. Requires metadata view permission in the target project.",
103
- flags: [
104
- { name: "project-id", type: "number", required: true, desc: "Numeric project ID.", alias: "p" },
105
- {
106
- name: "prop-name",
107
- type: "string",
108
- required: true,
109
- desc: "Property column name."
110
- },
111
- {
112
- name: "table-type",
113
- type: "string",
114
- required: true,
115
- desc: "Property table type: event or user."
116
- }
117
- ],
118
- risk: "read",
119
- buildInput: (ctx) => ({
120
- project_id: ctx.num("project-id"),
121
- table_type: ctx.str("table-type"),
122
- prop_name: ctx.str("prop-name")
123
- })
124
- });
125
-
126
75
  // src/commands/metadata/data-table/csv-delete.ts
127
76
  var dataTableCsvDelete = createCapabilityCommand2({
128
77
  resource: "data-table",
@@ -359,8 +308,6 @@ var propertyDimensionTableCreateAndBindCsv = createCapabilityCommand2({
359
308
  // src/commands/metadata/index.ts
360
309
  registerCapabilityGatewayRoute("metadata", { gatewayDomain: "analysis" });
361
310
  var commands = [
362
- eventGet,
363
- propertyGet,
364
311
  dataTableList,
365
312
  dataTableGet,
366
313
  dataTableCsvWrite,
@@ -72,57 +72,6 @@ function normalizeDataTableColumns(value, kind) {
72
72
  });
73
73
  }
74
74
 
75
- // src/commands/metadata/event/get.ts
76
- var eventGet = createCapabilityCommand2({
77
- resource: "event",
78
- command: "get",
79
- capabilityId: "metadata.event.get",
80
- description: "Get one super-event metadata detail, including virtual event definitions. Requires metadata view permission in the target project.",
81
- flags: [
82
- { name: "project-id", type: "number", required: true, desc: "Numeric project ID.", alias: "p" },
83
- {
84
- name: "event-name",
85
- type: "string",
86
- required: true,
87
- desc: "Super-event technical name. Virtual events use the same field."
88
- }
89
- ],
90
- risk: "read",
91
- buildInput: (ctx) => ({
92
- project_id: ctx.num("project-id"),
93
- event_name: ctx.str("event-name")
94
- })
95
- });
96
-
97
- // src/commands/metadata/property/get.ts
98
- var propertyGet = createCapabilityCommand2({
99
- resource: "property",
100
- command: "get",
101
- capabilityId: "metadata.property.get",
102
- description: "Get one super-property metadata detail, including virtual property definitions. Requires metadata view permission in the target project.",
103
- flags: [
104
- { name: "project-id", type: "number", required: true, desc: "Numeric project ID.", alias: "p" },
105
- {
106
- name: "prop-name",
107
- type: "string",
108
- required: true,
109
- desc: "Property column name."
110
- },
111
- {
112
- name: "table-type",
113
- type: "string",
114
- required: true,
115
- desc: "Property table type: event or user."
116
- }
117
- ],
118
- risk: "read",
119
- buildInput: (ctx) => ({
120
- project_id: ctx.num("project-id"),
121
- table_type: ctx.str("table-type"),
122
- prop_name: ctx.str("prop-name")
123
- })
124
- });
125
-
126
75
  // src/commands/metadata/data-table/csv-delete.ts
127
76
  var dataTableCsvDelete = createCapabilityCommand2({
128
77
  resource: "data-table",
@@ -359,8 +308,6 @@ var propertyDimensionTableCreateAndBindCsv = createCapabilityCommand2({
359
308
  // src/commands/metadata/index.ts
360
309
  registerCapabilityGatewayRoute("metadata", { gatewayDomain: "analysis" });
361
310
  var commands = [
362
- eventGet,
363
- propertyGet,
364
311
  dataTableList,
365
312
  dataTableGet,
366
313
  dataTableCsvWrite,
@@ -2471,6 +2471,197 @@ var updateAutomation = {
2471
2471
  )
2472
2472
  };
2473
2473
 
2474
+ // src/commands/te-agent/sandbox-tools.ts
2475
+ import {
2476
+ accessSync,
2477
+ closeSync,
2478
+ constants,
2479
+ existsSync as existsSync3,
2480
+ lstatSync,
2481
+ openSync,
2482
+ readSync,
2483
+ readdirSync,
2484
+ realpathSync
2485
+ } from "fs";
2486
+ import { isAbsolute, join, relative, resolve as resolve3 } from "path";
2487
+ var SANDBOX_BIN_DIR = "/home/ta/.local/bin";
2488
+ var SANDBOX_SHARE_ROOT = process.env.SANDBOX_SYSTEM_SHARE_ROOT ?? "/data/app/te_agent_ta/share";
2489
+ var SHIM_MARKER = "managed-by: te-agent-sandbox-tools";
2490
+ var MAX_SHIM_BYTES = 16 * 1024;
2491
+ var NAME_RE = /^[a-z][a-z0-9._-]{0,63}$/;
2492
+ function hasControlCharacters(value) {
2493
+ return /[\x00-\x1f\x7f]/.test(value);
2494
+ }
2495
+ function readShimHeader(filePath, size) {
2496
+ const buffer = Buffer.alloc(Math.min(size, MAX_SHIM_BYTES));
2497
+ const fd = openSync(filePath, "r");
2498
+ try {
2499
+ const bytesRead = readSync(fd, buffer, 0, buffer.length, 0);
2500
+ return buffer.toString("utf8", 0, bytesRead);
2501
+ } finally {
2502
+ closeSync(fd);
2503
+ }
2504
+ }
2505
+ function parseShim(filePath) {
2506
+ const fallback = {
2507
+ managed: false,
2508
+ tool: "",
2509
+ version: "unknown",
2510
+ command: "",
2511
+ target: ""
2512
+ };
2513
+ try {
2514
+ const stat = lstatSync(filePath);
2515
+ if (!stat.isFile() || stat.isSymbolicLink()) return fallback;
2516
+ const lines = readShimHeader(filePath, stat.size).split("\n").slice(0, 10);
2517
+ const managed = lines.includes(`# ${SHIM_MARKER}`);
2518
+ if (!managed) return fallback;
2519
+ if (stat.size > MAX_SHIM_BYTES) {
2520
+ return { ...fallback, managed: true, reason: "shim exceeds size limit" };
2521
+ }
2522
+ const values = /* @__PURE__ */ new Map();
2523
+ for (const line of lines) {
2524
+ if (line === `# ${SHIM_MARKER}`) continue;
2525
+ const match = /^# (tool|version|command|target|runtime): (.*)$/.exec(
2526
+ line
2527
+ );
2528
+ if (!match) continue;
2529
+ if (values.has(match[1])) {
2530
+ return { ...fallback, managed, reason: `duplicate ${match[1]} marker` };
2531
+ }
2532
+ values.set(match[1], match[2].trim());
2533
+ }
2534
+ const tool = values.get("tool") ?? "";
2535
+ const version = values.get("version") || "unknown";
2536
+ const command = values.get("command") ?? "";
2537
+ const target = values.get("target") ?? "";
2538
+ const runtimeValue = values.get("runtime");
2539
+ const runtime = runtimeValue === "node" || runtimeValue === "native" ? runtimeValue : void 0;
2540
+ if (!NAME_RE.test(tool) || !NAME_RE.test(command)) {
2541
+ return {
2542
+ ...fallback,
2543
+ managed: true,
2544
+ reason: "invalid tool or command marker"
2545
+ };
2546
+ }
2547
+ if (version.length > 64 || hasControlCharacters(version) || hasControlCharacters(target) || !isAbsolute(target)) {
2548
+ return {
2549
+ ...fallback,
2550
+ managed: true,
2551
+ tool,
2552
+ command,
2553
+ reason: "invalid version or target marker"
2554
+ };
2555
+ }
2556
+ if (runtimeValue && !runtime) {
2557
+ return {
2558
+ ...fallback,
2559
+ managed: true,
2560
+ tool,
2561
+ version,
2562
+ command,
2563
+ target,
2564
+ reason: "invalid runtime marker"
2565
+ };
2566
+ }
2567
+ return { managed: true, tool, version, command, target, runtime };
2568
+ } catch {
2569
+ return fallback;
2570
+ }
2571
+ }
2572
+ function isInsideOrEqual(candidate, root) {
2573
+ const rel = relative(root, candidate);
2574
+ return rel === "" || !rel.startsWith("..") && !isAbsolute(rel);
2575
+ }
2576
+ function classifyShim(parsed, toolsRoot) {
2577
+ if (parsed.reason) return { status: "broken", reason: parsed.reason };
2578
+ if (!parsed.target)
2579
+ return { status: "broken", reason: "shim missing target marker" };
2580
+ let realRoot;
2581
+ try {
2582
+ realRoot = realpathSync(resolve3(toolsRoot));
2583
+ } catch {
2584
+ return { status: "broken", reason: "tools root missing" };
2585
+ }
2586
+ let realTarget;
2587
+ try {
2588
+ realTarget = realpathSync(parsed.target);
2589
+ } catch {
2590
+ return { status: "broken", reason: "target missing" };
2591
+ }
2592
+ if (!isInsideOrEqual(realTarget, realRoot)) {
2593
+ return { status: "broken", reason: "target outside tools root" };
2594
+ }
2595
+ try {
2596
+ if (!lstatSync(realTarget).isFile()) {
2597
+ return { status: "broken", reason: "target not a file" };
2598
+ }
2599
+ accessSync(
2600
+ realTarget,
2601
+ parsed.runtime === "native" ? constants.X_OK : constants.R_OK
2602
+ );
2603
+ } catch {
2604
+ return {
2605
+ status: "broken",
2606
+ reason: parsed.runtime === "native" ? "target not executable" : "target not readable"
2607
+ };
2608
+ }
2609
+ return { status: "active" };
2610
+ }
2611
+ function scanSandboxTools(options = {}) {
2612
+ const binDir = options.binDir ?? SANDBOX_BIN_DIR;
2613
+ const toolsRoot = options.toolsRoot ?? join(SANDBOX_SHARE_ROOT, "tools");
2614
+ if (!existsSync3(binDir)) {
2615
+ return { tools: [], summary: { total: 0, active: 0, broken: 0 } };
2616
+ }
2617
+ const all = [];
2618
+ for (const name of readdirSync(binDir).sort()) {
2619
+ const filePath = join(binDir, name);
2620
+ const parsed = parseShim(filePath);
2621
+ if (!parsed.managed) continue;
2622
+ const { status, reason } = classifyShim(parsed, toolsRoot);
2623
+ all.push({
2624
+ tool: parsed.tool || "unknown",
2625
+ version: parsed.version || "unknown",
2626
+ command: parsed.command || name,
2627
+ runtime: parsed.runtime ?? "unknown",
2628
+ target: parsed.target,
2629
+ status,
2630
+ reason
2631
+ });
2632
+ }
2633
+ const active = all.filter((entry) => entry.status === "active").length;
2634
+ const broken = all.filter((entry) => entry.status === "broken").length;
2635
+ const tools = options.status ? all.filter((entry) => entry.status === options.status) : all;
2636
+ return { tools, summary: { total: all.length, active, broken } };
2637
+ }
2638
+ var listSandboxTools = {
2639
+ service: "agent",
2640
+ command: "+list-sandbox-tools",
2641
+ description: "List managed tools in the current sandbox and verify their targets and permissions",
2642
+ flags: [
2643
+ {
2644
+ name: "status",
2645
+ type: "string",
2646
+ required: false,
2647
+ desc: "Filter by status: active | broken"
2648
+ }
2649
+ ],
2650
+ risk: "read",
2651
+ validate: (ctx) => {
2652
+ const status = ctx.str("status");
2653
+ if (status && !["active", "broken"].includes(status)) {
2654
+ throw new Error("--status must be active or broken");
2655
+ }
2656
+ },
2657
+ dryRun: () => ({
2658
+ method: "LOCAL_SCAN",
2659
+ url: SANDBOX_BIN_DIR,
2660
+ body: { marker: SHIM_MARKER, toolsRoot: join(SANDBOX_SHARE_ROOT, "tools") }
2661
+ }),
2662
+ execute: async (ctx) => scanSandboxTools({ status: ctx.str("status") })
2663
+ };
2664
+
2474
2665
  // src/commands/te-agent/index.ts
2475
2666
  var commands = [
2476
2667
  // Agent CRUD
@@ -2547,7 +2738,9 @@ var commands = [
2547
2738
  // Automate tasks
2548
2739
  listAutomations,
2549
2740
  createAutomation,
2550
- updateAutomation
2741
+ updateAutomation,
2742
+ // Sandbox tools (local scan of /home/ta/.local/bin managed shims)
2743
+ listSandboxTools
2551
2744
  ];
2552
2745
  var te_agent_default = commands;
2553
2746
  export {