@thinkingai/ae-cli 6.0.45 → 6.0.46

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 (88) hide show
  1. package/dist/{auth-2WTQOP77.js → auth-GBMV6TEJ.js} +3 -3
  2. package/dist/{auth-77BUFLGC.js → auth-ROB2EDYV.js} +12 -13
  3. package/dist/{capability-WA37LSIR.js → capability-GQ47BCFI.js} +49 -12
  4. package/dist/{capability-ENHWPMTG.js → capability-IINANQJA.js} +50 -13
  5. package/dist/{chunk-QI524WPY.js → chunk-2MN54X6H.js} +5 -5
  6. package/dist/chunk-3FY3RJ26.js +293 -0
  7. package/dist/{chunk-PTE56QPL.js → chunk-3KWQYGYI.js} +4 -0
  8. package/dist/{chunk-UOUS37JQ.js → chunk-4XXOWOTA.js} +3 -3
  9. package/dist/{chunk-GT46FPXN.js → chunk-BYYS3ANB.js} +17 -8
  10. package/dist/{chunk-EE45RGOO.js → chunk-DQRPU6EE.js} +3 -3
  11. package/dist/{chunk-MGU2N3HW.js → chunk-GJLGIMAO.js} +3 -3
  12. package/dist/{chunk-4SGZG4XY.js → chunk-J2DEBMRF.js} +9 -7
  13. package/dist/{chunk-LYVNONC4.js → chunk-JHENBQ5B.js} +35 -0
  14. package/dist/{chunk-ILIU36SU.js → chunk-OMPRXM3V.js} +3 -3
  15. package/dist/{chunk-VPKZ7I72.js → chunk-QNOLN2LJ.js} +2 -2
  16. package/dist/chunk-RJDU7NYP.js +1198 -0
  17. package/dist/{chunk-4KVPKXFX.js → chunk-RNAALWJK.js} +2 -2
  18. package/dist/{chunk-C4MGVGJW.js → chunk-SERWF6G5.js} +1 -1
  19. package/dist/{chunk-QEFCIRNJ.js → chunk-XNVMVIUI.js} +5 -5
  20. package/dist/{chunk-P3FGXJTU.js → chunk-ZQ47LWTI.js} +4 -4
  21. package/dist/chunk-ZQKDZXDO.js +317 -0
  22. package/dist/{client-TKG4WBHN.js → client-L2YDMHQ6.js} +5 -4
  23. package/dist/{community-report-client-FI4LNVYS.js → community-report-client-C7WDGET3.js} +1 -2
  24. package/dist/{config-RE6CMGPK.js → config-BMYZX2UE.js} +7 -6
  25. package/dist/{data-integration-XQYB4X4F.js → data-integration-QEKDWQDY.js} +1601 -192
  26. package/dist/index.js +124 -1239
  27. package/dist/{local-data-upload-client-BWHSUQQK.js → local-data-upload-client-4YYHSYD6.js} +1 -2
  28. package/dist/{memory-CHRU2F7W.js → memory-3ORCR7JH.js} +6 -6
  29. package/dist/{memory-YK33G4T7.js → memory-I2WXDTV2.js} +5 -5
  30. package/dist/{metadata-AXVHAAZG.js → metadata-A6QLH3IS.js} +9 -9
  31. package/dist/{metadata-GGEHHPBE.js → metadata-HC7GBTTD.js} +10 -10
  32. package/dist/{model-NR3JHFSJ.js → model-HLHIEFMU.js} +5 -5
  33. package/dist/{model-K3KLWIW6.js → model-UGRDX4MW.js} +6 -6
  34. package/dist/personal-semantic-preference-QZFAJWGE.js +239 -0
  35. package/dist/personal-semantic-preference-YXAZBFVW.js +239 -0
  36. package/dist/{sync-FCKOVWWS.js → sync-HKIOZXQE.js} +6 -6
  37. package/dist/{sync-DAVKYVMW.js → sync-TFHU2UTG.js} +7 -7
  38. package/dist/{te-agent-HLW4VTQK.js → te-agent-BR6VDBNX.js} +9 -8
  39. package/dist/{te-agent-4BKBODMF.js → te-agent-VLYOV7S4.js} +8 -7
  40. package/dist/{te-analysis-WX7LRVAV.js → te-analysis-JECYCV6K.js} +436 -37
  41. package/dist/{te-analysis-YKFDBMA6.js → te-analysis-MUKUXJL4.js} +437 -38
  42. package/dist/{te-community-HLC43QKH.js → te-community-5DMNKJWY.js} +5 -5
  43. package/dist/{te-community-6HPBWJUZ.js → te-community-ISDQWJU7.js} +6 -6
  44. package/dist/{te-dataops-HDRUXY4K.js → te-dataops-6P5IKWNJ.js} +8 -7
  45. package/dist/{te-dataops-EJP56W3K.js → te-dataops-CVULXNVB.js} +7 -6
  46. package/dist/{te-engage-UBHPAJCO.js → te-engage-ELA3C5BM.js} +8 -8
  47. package/dist/{te-engage-WLDTS5J5.js → te-engage-MC5IQZIU.js} +9 -9
  48. package/dist/{te-kb-SQCLHG6X.js → te-kb-RCLSSH2Q.js} +7 -7
  49. package/dist/{te-system-Z77IKZFN.js → te-system-FXITO2JG.js} +5 -5
  50. package/dist/{te-system-YARIK4S5.js → te-system-K2GYMCTB.js} +6 -6
  51. package/dist/{te-team-EFKWYKMK.js → te-team-ADOC2ROP.js} +6 -6
  52. package/dist/{update-OGPSZM5A.js → update-YCYCKJOO.js} +7 -6
  53. package/package.json +1 -1
  54. package/skills/ae-agent/SKILL.md +3 -4
  55. package/skills/ae-agent/references/edit-skill.md +3 -0
  56. package/skills/ae-agent/references/get-skill-content.md +1 -1
  57. package/skills/ae-agent/references/rescan-skills.md +15 -13
  58. package/skills/ae-agent/references/upload-skill.md +7 -4
  59. package/skills/ae-analysis/SKILL.md +29 -4
  60. package/skills/ae-analysis/metadata_resolution.md +38 -4
  61. package/skills/ae-analysis/references/analysis_data_retrieval.md +29 -0
  62. package/skills/ae-analysis/references/asset_authentication_export.md +22 -0
  63. package/skills/ae-analysis/references/asset_authentication_list.md +18 -14
  64. package/skills/ae-analysis/references/asset_authentication_update.md +29 -14
  65. package/skills/ae-analysis/references/command_index.md +17 -9
  66. package/skills/ae-analysis/references/dashboard_get.md +18 -1
  67. package/skills/ae-analysis/references/dashboard_update.md +3 -0
  68. package/skills/ae-analysis/references/personal_semantic_preference_add.md +23 -0
  69. package/skills/ae-analysis/references/personal_semantic_preference_delete.md +17 -0
  70. package/skills/ae-analysis/references/personal_semantic_preference_get.md +17 -0
  71. package/skills/ae-analysis/references/personal_semantic_preference_list.md +19 -0
  72. package/skills/ae-analysis/references/personal_semantic_preference_update.md +19 -0
  73. package/skills/ae-data-integration/SKILL.md +23 -4
  74. package/skills/ae-data-integration/references/custom-layer.md +93 -0
  75. package/skills/ae-data-integration/references/error-handling.md +92 -0
  76. package/skills/ae-data-integration/references/handoff.md +77 -18
  77. package/skills/ae-data-integration/references/local-analysis.md +1 -1
  78. package/skills/ae-data-integration/references/reuse.md +9 -5
  79. package/skills/ae-data-integration/references/sink-upload.md +1 -1
  80. package/skills/ae-data-integration/references/source-inspect.md +18 -12
  81. package/skills/ae-data-integration/references/tracking-plan.md +7 -5
  82. package/skills/ae-data-integration/references/transform.md +10 -10
  83. package/skills/ae-data-integration/references/ue-mapping.md +33 -11
  84. package/skills/ae-engage/references/build-task-save-guide.md +9 -0
  85. package/skills/ae-engage/references/save-task.md +82 -0
  86. package/skills/ae-kb/SKILL.md +1 -1
  87. package/dist/chunk-QGM4M3NI.js +0 -37
  88. package/dist/chunk-ZZUOD757.js +0 -598
@@ -1,25 +1,25 @@
1
1
  import {
2
2
  registerCapabilityGatewayRoute
3
- } from "./chunk-PTE56QPL.js";
3
+ } from "./chunk-3KWQYGYI.js";
4
4
  import {
5
5
  internalCallSourceHeaders
6
6
  } from "./chunk-6EIJSNBD.js";
7
7
  import {
8
8
  clearCliToken,
9
9
  getCliToken
10
- } from "./chunk-4SGZG4XY.js";
10
+ } from "./chunk-J2DEBMRF.js";
11
+ import "./chunk-ZQKDZXDO.js";
11
12
  import {
12
13
  getActiveHost,
13
14
  safeJsonParse
14
- } from "./chunk-ZZUOD757.js";
15
+ } from "./chunk-3FY3RJ26.js";
15
16
  import {
16
17
  CliValidationError,
17
18
  PermissionError
18
19
  } from "./chunk-UW5UN47B.js";
19
20
  import {
20
21
  logger
21
- } from "./chunk-LYVNONC4.js";
22
- import "./chunk-QGM4M3NI.js";
22
+ } from "./chunk-JHENBQ5B.js";
23
23
 
24
24
  // src/core/mcp.ts
25
25
  async function permissionDetails(resp) {
@@ -1,25 +1,25 @@
1
1
  import {
2
2
  registerCapabilityGatewayRoute
3
- } from "./chunk-PTE56QPL.js";
3
+ } from "./chunk-3KWQYGYI.js";
4
4
  import {
5
5
  internalCallSourceHeaders
6
- } from "./chunk-C4MGVGJW.js";
6
+ } from "./chunk-SERWF6G5.js";
7
7
  import {
8
8
  clearCliToken,
9
9
  getCliToken
10
- } from "./chunk-4SGZG4XY.js";
10
+ } from "./chunk-J2DEBMRF.js";
11
+ import "./chunk-ZQKDZXDO.js";
11
12
  import {
12
13
  getActiveHost,
13
14
  safeJsonParse
14
- } from "./chunk-ZZUOD757.js";
15
+ } from "./chunk-3FY3RJ26.js";
15
16
  import {
16
17
  CliValidationError,
17
18
  PermissionError
18
19
  } from "./chunk-UW5UN47B.js";
19
20
  import {
20
21
  logger
21
- } from "./chunk-LYVNONC4.js";
22
- import "./chunk-QGM4M3NI.js";
22
+ } from "./chunk-JHENBQ5B.js";
23
23
 
24
24
  // src/core/mcp.ts
25
25
  async function permissionDetails(resp) {
@@ -1,25 +1,26 @@
1
1
  import {
2
2
  printError
3
- } from "./chunk-GT46FPXN.js";
3
+ } from "./chunk-BYYS3ANB.js";
4
4
  import {
5
5
  internalCallSourceHeaders
6
- } from "./chunk-C4MGVGJW.js";
6
+ } from "./chunk-SERWF6G5.js";
7
7
  import {
8
8
  clearCliToken,
9
9
  getCliToken
10
- } from "./chunk-4SGZG4XY.js";
10
+ } from "./chunk-J2DEBMRF.js";
11
+ import {
12
+ resolveHost
13
+ } from "./chunk-ZQKDZXDO.js";
11
14
  import {
12
- resolveHost,
13
15
  safeJsonParse
14
- } from "./chunk-ZZUOD757.js";
16
+ } from "./chunk-3FY3RJ26.js";
15
17
  import {
16
18
  CliValidationError,
17
19
  PermissionError
18
20
  } from "./chunk-UW5UN47B.js";
19
21
  import {
20
22
  logger
21
- } from "./chunk-LYVNONC4.js";
22
- import "./chunk-QGM4M3NI.js";
23
+ } from "./chunk-JHENBQ5B.js";
23
24
 
24
25
  // src/commands/te-dataops/shared.ts
25
26
  import { randomBytes } from "crypto";
@@ -1,25 +1,26 @@
1
1
  import {
2
2
  printError
3
- } from "./chunk-GT46FPXN.js";
3
+ } from "./chunk-BYYS3ANB.js";
4
4
  import {
5
5
  internalCallSourceHeaders
6
6
  } from "./chunk-6EIJSNBD.js";
7
7
  import {
8
8
  clearCliToken,
9
9
  getCliToken
10
- } from "./chunk-4SGZG4XY.js";
10
+ } from "./chunk-J2DEBMRF.js";
11
+ import {
12
+ resolveHost
13
+ } from "./chunk-ZQKDZXDO.js";
11
14
  import {
12
- resolveHost,
13
15
  safeJsonParse
14
- } from "./chunk-ZZUOD757.js";
16
+ } from "./chunk-3FY3RJ26.js";
15
17
  import {
16
18
  CliValidationError,
17
19
  PermissionError
18
20
  } from "./chunk-UW5UN47B.js";
19
21
  import {
20
22
  logger
21
- } from "./chunk-LYVNONC4.js";
22
- import "./chunk-QGM4M3NI.js";
23
+ } from "./chunk-JHENBQ5B.js";
23
24
 
24
25
  // src/commands/te-dataops/shared.ts
25
26
  import { randomBytes } from "crypto";
@@ -1,29 +1,29 @@
1
1
  import {
2
2
  createCapabilityCommand
3
- } from "./chunk-QEFCIRNJ.js";
3
+ } from "./chunk-2MN54X6H.js";
4
4
  import {
5
5
  printError,
6
6
  withOutputMetadata
7
- } from "./chunk-GT46FPXN.js";
7
+ } from "./chunk-BYYS3ANB.js";
8
8
  import {
9
9
  CapabilityGatewayError,
10
10
  buildCapabilityGatewayUrl,
11
11
  fetchCapabilityGateway,
12
12
  requestCapabilityGateway,
13
13
  requestCapabilityGatewayWithEnvelope
14
- } from "./chunk-ILIU36SU.js";
14
+ } from "./chunk-OMPRXM3V.js";
15
15
  import {
16
16
  registerCapabilityGatewayRoute,
17
17
  resolveGatewayDomain
18
- } from "./chunk-PTE56QPL.js";
18
+ } from "./chunk-3KWQYGYI.js";
19
19
  import "./chunk-6EIJSNBD.js";
20
- import "./chunk-4SGZG4XY.js";
21
- import "./chunk-ZZUOD757.js";
20
+ import "./chunk-J2DEBMRF.js";
21
+ import "./chunk-ZQKDZXDO.js";
22
+ import "./chunk-3FY3RJ26.js";
22
23
  import {
23
24
  CliValidationError
24
25
  } from "./chunk-UW5UN47B.js";
25
- import "./chunk-LYVNONC4.js";
26
- import "./chunk-QGM4M3NI.js";
26
+ import "./chunk-JHENBQ5B.js";
27
27
 
28
28
  // src/commands/te-engage/shared.ts
29
29
  function createEngageCapabilityCommand(cliService, config) {
@@ -1,29 +1,29 @@
1
1
  import {
2
2
  createCapabilityCommand
3
- } from "./chunk-QI524WPY.js";
3
+ } from "./chunk-XNVMVIUI.js";
4
4
  import {
5
5
  printError,
6
6
  withOutputMetadata
7
- } from "./chunk-GT46FPXN.js";
7
+ } from "./chunk-BYYS3ANB.js";
8
8
  import {
9
9
  CapabilityGatewayError,
10
10
  buildCapabilityGatewayUrl,
11
11
  fetchCapabilityGateway,
12
12
  requestCapabilityGateway,
13
13
  requestCapabilityGatewayWithEnvelope
14
- } from "./chunk-P3FGXJTU.js";
14
+ } from "./chunk-ZQ47LWTI.js";
15
15
  import {
16
16
  registerCapabilityGatewayRoute,
17
17
  resolveGatewayDomain
18
- } from "./chunk-PTE56QPL.js";
19
- import "./chunk-C4MGVGJW.js";
20
- import "./chunk-4SGZG4XY.js";
21
- import "./chunk-ZZUOD757.js";
18
+ } from "./chunk-3KWQYGYI.js";
19
+ import "./chunk-SERWF6G5.js";
20
+ import "./chunk-J2DEBMRF.js";
21
+ import "./chunk-ZQKDZXDO.js";
22
+ import "./chunk-3FY3RJ26.js";
22
23
  import {
23
24
  CliValidationError
24
25
  } from "./chunk-UW5UN47B.js";
25
- import "./chunk-LYVNONC4.js";
26
- import "./chunk-QGM4M3NI.js";
26
+ import "./chunk-JHENBQ5B.js";
27
27
 
28
28
  // src/commands/te-engage/shared.ts
29
29
  function createEngageCapabilityCommand(cliService, config) {
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  kbApi,
3
3
  kbUpload
4
- } from "./chunk-4KVPKXFX.js";
4
+ } from "./chunk-RNAALWJK.js";
5
5
  import {
6
6
  printError
7
- } from "./chunk-GT46FPXN.js";
8
- import "./chunk-4SGZG4XY.js";
9
- import "./chunk-ZZUOD757.js";
7
+ } from "./chunk-BYYS3ANB.js";
8
+ import "./chunk-J2DEBMRF.js";
9
+ import "./chunk-ZQKDZXDO.js";
10
+ import "./chunk-3FY3RJ26.js";
10
11
  import {
11
12
  PermissionError
12
13
  } from "./chunk-UW5UN47B.js";
13
- import "./chunk-LYVNONC4.js";
14
- import "./chunk-QGM4M3NI.js";
14
+ import "./chunk-JHENBQ5B.js";
15
15
 
16
16
  // src/commands/te-kb/add.ts
17
17
  import { promises as fs } from "fs";
@@ -884,7 +884,7 @@ var url = {
884
884
  { name: "name", type: "string", required: true, desc: "Knowledge base name" },
885
885
  { name: "url", type: "string", required: true, desc: "Source URL to upload" },
886
886
  { name: "display-name", type: "string", required: false, desc: "Optional display name for the URL source" },
887
- { name: "parse-instruction", type: "string", required: false, desc: "Optional parsing instruction for the URL source" }
887
+ { name: "parse-instruction", type: "string", required: false, desc: "Optional parsing instruction for the URL source; ignored for Lark/Feishu doc URLs (the server applies its own Feishu parsing)" }
888
888
  ],
889
889
  risk: "write",
890
890
  validate: (ctx) => {
@@ -7,17 +7,17 @@ import {
7
7
  putToMainApp,
8
8
  tryLoadTeAgentSandboxCredentials,
9
9
  uploadToMainApp
10
- } from "./chunk-VPKZ7I72.js";
10
+ } from "./chunk-QNOLN2LJ.js";
11
11
  import "./chunk-6EIJSNBD.js";
12
- import "./chunk-4SGZG4XY.js";
12
+ import "./chunk-J2DEBMRF.js";
13
+ import "./chunk-ZQKDZXDO.js";
13
14
  import {
14
15
  safeJsonParse
15
- } from "./chunk-ZZUOD757.js";
16
+ } from "./chunk-3FY3RJ26.js";
16
17
  import {
17
18
  CliValidationError
18
19
  } from "./chunk-UW5UN47B.js";
19
- import "./chunk-LYVNONC4.js";
20
- import "./chunk-QGM4M3NI.js";
20
+ import "./chunk-JHENBQ5B.js";
21
21
 
22
22
  // src/commands/te-system/shared.ts
23
23
  import { readFileSync } from "fs";
@@ -7,17 +7,17 @@ import {
7
7
  putToMainApp,
8
8
  tryLoadTeAgentSandboxCredentials,
9
9
  uploadToMainApp
10
- } from "./chunk-UOUS37JQ.js";
11
- import "./chunk-C4MGVGJW.js";
12
- import "./chunk-4SGZG4XY.js";
10
+ } from "./chunk-4XXOWOTA.js";
11
+ import "./chunk-SERWF6G5.js";
12
+ import "./chunk-J2DEBMRF.js";
13
+ import "./chunk-ZQKDZXDO.js";
13
14
  import {
14
15
  safeJsonParse
15
- } from "./chunk-ZZUOD757.js";
16
+ } from "./chunk-3FY3RJ26.js";
16
17
  import {
17
18
  CliValidationError
18
19
  } from "./chunk-UW5UN47B.js";
19
- import "./chunk-LYVNONC4.js";
20
- import "./chunk-QGM4M3NI.js";
20
+ import "./chunk-JHENBQ5B.js";
21
21
 
22
22
  // src/commands/te-system/shared.ts
23
23
  import { readFileSync } from "fs";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  getAuthHeaders,
3
3
  kbApi
4
- } from "./chunk-4KVPKXFX.js";
4
+ } from "./chunk-RNAALWJK.js";
5
5
  import {
6
6
  printError,
7
7
  printOutput
8
- } from "./chunk-GT46FPXN.js";
9
- import "./chunk-4SGZG4XY.js";
10
- import "./chunk-ZZUOD757.js";
8
+ } from "./chunk-BYYS3ANB.js";
9
+ import "./chunk-J2DEBMRF.js";
10
+ import "./chunk-ZQKDZXDO.js";
11
+ import "./chunk-3FY3RJ26.js";
11
12
  import "./chunk-UW5UN47B.js";
12
- import "./chunk-LYVNONC4.js";
13
- import "./chunk-QGM4M3NI.js";
13
+ import "./chunk-JHENBQ5B.js";
14
14
 
15
15
  // src/commands/te-team/shared.ts
16
16
  var API_PREFIX = process.env.AE_API_PREFIX ?? "/agent";
@@ -7,18 +7,19 @@ import {
7
7
  printError,
8
8
  printOutput,
9
9
  recordVersionSyncResult
10
- } from "./chunk-GT46FPXN.js";
10
+ } from "./chunk-BYYS3ANB.js";
11
11
  import {
12
12
  peekCliToken
13
- } from "./chunk-4SGZG4XY.js";
13
+ } from "./chunk-J2DEBMRF.js";
14
+ import {
15
+ missingAeHostHint
16
+ } from "./chunk-ZQKDZXDO.js";
14
17
  import {
15
18
  getActiveHost,
16
- missingAeHostHint,
17
19
  normalizeUrl
18
- } from "./chunk-ZZUOD757.js";
20
+ } from "./chunk-3FY3RJ26.js";
19
21
  import "./chunk-UW5UN47B.js";
20
- import "./chunk-LYVNONC4.js";
21
- import "./chunk-QGM4M3NI.js";
22
+ import "./chunk-JHENBQ5B.js";
22
23
 
23
24
  // src/commands/update.ts
24
25
  var HOST_OPTION_DESC = "Override active AE host URL (e.g., https://ta.thinkingdata.cn)";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thinkingai/ae-cli",
3
- "version": "6.0.45",
3
+ "version": "6.0.46",
4
4
  "description": "CLI tool for ThinkingAI (AE) analytics platform",
5
5
  "type": "module",
6
6
  "bin": {
@@ -74,7 +74,7 @@ Use `ae-agent` for all Agent platform resource work:
74
74
 
75
75
  If the user's intent is data analysis, audience management, metadata governance, TeamRuns, or knowledge bases, switch to `ae-analysis` / `ae-engage` / `ae-dataops` / `ae-team` / `ae-kb`.
76
76
 
77
- ## Tool Groups (82 commands)
77
+ ## Tool Groups (81 commands)
78
78
 
79
79
  ### Agents (5)
80
80
 
@@ -128,7 +128,7 @@ If the user's intent is data analysis, audience management, metadata governance,
128
128
  - `+del-skill` ([doc](references/del-skill.md)) — delete a personal Skill (physical delete)
129
129
  - `+toggle-skill` ([doc](references/toggle-skill.md)) — enable or disable a Skill
130
130
 
131
- ### Skill content & assets (16)
131
+ ### Skill content & assets (15)
132
132
 
133
133
  - `+edit-skill` ([doc](references/edit-skill.md)) — edit a Skill's content (name/description/instructions/category/icon)
134
134
  - `+get-skill-content` ([doc](references/get-skill-content.md)) — read a Skill's SKILL.md source
@@ -145,7 +145,6 @@ If the user's intent is data analysis, audience management, metadata governance,
145
145
  - `+read-skill-script` ([doc](references/read-skill-script.md)) — read a script file (binary-safe with `--output`)
146
146
  - `+del-skill-script` ([doc](references/del-skill-script.md)) — delete a script file
147
147
  - `+upload-skill` ([doc](references/upload-skill.md)) — create/replace a Skill from a ZIP package (parses SKILL.md; 5MB)
148
- - `+rescan-skills` ([doc](references/rescan-skills.md)) — rescan local filesystem and sync Skills to DB (root only)
149
148
 
150
149
  ### Market (browse) (2)
151
150
 
@@ -261,7 +260,7 @@ For a local Agent, a successful `+mark-used` response means only that the dedupl
261
260
  - **MCP connectivity**: `+add-mcp` does NOT validate server connectivity — an unreachable URL is accepted at create time and only fails when the agent calls the MCP at runtime. Double-check the URL.
262
261
  - **Attachments**: upload supports files up to 50MB each, with a 1GB user quota. Batch uploads support partial success — individual file failures don't affect others.
263
262
  - **Skill `--instructions @-`**: reads from stdin, useful for piping long instruction text.
264
- - **Skill content versions**: `+add-skill` accepts optional `--version`; `+edit-skill` content changes and `+upload-skill --replace-skill-id` require a higher `major.minor` version.
263
+ - **Skill content versions**: `+add-skill` accepts optional `--version`; `+edit-skill` content changes and `+upload-skill --replace-skill-id` require a higher `major.minor` version. On `SKILL_VERSION_CONFLICT`, read `meta.currentVersion` and retry with a strictly higher version. On `SKILL_HISTORY_CONFLICT`, stop retrying and tell the user that the Skill cannot be safely updated right now and that they should contact their administrator. Never recommend internal maintenance commands or expose diagnostic payloads in a customer-facing response.
265
264
  - **Skill sync push**: each selected Skill is uploaded as a ZIP to the versioned server endpoint. The server commits the canonical package before success; the CLI no longer copies it after the response.
266
265
  - **Market category keys**: `ae_preset | dev_tool | search_tool | data_query | content_gen | enterprise | life | automation | other`. Sort options: `newest | calls | likes` (`calls` sorts MCP by call count, Skill by download count). Market scope: `all | system | company | custom` (`custom` = personal).
267
266
  - **Meta on create/copy**: `+add-mcp` / `+add-skill` / `+copy-skill` accept optional `--category / --icon-emoji / --icon-color`; these are applied via a follow-up meta PATCH after creation. MCP creation still does NOT validate server connectivity.
@@ -68,6 +68,9 @@ ae-cli agent +edit-skill --dry-run --id <skill-cuid> --name new-name --version 2
68
68
 
69
69
  - `404` / not found: re-run `+list-skills` to verify the Skill ID and scope.
70
70
  - `409` / name conflict: use `--name` with a different name, or consider `+upload-skill` with `--auto-rename`.
71
+ - `SKILL_VERSION_CONFLICT`: read `meta.currentVersion`, choose a strictly higher `major.minor` value, and retry the same command with `--version`.
72
+ - `SKILL_HISTORY_CONFLICT`: stop retrying and tell the user, "The Skill cannot be safely updated right now. Please contact your administrator."
73
+ - Do not recommend internal maintenance commands or expose diagnostic payloads in a customer-facing response.
71
74
 
72
75
  ## Recommended Chaining
73
76
 
@@ -30,7 +30,7 @@ ae-cli agent +get-skill-content --dry-run --id <skill-cuid>
30
30
 
31
31
  ## Next Steps on Failure
32
32
  - `404` / not found: re-run `+list-skills` to verify the Skill ID.
33
- - `file_not_found`: the Skill record exists but the SKILL.md file is missing on disk use `+rescan-skills` (root) to sync.
33
+ - `file_not_found`: the Skill content is unavailable. Ask the user to contact their administrator; do not recommend internal maintenance commands.
34
34
 
35
35
  ## Recommended Chaining
36
36
  - `+list-skills` → confirm `id` → `+get-skill-content` → `+edit-skill` (if changes needed)
@@ -1,24 +1,26 @@
1
- # agent +rescan-skills (Rescan Skills)
1
+ # agent +rescan-skills (Internal Compatibility Reference)
2
2
 
3
3
  > **Prerequisite:** Follow the Global AE CLI Rules in [`../SKILL.md`](../SKILL.md).
4
4
 
5
- Domain: **Skills / write**
5
+ Domain: **Skills / internal write**
6
6
 
7
7
  ## Use Cases
8
- - Rescan Skill files on the server filesystem and sync them to the database.
8
+ - Preserve compatibility for privileged administrators who already use the legacy command.
9
9
  - Endpoint: `POST /api/sandbox/agent/skills/rescan`.
10
- - **Root-only**: requires root privileges; non-root users get a 403.
11
- - No flags the scan covers all Skill directories on the server.
10
+ - The endpoint synchronizes system-scope Skills only.
11
+ - The command is hidden from normal `agent --help` output and public Skill routing.
12
12
 
13
13
  ## Mandatory Rules (MUST)
14
14
  - This command takes no flags.
15
- - **Root-only operation**: non-root users will receive a 403 error.
15
+ - It requires `root` or `agent_admin` privileges; other users receive a 403 response.
16
+ - Never use it to recover a personal or company Skill.
17
+ - Never expose this command or its maintenance terminology in a customer-facing response.
16
18
  - This is an ordinary `write` operation and does not require CLI confirmation.
17
19
  - Prefer `--dry-run` before executing — rescan has filesystem side effects.
18
20
 
19
21
  ## Command
20
22
  ```bash
21
- # Rescan and sync
23
+ # Internal administrator use only
22
24
  ae-cli agent +rescan-skills
23
25
 
24
26
  # Dry-run to inspect the request before executing
@@ -31,14 +33,14 @@ ae-cli agent +rescan-skills --dry-run
31
33
  | _(none)_ | — | This command takes no flags |
32
34
 
33
35
  ## Decision Rules
34
- - Use this command when Skill files on disk are out of sync with the database (e.g. after manual filesystem changes or migration).
35
- - This is a root-only operation — confirm the user has root privileges before running.
36
- - The scan covers all Skill directories (system, company, personal) on the server.
36
+ - Use this command only for an explicitly authorized system-Skill maintenance task.
37
+ - Confirm the operator has `root` or `agent_admin` privileges before running it.
38
+ - Do not route ordinary Skill update failures to this command.
37
39
  - Use `--dry-run` first to verify the request shape before executing.
38
40
 
39
41
  ## Next Steps on Failure
40
- - `403` / 无权限: the current user is not root rescan requires root privileges.
41
- - `扫描同步失败`: the scan encountered filesystem errors check server logs and Skill directory permissions.
42
+ - `403`: the current operator lacks the required administrator role.
43
+ - Other failures: stop and inspect administrator-only service logs; do not relay diagnostic details to customers.
42
44
 
43
45
  ## Recommended Chaining
44
- - `+rescan-skills` → `+list-skills` (verify the synced state)
46
+ - `+rescan-skills` → `+list-skills` (verify system Skills only)
@@ -87,11 +87,14 @@ ae-cli agent +upload-skill --dry-run --file ./my-skill.zip
87
87
 
88
88
  - `File not found`: verify the local file path.
89
89
  - `--file must be a .zip file`: only ZIP format is supported.
90
- - `ZIP 中缺少 SKILL.md`: ensure the ZIP contains a `SKILL.md` file.
91
- - `缺少名称或内容`: the SKILL.md is missing the `name` field or content fix the ZIP.
92
- - `缺少描述`: the SKILL.md is missing the description fix the ZIP or use `--description`.
93
- - `数据库写入失败`: DB write failed retry or check server logs.
90
+ - Missing `SKILL.md`: ensure the ZIP contains a `SKILL.md` file.
91
+ - Missing name or content: add the `name` field and Skill content to `SKILL.md`.
92
+ - Missing description: add a description to `SKILL.md` or use `--description`.
93
+ - The upload could not be saved: retry once, then contact the administrator if it still fails.
94
94
  - `409` / name conflict: use `--auto-rename` or choose a different `--name`.
95
+ - `SKILL_VERSION_CONFLICT`: read `meta.currentVersion`, choose a strictly higher `major.minor` value, and retry the same replacement with `--version`.
96
+ - `SKILL_HISTORY_CONFLICT`: stop retrying and tell the user, "The Skill cannot be safely updated right now. Please contact your administrator."
97
+ - Do not recommend internal maintenance commands or expose diagnostic payloads in a customer-facing response.
95
98
 
96
99
  ## Recommended Chaining
97
100
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ae-analysis
3
- version: 4.2.2
3
+ version: 4.2.3
4
4
  description: "Use ae-cli for AE/TE analysis-side data questions, asset operations, and asset governance: reports, analysis boards, BI dashboards, ad-hoc models, drilldown, detail data, alerts, clusters, tags, metrics, metadata, project configuration, tracking plans, governance asset lists/rules/lineage/impact/dependency, batch asset operations, projects, and resource links. Use when the user asks to query data, explain a change, export evidence, or inspect/create/update/govern analysis assets."
5
5
  ---
6
6
 
@@ -16,6 +16,7 @@ This is the single entry skill for analysis intent and command execution.
16
16
  2. Read the selected command's dedicated reference before composing it:
17
17
  - `event list` -> `references/event_list.md`
18
18
  - `analysis dashboard list` -> `references/dashboard_list.md`
19
+ - `personal-semantic-preference list` -> `references/personal_semantic_preference_list.md`
19
20
  - replace hyphens with underscores in gateway filenames.
20
21
  3. For an AI-facing ad-hoc definition, also read [`references/ai_models.md`](references/ai_models.md).
21
22
  4. For cluster/tag `--definition-request`, also read the matching [`references/user_cluster_models.md`](references/user_cluster_models.md) or [`references/user_tag_models.md`](references/user_tag_models.md). Shared primitives live in [`references/audience_models.md`](references/audience_models.md).
@@ -32,6 +33,7 @@ Use this skill for these CLI services:
32
33
  - `analysis-meta`: gateway metadata assets, events, properties, virtual metadata, metrics, data tables, exchange rules, and super metadata.
33
34
  - `analysis-governance`: gateway asset governance operations, including governed asset lists/exports, lineage, dependency, impact, query history, rule schema/list/create/update/delete, batch asset actions, and operation records. Use this service for asset governance workflows, not for metadata event/property/metric CRUD.
34
35
  - `tracking`: gateway tracking plan, checking, ingest, live-data, and event blacklist operations.
36
+ - `personal-semantic-preference`: current user's project-scoped personal semantic preferences. Use it as agent context before resolving ambiguous business wording, asset choices, or recurring user preferences.
35
37
 
36
38
  For metadata gateway detail outside the commands in the generated index, use the metadata skill. For Engage, DataOps, or Community work, use the corresponding skill.
37
39
 
@@ -97,15 +99,38 @@ Before a project-scoped command:
97
99
  3. If there are multiple plausible projects, the host is unclear, or no project matches, show the candidates and ask; never guess.
98
100
  4. Re-verify after the user changes project, host, or environment.
99
101
 
102
+ ### Personal Semantic Preferences
103
+
104
+ Before answering project-scoped analysis or asset-governance requests, call `ae-cli personal-semantic-preference list --project-id <project_id>` once per host, authenticated user, project, and conversation after the project is resolved. Keep that lightweight directory in conversation context; do not page it, search the database, or call list again for each question. The backend returns at most 200 entries using `HOT_160_PLUS_RECENT_40` and may return fewer to keep the payload within its size limit.
105
+
106
+ Use the returned compact catalog only as context. If one item is actually adopted to interpret the user's wording, asset selection, metric preference, or output style, fetch it with `ae-cli personal-semantic-preference get --project-id <project_id> --id <preference_id> --mark-used`. This also applies when the matched item is being used as the target for an `update`. Do not pass `--mark-used` for items that were only inspected or rejected.
107
+
108
+ The Agent owns the personal preference capture trigger. Choose `context_type` by meaning:
109
+
110
+ - `preference`: durable interpretation or output preference without an exact asset binding.
111
+ - `asset_context`: durable user wording or intent bound to one or more exact project assets. Send the complete ordered `resource_refs` array; each item has `resource_type`, string `resource_key`, and `display_name`. This identity is generic across reports, dashboards, events, properties, metrics, tags, clusters, data tables, and future asset types.
112
+ - `experience`: a confirmed reusable work method without an exact asset binding.
113
+ - `background`: stable personal context without an exact asset binding.
114
+
115
+ Any stable choice of a concrete asset, including an event-selection scenario, must use `asset_context`; do not encode asset IDs only in prose. A current-user working definition remains eligible for personal storage even when it would also benefit other users. Store it only as the current user's preference; do not copy the bound asset definition into its content or imply that it is shared authority. Keep future governance or lifecycle instructions out of the stored content. Do not save transient task details, one-off analysis results, company knowledge, or standalone metadata facts.
116
+
117
+ An explicit stable statement, correction, or confirmation that passes that evidence gate authorizes `personal-semantic-preference add` or `update` without a second "save" confirmation. Compare against the already loaded catalog first; when one existing preference matches, fetch it with `--mark-used`, update that existing preference, and avoid creating a duplicate. Otherwise add a new one. An explicit instruction not to retain it always wins. Delete remains high risk and requires explicit user confirmation.
118
+
119
+ After a successful add, update, or delete, merge that response into the conversation's cached directory locally. Do not call list again merely to observe the write.
120
+
121
+ Stale or expired preferences are automatically hidden by list filtering and backend maintenance. Do not look for or invent a separate command for that behavior.
122
+
100
123
  ### C. FUZZY_SEARCH_FALLBACK
101
124
 
102
- For saved-asset operations on reports, dashboards, metrics, clusters, tags, and alerts, use the relevant list/search command first unless an exact ID or canonical asset name was already verified. For event, property, metric, cluster, and tag catalogs, put the user's phrase and its useful synonyms in one `--queries` JSON array; matching is OR across at most 20 keywords. For ordinary asset discovery, broaden the keyword batch up to two times, then list all candidates. If no resource exists, stop instead of fabricating one.
125
+ For saved-asset operations on reports, dashboards, metrics, clusters, tags, and alerts, use the relevant list/search command first unless an exact ID or canonical asset name was already verified. For saved assets outside the analysis metadata catalog, broaden the keyword batch up to two times, then list all candidates. If no resource exists, stop instead of fabricating one.
126
+
127
+ For ordinary event, property, metric, cluster, and tag metadata discovery, keep one discovery budget per host, project, authenticated principal, and Agent conversation. Put the user's phrase and its useful synonyms in one `--queries` JSON array; matching is OR across at most 20 keywords. A successful remote search round with no confirmable candidate consumes one miss. A candidate stops discovery and requires user confirmation; it is not a miss. Validation, permission, network, and server errors are failures: they do not consume the budget and must not trigger a full export. After at most two ordinary miss rounds, the third remote discovery round must be one aggregate `analysis-meta catalog list` using the accumulated deduplicated queries and the union of applicable resource types. If that aggregate search is still unresolved, export the complete unified catalog exactly once and reuse it locally as defined in `metadata_resolution.md`. Once a valid complete catalog exists, do not call online resource-specific metadata list/search commands or `analysis-meta catalog list|export` again in that scope.
103
128
 
104
129
  Only when explicitly complete event, property, metric, cluster, or tag metadata is needed, use that resource's `export --output <temporary_path>/<resource>` command. Event/property/metric exports use `.json`; cluster/tag exports use `.jsonl` and an integrity sidecar. Search the temporary file locally and keep the full rows out of model context. Do not page repeatedly to synthesize a complete catalog.
105
130
 
106
131
  Do not pre-list events or properties before constructing an AI-facing intent model. Pass the user's wording directly in `definition`; the backend resolves it and returns `resolved` evidence. Call event/property metadata commands only when the user explicitly asks to inspect metadata, a structured compiler error instructs `next_action=search_candidates`, or the compiler reports an explicit metadata-resolution capability gap. When compiler candidates already exist, ask the user to confirm without another metadata call. If the user explicitly rejects every candidate for that path, treat the rejected set as exhausted and continue through the one aggregate-search workflow in `metadata_resolution.md`; do not terminate the original task or repeat the rejected candidates.
107
132
 
108
- The generic saved-asset search rule above does not control structured AI-QP metadata failures. For those failures, `allowed_resource_types` is authoritative: collect the whole compiler error array and follow the one aggregate online search, optional full-catalog, conversation-reuse workflow in `metadata_resolution.md`. Never use a candidate from either path without user confirmation.
133
+ The ordinary discovery budget does not replace the entry path for structured AI-QP metadata failures. For those failures, `allowed_resource_types` is authoritative: collect the whole compiler error array and follow the one aggregate online search, optional full-catalog, conversation-reuse workflow in `metadata_resolution.md`. Never use a candidate from either path without user confirmation.
109
134
 
110
135
  ### Existing business asset before ad-hoc
111
136
 
@@ -113,7 +138,7 @@ When the request can map to a saved business definition:
113
138
 
114
139
  1. Extract metric, dimensions, filters, time window, and comparison semantics.
115
140
  2. Search reports; use dashboard search only to discover candidate embedded reports.
116
- 3. Before querying a selected dashboard's report data, call `analysis dashboard get` exactly once with the verified project and dashboard IDs. Preserve non-empty `location.folder_name`, `dashboard_name`, `remark`, and `notes[].note_title/description` as authored dashboard context for all results from that dashboard. Do not repeat the detail call per report.
141
+ 3. Before querying a selected dashboard's report data, call `analysis dashboard get` exactly once with the verified project and dashboard IDs. Inspect `effective_settings` and `filter_config`; dashboard default, dashboard business, and space business filters are already applied and call-time filters add AND conditions. Honor the saved fixed time unless the user explicitly supplies a supported time override. Preserve non-empty `location.folder_name`, `dashboard_name`, `remark`, and `notes[].note_title/description` as authored dashboard context for all results from that dashboard. Do not repeat the detail call per report.
117
142
  4. Read the candidate definition and verify semantic equality, not merely a similar name.
118
143
  5. Use report/dashboard data when the definition matches.
119
144
  6. Use `analysis adhoc run|export` when no definition matches, the user explicitly requests ad-hoc exploration, or custom grouping/filtering is required.