@thinkingai/ae-cli 6.0.55 → 6.0.56

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 (118) hide show
  1. package/README.md +24 -3
  2. package/README.zh.md +24 -3
  3. package/dist/{auth-RQBO6MTY.js → auth-U7MNUUEF.js} +37 -13
  4. package/dist/{automation-VAAQBM7Y.js → automation-K32V2NKP.js} +94 -38
  5. package/dist/{capability-JRIFC4AJ.js → capability-VV7RHB3B.js} +8 -7
  6. package/dist/{chunk-CT7QDJS6.js → chunk-2IYIYSUO.js} +2 -2
  7. package/dist/{chunk-3YVEAZUN.js → chunk-2UWS5CUP.js} +32 -21
  8. package/dist/{chunk-374V5R6N.js → chunk-3TQA5RXE.js} +3 -3
  9. package/dist/{chunk-6VNIR4AP.js → chunk-ELCR235M.js} +26 -19
  10. package/dist/{chunk-7KU2WNQE.js → chunk-F6NIPIT5.js} +7 -6
  11. package/dist/{chunk-RPBOAQQQ.js → chunk-GI5BMEZO.js} +1 -1
  12. package/dist/chunk-JJJIP2XQ.js +105 -0
  13. package/dist/{chunk-5XJYLEVC.js → chunk-KHS64JZQ.js} +4 -4
  14. package/dist/{chunk-ZL7SGNIA.js → chunk-LMCYSVVA.js} +11 -13
  15. package/dist/{chunk-VZZNLV3I.js → chunk-MXV3PYC3.js} +14 -6
  16. package/dist/{chunk-OP44TT4H.js → chunk-P6VFCH3P.js} +4 -2
  17. package/dist/{chunk-GHXZK54S.js → chunk-P7KL7IOH.js} +41 -13
  18. package/dist/{chunk-AP7YP2NX.js → chunk-QSAR3GHY.js} +2 -2
  19. package/dist/{chunk-S6M42KND.js → chunk-T44M3PLZ.js} +1 -1
  20. package/dist/{chunk-Q5US7JC5.js → chunk-UUD5RB36.js} +3 -3
  21. package/dist/{chunk-RGYPSEYD.js → chunk-W2PTY5NN.js} +3 -3
  22. package/dist/chunk-X7DRLE62.js +233 -0
  23. package/dist/{chunk-WNGFSIOB.js → chunk-ZW4VMY5H.js} +103 -6
  24. package/dist/{community-report-client-PEERQCX2.js → community-report-client-S2K3A3Q6.js} +1 -1
  25. package/dist/{config-SICKWZ2A.js → config-ASSAAIOI.js} +10 -9
  26. package/dist/{context-NGVFPCBK.js → context-6RWLVOM5.js} +4 -4
  27. package/dist/{data-integration-BCLQFTGU.js → data-integration-EXSUPUDZ.js} +6 -6
  28. package/dist/evaluation-5YT4QLCL.js +3714 -0
  29. package/dist/index.js +93 -49
  30. package/dist/{local-data-upload-client-TWMHFLUA.js → local-data-upload-client-7HCPGIS3.js} +1 -1
  31. package/dist/{memory-CQKH2JAV.js → memory-VCYLVPMI.js} +6 -6
  32. package/dist/{metadata-EMFGUI2W.js → metadata-TIWIOFTU.js} +8 -8
  33. package/dist/{model-VX5M2CJ6.js → model-DPJHSD73.js} +4 -4
  34. package/dist/{personal-semantic-preference-SLWVVYZ4.js → personal-semantic-preference-SBKU2LOK.js} +6 -6
  35. package/dist/{project-semantic-DPSZBKQD.js → project-semantic-SKNWLH3I.js} +6 -6
  36. package/dist/{sync-RZIAV37C.js → sync-7PP6KQ75.js} +7 -7
  37. package/dist/{te-agent-AORRE2FM.js → te-agent-L2BYNPHM.js} +753 -94
  38. package/dist/{te-analysis-ISXKJKRT.js → te-analysis-RJB6VJC4.js} +411 -79
  39. package/dist/{te-community-42M7ICDO.js → te-community-QN3WMPNT.js} +6 -4
  40. package/dist/{te-dataops-BNKNZ4F2.js → te-dataops-UKD2XN3E.js} +8 -6
  41. package/dist/{te-engage-BZE3MBKT.js → te-engage-KPTN4N2U.js} +6 -6
  42. package/dist/{te-kb-ULATOTQ3.js → te-kb-SFZI3W5T.js} +7 -7
  43. package/dist/{te-system-UGHVKBVV.js → te-system-IE7NCKC3.js} +6 -6
  44. package/dist/{te-team-YA6SNOJ3.js → te-team-4KHCFM2I.js} +63 -41
  45. package/dist/{things-DTCOQIQB.js → things-7JJUVAWL.js} +7 -7
  46. package/dist/{update-ESNYKUVR.js → update-AX66IFMJ.js} +4 -4
  47. package/dist/{workspace-JEOHKFPX.js → workspace-Q5NMEKEN.js} +6 -6
  48. package/package.json +11 -7
  49. package/skills/ae-agent/SKILL.md +20 -3
  50. package/skills/ae-agent/references/command_index.md +8 -0
  51. package/skills/ae-agent/references/resource-package.md +53 -0
  52. package/skills/ae-analysis/SKILL.md +12 -3
  53. package/skills/ae-analysis/references/adhoc_export.md +1 -1
  54. package/skills/ae-analysis/references/agent_review_preflight.md +4 -0
  55. package/skills/ae-analysis/references/agent_review_submit_to_page.md +4 -0
  56. package/skills/ae-analysis/references/ai_models/event.md +58 -2
  57. package/skills/ae-analysis/references/ai_models/rank_list.md +1 -0
  58. package/skills/ae-analysis/references/ai_models/retention.md +2 -0
  59. package/skills/ae-analysis/references/ai_models/revenue.md +2 -0
  60. package/skills/ae-analysis/references/analysis_data_export.md +11 -1
  61. package/skills/ae-analysis/references/asset_batch_info_export.md +2 -2
  62. package/skills/ae-analysis/references/asset_batch_sql_export.md +2 -2
  63. package/skills/ae-analysis/references/asset_export.md +1 -1
  64. package/skills/ae-analysis/references/bi_panel_page_data_export.md +1 -1
  65. package/skills/ae-analysis/references/check_export.md +1 -1
  66. package/skills/ae-analysis/references/command_index.md +34 -25
  67. package/skills/ae-analysis/references/dashboard_report_data_export.md +2 -0
  68. package/skills/ae-analysis/references/dashboard_report_get.md +6 -2
  69. package/skills/ae-analysis/references/dashboard_report_update.md +24 -5
  70. package/skills/ae-analysis/references/feedback_submit.md +1 -1
  71. package/skills/ae-analysis/references/governance_recommendation_export.md +10 -2
  72. package/skills/ae-analysis/references/live_data_export.md +1 -1
  73. package/skills/ae-analysis/references/metric_create.md +29 -0
  74. package/skills/ae-analysis/references/metric_get.md +2 -0
  75. package/skills/ae-analysis/references/metric_update.md +2 -0
  76. package/skills/ae-analysis/references/operation_record_export.md +1 -1
  77. package/skills/ae-analysis/references/plan_change_log_export.md +1 -1
  78. package/skills/ae-analysis/references/plan_export.md +1 -1
  79. package/skills/ae-analysis/references/project_info_get.md +4 -0
  80. package/skills/ae-analysis/references/project_member_group_add_members.md +35 -0
  81. package/skills/ae-analysis/references/project_member_group_create.md +25 -0
  82. package/skills/ae-analysis/references/project_member_group_delete.md +34 -0
  83. package/skills/ae-analysis/references/project_member_group_list.md +29 -0
  84. package/skills/ae-analysis/references/project_member_group_members.md +28 -0
  85. package/skills/ae-analysis/references/project_member_group_remove_members.md +35 -0
  86. package/skills/ae-analysis/references/project_member_group_rename.md +26 -0
  87. package/skills/ae-analysis/references/project_semantic_knowledge_wiki_plan_schema.md +6 -1
  88. package/skills/ae-analysis/references/report_data_export.md +1 -1
  89. package/skills/ae-analysis/references/scenario_append.md +25 -0
  90. package/skills/ae-analysis/references/scenario_collect.md +35 -0
  91. package/skills/ae-analysis/references/scenario_evaluation.md +30 -0
  92. package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/build-project-semantic-wiki.mjs +73 -4
  93. package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/default-compile-schema.md +5 -1
  94. package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/execution-contract.mjs +173 -0
  95. package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/generate-build-ir.mjs +109 -64
  96. package/skills/ae-automation/SKILL.md +2 -2
  97. package/skills/ae-automation/references/cli.md +18 -1
  98. package/skills/ae-capability/SKILL.md +7 -3
  99. package/skills/ae-evaluation/SKILL.md +83 -0
  100. package/skills/ae-evaluation/references/access-and-members.md +55 -0
  101. package/skills/ae-evaluation/references/connections.md +78 -0
  102. package/skills/ae-evaluation/references/datasets.md +57 -0
  103. package/skills/ae-evaluation/references/evaluators.md +81 -0
  104. package/skills/ae-evaluation/references/files.md +33 -0
  105. package/skills/ae-evaluation/references/integrations.md +39 -0
  106. package/skills/ae-evaluation/references/runs.md +160 -0
  107. package/skills/ae-evaluation/references/schedules.md +31 -0
  108. package/skills/ae-metadata/SKILL.md +2 -1
  109. package/skills/ae-metadata/references/metadata_data_table_download.md +7 -1
  110. package/skills/ae-metadata/references/metadata_data_table_get.md +2 -0
  111. package/skills/ae-team/SKILL.md +2 -2
  112. package/skills/ae-team/references/run-start.md +1 -0
  113. package/skills/ae-team/references/run-watch.md +7 -5
  114. package/skills/ae-things/SKILL.md +53 -51
  115. package/skills/ae-things/references/cli.md +56 -54
  116. package/skills/ae-things-progress/SKILL.md +20 -20
  117. package/skills/ae-things-review/SKILL.md +19 -19
  118. package/dist/chunk-CI24BDR2.js +0 -43
@@ -0,0 +1,78 @@
1
+ # Models, agents, and credentials
2
+
3
+ Commands use `ae-cli evaluation +<command>`. Read the shared endpoint, authentication, and mutation rules in [SKILL.md](../SKILL.md). Use command `--help` for optional flags.
4
+
5
+ ### Model configs
6
+
7
+ ```bash
8
+ ae-cli evaluation +list_model_configs
9
+ ae-cli evaluation +get_model_config --id <model-config-uuid>
10
+ ae-cli evaluation +create_model_config --name "<name>" --provider OPENAI_COMPATIBLE_CHAT|ANTHROPIC_CHAT|GEMINI_CHAT|AZURE_OPENAI_CHAT|TE_CLAUDE_WEB \
11
+ --model-name "<model>" --base-url "<url>" [--parameters-json '<json>'] [--capabilities-json '<json>'] [--credential-id <uuid>]
12
+ ae-cli evaluation +update_model_config --id <model-config-uuid> [same fields as +create_model_config] --lock-version <n>
13
+ ae-cli evaluation +delete_model_config --id <model-config-uuid> --lock-version <n>
14
+ ae-cli evaluation +test_model_config_connectivity --id <model-config-uuid>
15
+ ae-cli evaluation +transfer_model_config_owner --id <model-config-uuid> --owner-user-id <user-uuid> --lock-version <n>
16
+ ```
17
+
18
+ - `--capabilities-json` must set `chat_completions: true` and `max_context_tokens >= 1`, otherwise `MODEL_CONFIG_INVALID`.
19
+ - Use `MODEL_PARAMETERS_V2` for new model configs. It omits `max_output_tokens`; output limits are controlled by the provider. Historical frozen snapshots may still contain V1.
20
+ - `+update_model_config` is full-replace: `+get_model_config` first and pass every field back.
21
+ - The platform validates outbound reachability at create time; unreachable base URLs are rejected.
22
+
23
+ ### Agents
24
+
25
+ ```bash
26
+ ae-cli evaluation +list_agents
27
+ ae-cli evaluation +get_agent --id <agent-uuid>
28
+ ae-cli evaluation +create_agent --name "<name>" --endpoint-url "<url>" \
29
+ --input-schema-json '{"schema_version":"AGENT_INPUT_SCHEMA_V1","type":"object","properties":{...},"required":[...]}' \
30
+ --config-json '<AGENT_CONFIG_V* json>' \
31
+ [--connector-type HTTP_JSON_V1|OPENCODE_SERVER|OPENCLAW_GATEWAY_V1|HERMES_RUNS_V1|TE_CLAUDE_WEB_V1] [--credential-id <uuid>]
32
+ ae-cli evaluation +update_agent --id <agent-uuid> [same fields as +create_agent] --lock-version <n>
33
+ ae-cli evaluation +delete_agent --id <agent-uuid> --lock-version <n>
34
+ ae-cli evaluation +test_agent_connectivity --id <agent-uuid>
35
+ ae-cli evaluation +agent_snapshot_preview --id <agent-uuid>
36
+ ae-cli evaluation +transfer_agent_owner --id <agent-uuid> --owner-user-id <user-uuid> --lock-version <n>
37
+ ```
38
+
39
+ - `--config-json` must match the connector type; use `+get_agent` on a working agent as a template. Hermes direct transport uses `AGENT_CONFIG_V2.config.hermes.transport_mode=DIRECT`; use `+list_te_claude_catalog` to discover TE Claude agent/model ids for `TE_CLAUDE_WEB` configs.
40
+ - Under TE authentication, TE Claude model and agent configs bind the login credential automatically; omit `--credential-id`. The flag remains available for legacy non-TE authentication.
41
+
42
+ ### Credentials
43
+
44
+ ```bash
45
+ ae-cli evaluation +list_credentials
46
+ ae-cli evaluation +get_credential --id <credential-uuid>
47
+ ae-cli evaluation +create_credential --name "<name>" --type BEARER_TOKEN|API_KEY_HEADER|AI_MONITOR_SESSION --secret "<secret>" [--header-name "<header>"] \
48
+ [--data-token "<token>"] [--report-source "<source>"]
49
+ ae-cli evaluation +update_credential --id <credential-uuid> --name "<name>" --lock-version <n>
50
+ ae-cli evaluation +rotate_credential --id <credential-uuid> --secret "<new-secret>" --lock-version <n>
51
+ ae-cli evaluation +disable_credential --id <credential-uuid> --lock-version <n>
52
+ ae-cli evaluation +enable_credential --id <credential-uuid> --lock-version <n>
53
+ ae-cli evaluation +delete_credential --id <credential-uuid> --lock-version <n>
54
+ ae-cli evaluation +transfer_credential_owner --id <credential-uuid> --owner-user-id <user-uuid> --lock-version <n>
55
+ ```
56
+
57
+ - Credential enabling/disabling is high-risk and requires confirmation. Non-interactive calls require explicit authorization and global `--yes`; `--dry-run` remains a local preview.
58
+ - Evaluation error output redacts submitted secrets and session tokens, including JSON-escaped and URL-encoded forms. Remote error messages and hints are not written to CLI logs.
59
+ - Secrets are write-only: sent once on create/rotate, never returned or logged by the CLI.
60
+ - `AI_MONITOR_SESSION` credentials additionally require `--data-token` (max 512) and `--report-source` (max 128); all three are sensitive — dry-run redacts them and they must never be logged.
61
+
62
+ ### Bring your own model and agent
63
+
64
+ Credentials are prerequisites for model configs and agents:
65
+
66
+ ```bash
67
+ ae-cli evaluation +create_credential --name "my-ark-token" --type BEARER_TOKEN --secret "<secret>"
68
+ ae-cli evaluation +create_model_config --name "my-judge" --provider OPENAI_COMPATIBLE_CHAT \
69
+ --model-name "kimi-k3" --base-url "http://10.0.0.1:3003" \
70
+ --credential-id <credential-uuid> \
71
+ --parameters-json '{"schema_version":"MODEL_PARAMETERS_V2","temperature":0,"top_p":1,"seed":1,"timeout_ms":120000,"max_retries":2,"structured_output":"AUTO"}' \
72
+ --capabilities-json '{"schema_version":"MODEL_CAPABILITIES_V1","chat_completions":true,"json_schema":false,"seed":true,"usage":true,"max_context_tokens":8192}'
73
+ ae-cli evaluation +test_model_config_connectivity --id <model-config-uuid>
74
+ ```
75
+
76
+ To change one setting (e.g. timeout), `+update_model_config` is full-replace: `+get_model_config`, edit the JSON, pass every field back.
77
+
78
+ Ownership transfers and credential deletion require ADMIN. TE Claude catalog discovery is documented in [integrations.md](integrations.md).
@@ -0,0 +1,57 @@
1
+ # Datasets
2
+
3
+ Commands use `ae-cli evaluation +<command>`. Read the shared endpoint, authentication, and mutation rules in [SKILL.md](../SKILL.md). Use command `--help` for optional flags.
4
+
5
+ ### Datasets
6
+
7
+ ```bash
8
+ ae-cli evaluation +list_datasets [--search <text>] [--status CREATING|READY|IMPORT_FAILED] [--cursor <cursor>] [--page-size 50]
9
+ ae-cli evaluation +get_dataset --id <dataset-uuid>
10
+ ae-cli evaluation +create_dataset --name "<name>" [--description "..."]
11
+ ae-cli evaluation +import_dataset --name "<name>" --file <path> [--profile GENERIC|AGENT_TASK_CASES_V1] [--description "..."] --idempotency-key "<fresh-key>"
12
+ ae-cli evaluation +dataset_import_status --id <dataset-uuid>
13
+ ae-cli evaluation +dataset_import_errors --id <dataset-uuid>
14
+ ae-cli evaluation +update_dataset --id <dataset-uuid> --name "<name>" [--description "..."] --lock-version <n>
15
+ ae-cli evaluation +delete_dataset --id <dataset-uuid> --lock-version <n>
16
+ ae-cli evaluation +transfer_dataset_owner --id <dataset-uuid> --owner-user-id <user-uuid> --lock-version <n>
17
+ ae-cli evaluation +list_dataset_fields --id <dataset-uuid>
18
+ ae-cli evaluation +create_dataset_field --id <dataset-uuid> --display-name "<name>" --data-type TEXT|NUMBER|BOOLEAN|JSON|DATE|TIME
19
+ ae-cli evaluation +batch_create_dataset_fields --id <dataset-uuid> --fields-json '[{"display_name":"Question","data_type":"TEXT"}]'
20
+ ae-cli evaluation +update_dataset_field --id <dataset-uuid> --field-id <field-uuid> --display-name "<name>" [--ordinal 0] --lock-version <n>
21
+ ae-cli evaluation +delete_dataset_field --id <dataset-uuid> --field-id <field-uuid> --lock-version <n>
22
+ ae-cli evaluation +reorder_dataset_fields --id <dataset-uuid> --field-ids '["<uuid-1>","<uuid-2>"]' --lock-version <n>
23
+ ae-cli evaluation +list_dataset_cases --id <dataset-uuid> [--cursor <cursor>] [--page-size 50]
24
+ ae-cli evaluation +get_dataset_case --id <dataset-uuid> --case-id <case-uuid>
25
+ ae-cli evaluation +create_dataset_case --id <dataset-uuid> --data '{"input":"...","expected":"..."}'
26
+ ae-cli evaluation +batch_create_dataset_cases --id <dataset-uuid> --cases-json '[{"data":{"input":"...","expected":"..."}}]'
27
+ ae-cli evaluation +update_dataset_case --id <dataset-uuid> --case-id <case-uuid> --data '{...}' --lock-version <n>
28
+ ae-cli evaluation +delete_dataset_case --id <dataset-uuid> --case-id <case-uuid> --lock-version <n>
29
+ ae-cli evaluation +export_dataset --id <dataset-uuid> --export-format csv|jsonl
30
+ ae-cli evaluation +list_dataset_versions --id <dataset-uuid>
31
+ ae-cli evaluation +publish_dataset_version --id <dataset-uuid> --lock-version <n>
32
+ ae-cli evaluation +get_dataset_version --id <dataset-uuid> --version-id <dataset-version-uuid>
33
+ ae-cli evaluation +list_dataset_references --id <dataset-uuid>
34
+ ```
35
+
36
+ - `--field-ids` must contain every field UUID exactly once, in the desired order.
37
+ - Case `--data` is keyed by `field_key` from `+list_dataset_fields`. Single-case `--data` and batch `--cases-json` are redacted from command logs. Sensitive JSON parse errors omit input content; successful requests and explicit dry-run previews retain the supplied case data.
38
+ - Batch field creation accepts 1-100 definitions and batch case creation accepts 1-1000 definitions. Each batch is transactional: either every item is created or none are.
39
+ - Field mutations use the dataset lock_version; case mutations use the case lock_version from `+get_dataset_case`.
40
+
41
+ ### Import a dataset and wait for readiness
42
+
43
+ Import requires a fresh Idempotency-Key and returns 202 with the created dataset; the pipeline is asynchronous:
44
+
45
+ ```bash
46
+ ae-cli evaluation +import_dataset \
47
+ --name "release-checkout" \
48
+ --file ./cases.csv \
49
+ --profile GENERIC \
50
+ --idempotency-key "import-$(date +%s)"
51
+ ae-cli evaluation +dataset_import_status --id <dataset-uuid> # poll until READY
52
+ ae-cli evaluation +dataset_import_errors --id <dataset-uuid> # if IMPORT_FAILED
53
+ ae-cli evaluation +list_dataset_fields --id <dataset-uuid> # field keys for mapping/case data
54
+ ```
55
+
56
+ Download exported files using [files.md](files.md): poll `+get_file`, then
57
+ `ae-cli evaluation file download --id <file-uuid> --output ./dataset.csv`.
@@ -0,0 +1,81 @@
1
+ # Evaluators and calibration
2
+
3
+ Commands use `ae-cli evaluation +<command>`. Read the shared endpoint, authentication, and mutation rules in [SKILL.md](../SKILL.md). Use command `--help` for optional flags.
4
+
5
+ ### Evaluators and templates
6
+
7
+ ```bash
8
+ ae-cli evaluation +list_evaluators [--search <text>] [--cursor <cursor>] [--page-size 50]
9
+ ae-cli evaluation +get_evaluator --id <evaluator-uuid>
10
+ ae-cli evaluation +create_evaluator --name "<name>" [--description "..."] [--category SAFETY] \
11
+ [--prompt "...{{input}} {{output}}..."] [--variables '["input","output"]'] \
12
+ [--model-config-id <uuid>] [--template-code <code>] [--template-locale zh|en]
13
+ ae-cli evaluation +update_evaluator --id <evaluator-uuid> --name "<name>" --model-config-id <uuid> \
14
+ [--description "..."] [--category "..."] [--prompt "..."] [--variables '[...]'] --lock-version <n>
15
+ ae-cli evaluation +delete_evaluator --id <evaluator-uuid> --lock-version <n>
16
+ ae-cli evaluation +transfer_evaluator_owner --id <evaluator-uuid> --owner-user-id <user-uuid> --lock-version <n>
17
+ ae-cli evaluation +list_evaluator_templates [--locale zh|en]
18
+ ae-cli evaluation +create_evaluator_template --name "<name>" --category "<category>" --prompt "<prompt>" [--description "..."] [--variables '[...]']
19
+ ae-cli evaluation +disable_evaluator_template --id <template-uuid>
20
+ ae-cli evaluation evaluator-template enable --id <project-template-uuid>
21
+ ae-cli evaluation +list_evaluator_versions --id <evaluator-uuid>
22
+ ae-cli evaluation +publish_evaluator_version --id <evaluator-uuid> --lock-version <n>
23
+ ae-cli evaluation +get_evaluator_health --id <evaluator-uuid>
24
+ ae-cli evaluation +optimize_evaluator_prompt --model-config-id <uuid> --prompt "<prompt>"
25
+ ae-cli evaluation +list_calibration_suites --id <evaluator-uuid>
26
+ ae-cli evaluation +create_calibration_suite --id <evaluator-uuid> --name "<name>" [--description "..."]
27
+ ae-cli evaluation +list_calibration_cases --id <suite-uuid>
28
+ ae-cli evaluation +create_calibration_case --id <suite-uuid> --variables-json '{...}' --expected-score 0.8 --tolerance 0.1 --tags-json '["golden"]'
29
+ ae-cli evaluation +delete_calibration_case --id <case-uuid> --lock-version <n>
30
+ ae-cli evaluation +start_calibration_run --id <suite-uuid>
31
+ ae-cli evaluation +get_calibration_run --id <calibration-run-uuid>
32
+ ae-cli evaluation +list_calibration_results --id <calibration-run-uuid>
33
+ ```
34
+
35
+ - `+create_evaluator` without `--model-config-id` creates a draft; binding a model config via `+update_evaluator` activates it.
36
+ - Prompt placeholders `{{name}}` must match `--variables`.
37
+
38
+ ### Calibrate an evaluator
39
+
40
+ ```bash
41
+ ae-cli evaluation +list_calibration_suites --id <evaluator-uuid> # use the default suite
42
+ ae-cli evaluation +create_calibration_case --id <suite-uuid> \
43
+ --variables-json '{"input":"...","expected":"..."}' \
44
+ --expected-score 0.8 --tolerance 0.1 \
45
+ --tags-json '["golden"]'
46
+ ae-cli evaluation +start_calibration_run --id <suite-uuid>
47
+ ae-cli evaluation +get_calibration_run --id <calibration-run-uuid> # poll until terminal
48
+ ae-cli evaluation +list_calibration_results --id <calibration-run-uuid>
49
+ ae-cli evaluation +get_evaluator_health --id <evaluator-uuid>
50
+ ```
51
+
52
+ Prompt optimization consumes model quota and returns a preview; it never overwrites the evaluator. Prefer the default calibration suite; create extra suites only for a concrete need. Template creation and disabling require ADMIN.
53
+
54
+ ### Template language and process scoring
55
+
56
+ List built-ins with `+list_evaluator_templates --locale en` and create from them
57
+ with `+create_evaluator --template-code <discovered-code> --template-locale en`.
58
+ Both language options accept zh/en and default to zh. Project templates keep
59
+ their original language; an omitted description uses the localized built-in
60
+ description when creating from a built-in. Existing evaluators are unchanged.
61
+
62
+ `TOOL_TRACE_REASONABLENESS` evaluates recorded tool choices, arguments, step
63
+ relationships and evidence consistency using `input`, `output`, `execution_trace`.
64
+ Discover the template and publish/pin its evaluator version. Map execution_trace
65
+ using FIELD_MAPPING_V6 as shown in [runs.md](runs.md); pair it with a task-completion
66
+ evaluator when final-answer quality also matters. `EVALUATOR_VARIABLES_V3` and
67
+ `EVALUATOR_SNAPSHOT_V3` carry the new process-evidence source types. Create/update
68
+ still use the public `--variables` array of names; do not send the versioned
69
+ snapshot object as that flag.
70
+
71
+ `evaluator-template enable` is administrator-only, bodyless and idempotent.
72
+ Only project templates can be re-enabled; built-ins and out-of-scope IDs are not
73
+ found. New evaluators use the latest enabled project template version.
74
+
75
+ Transition status: transitional
76
+ Owning module: Agent Evaluation evaluator templates
77
+ Current transport: authenticated POST /agenteval/api/v1/evaluator-templates/{id}/enable
78
+ Gateway target: TBD (evaluation template lifecycle)
79
+ Review after: 2027-01-21
80
+ Exit condition: replace with L3 when an equivalent capability exists, or retain
81
+ L2 only if typed inputs and compatibility provide additional value.
@@ -0,0 +1,33 @@
1
+ # Download evaluation files
2
+
3
+ Use `ae-cli evaluation file download --id <file-uuid> --output <new-path>`.
4
+ Authentication and endpoint rules are in [SKILL.md](../SKILL.md).
5
+
6
+ 1. Queue an export using the dataset or run reference.
7
+ 2. Poll `+get_file --id <file-uuid>` until COMPLETED. Resource creation alone is
8
+ not evidence that the file is ready; failed/expired files cannot be downloaded.
9
+ 3. Save the attachment:
10
+
11
+ ```bash
12
+ ae-cli evaluation file download --id <file-uuid> --output ./results.csv --dry-run
13
+ ae-cli evaluation file download --id <file-uuid> --output ./results.csv
14
+ ```
15
+
16
+ The authenticated `/files/{id}/content` route works for local and S3 storage.
17
+ The parent directory must exist. The CLI refuses to overwrite an existing path,
18
+ saves with owner-only permissions, removes failed partial output, and returns
19
+ `{path, byte_size}` in its JSON envelope. Bytes are not printed to stdout.
20
+ Dry-run previews the request and destination without opening a file or requesting
21
+ a session. Downloads do not follow redirects or retry automatically.
22
+
23
+ The older `+file_download_url` remains available for temporary URLs, but local
24
+ storage returns a server-local `file://` path. Use `file download` for a remote
25
+ client. Do not print signed URLs or private file content into reports.
26
+
27
+ Transition status: transitional
28
+ Owning module: Agent Evaluation files
29
+ Current transport: authenticated GET /agenteval/api/v1/files/{id}/content
30
+ Gateway target: TBD (evaluation file download capability)
31
+ Review after: 2027-01-21
32
+ Exit condition: migrate to Gateway when authenticated attachment delivery is
33
+ available with equivalent binary output, redaction, and no-overwrite guarantees.
@@ -0,0 +1,39 @@
1
+ # AI Monitor and TE reporting
2
+
3
+ Commands use `ae-cli evaluation +<command>`. Read the shared endpoint, authentication, and mutation rules in [SKILL.md](../SKILL.md). Use command `--help` for optional flags.
4
+
5
+ ```bash
6
+ ae-cli evaluation +get_te_report_config
7
+ ae-cli evaluation +save_te_report_config --base-url "<url>" --app-id "<id>" [--lock-version <n>]
8
+ ae-cli evaluation +get_ai_monitor_connection
9
+ ae-cli evaluation +save_ai_monitor_connection --base-url "<url>" --credential-id <uuid> --session-claims-json '{...}' [--lock-version <n>]
10
+ ae-cli evaluation +verify_ai_monitor_connection
11
+ ae-cli evaluation +import_ai_monitor_traces --name "<name>" --selection-json '{...}' [--idempotency-key "<key>"]
12
+ ae-cli evaluation +list_te_claude_catalog --endpoint-url "<url>" [--credential-id <legacy-uuid>]
13
+ ```
14
+
15
+ - `+save_te_report_config` / `+save_ai_monitor_connection`: omit `--lock-version` on first create; on update send the current version from the get command (0 is a valid version — never treat it as "unset").
16
+
17
+ - `--session-claims-json` requires string `user_id`, `te_user_id`, `name`, `company_id` (optional `is_root`, `platform_access`); values are redacted in dry-run output and must not be logged.
18
+ - `+list_te_claude_catalog` uses the login access token automatically under TE authentication. Supply `--credential-id` only for legacy non-TE authentication.
19
+
20
+ ### Import AI Monitor traces into a dataset
21
+
22
+ The import is asynchronous: the 201 response returns the created dataset and import job — poll `+dataset_import_status` instead of treating creation as completion. `--session-claims-json` and selection content are identity/permission sensitive; never log or echo them.
23
+
24
+ ```bash
25
+ ae-cli evaluation +get_ai_monitor_connection
26
+ ae-cli evaluation +save_ai_monitor_connection \
27
+ --base-url "https://ai-monitor.example.com" \
28
+ --credential-id <ai-monitor-session-credential-uuid> \
29
+ --session-claims-json '{"user_id":"...","te_user_id":"...","name":"...","company_id":"..."}' \
30
+ --lock-version <n>
31
+ ae-cli evaluation +verify_ai_monitor_connection
32
+ ae-cli evaluation +import_ai_monitor_traces \
33
+ --name "ai-monitor-traces" \
34
+ --selection-json '{"mode":"TRACE_IDS","trace_ids":["trace-1"]}' \
35
+ --idempotency-key "aim-$(date +%s)"
36
+ ae-cli evaluation +dataset_import_status --id <dataset-uuid> # poll until READY
37
+ ```
38
+
39
+ FILTER mode uses `{"mode":"FILTER","start_time":"<date>","end_time":"<date>"}` with optional `agent`, `channel`, `search_term`. Both dates must be valid calendar dates in `YYYY-MM-DD` format, with `end_time` not preceding `start_time`; impossible dates such as February 30 are rejected locally. TRACE_IDS carries 1-1000 ids.
@@ -0,0 +1,160 @@
1
+ # Evaluation runs and results
2
+
3
+ Commands use `ae-cli evaluation +<command>`. Read the shared endpoint, authentication, and mutation rules in [SKILL.md](../SKILL.md). Use command `--help` for optional flags.
4
+
5
+ Run cancellation is a high-risk write and requires confirmation. Non-interactive cancellation requires explicit authorization and global `--yes`; use `--dry-run` to preview without cancelling.
6
+
7
+ ### Evaluation runs
8
+
9
+ ```bash
10
+ ae-cli evaluation +list_runs [--search <text>] [--status <status>] [--cursor <cursor>] [--limit 50]
11
+ ae-cli evaluation +get_run --id <run-uuid>
12
+ ae-cli evaluation +create_run --name "<name>" \
13
+ [--dataset-id <uuid>] --dataset-version-id <dataset-version-uuid> \
14
+ [--execution-mode LIVE_AGENT|PRESET_RESULT] [--subject-type AGENT|MODEL] \
15
+ [--agent-config-id <uuid>] [--model-config-id <uuid>] \
16
+ [--report-to-te true] \
17
+ [--field-mapping-json '<json>'] [--result-filter-fields-json '<json>'] \
18
+ [--pass-threshold 0.8] [--case-sample-size 100] [--idempotency-key "<key>"]
19
+ ae-cli evaluation +update_run --id <run-uuid> --name "<name>" [same optional fields as +create_run] --lock-version <n>
20
+ ae-cli evaluation +delete_run --id <run-uuid> --lock-version <n>
21
+ ae-cli evaluation +select_run_evaluators --id <run-uuid> --evaluator-ids '["<evaluator-uuid>"]' \
22
+ [--evaluator-versions-json '[{"evaluator_id":"<uuid>","version_id":"<uuid>"}]'] --lock-version <n>
23
+ ae-cli evaluation +list_run_evaluators --id <run-uuid>
24
+ ae-cli evaluation +update_run_field_mapping --id <run-uuid> --field-mapping-json '<json>' --lock-version <n>
25
+ ae-cli evaluation +update_run_result_filter_fields --id <run-uuid> --result-filter-fields-json '{"fields":[],"schema_version":"RESULT_FILTER_FIELDS_V1"}' --lock-version <n>
26
+ ae-cli evaluation +validate_run --id <run-uuid>
27
+ ae-cli evaluation +start_run --id <run-uuid> --lock-version <n>
28
+ ae-cli evaluation +cancel_run --id <run-uuid> --lock-version <n>
29
+ ae-cli evaluation +retry_failed_run_cases --id <run-uuid> --lock-version <n>
30
+ ae-cli evaluation +run_overview --id <run-uuid>
31
+ ae-cli evaluation +run_distribution --id <run-uuid> [--run-evaluator-id <uuid>]
32
+ ae-cli evaluation +run_cases --id <run-uuid> \
33
+ [--status <status>] [--evidence-completeness NONE|PARTIAL|COMPLETE|UNKNOWN] [--search <text>] \
34
+ [--evaluation-status <status>] [--score-status <status>] [--evaluator-id <uuid>] \
35
+ [--evaluator-ids '["<uuid>"]'] [--min-score 0.8] [--max-score 1] [--score-gte 0.2] [--score-lte 0.8] \
36
+ [--field-filters-json '[...]'] [--sort AVERAGE_SCORE] [--sort-evaluator-id <uuid>] [--order desc] \
37
+ [--cursor <cursor>] [--limit 50] [--offset 0]
38
+ ae-cli evaluation +get_run_case --id <run-uuid> --case-run-id <case-run-uuid>
39
+ ae-cli evaluation +get_run_case_trace --id <run-uuid> --case-run-id <case-run-uuid>
40
+ ae-cli evaluation +retry_run_case_trace --id <run-uuid> --case-run-id <case-run-uuid>
41
+ ae-cli evaluation +copy_run_case --id <run-uuid> --case-run-id <case-run-uuid>
42
+ ae-cli evaluation +transfer_run_owner --id <run-uuid> --owner-user-id <user-uuid> --lock-version <n>
43
+ ae-cli evaluation +list_project_members
44
+ ae-cli evaluation +create_next_task_version_draft --id <run-uuid>
45
+ ae-cli evaluation +list_evaluation_task_versions --task-id <task-uuid>
46
+ ae-cli evaluation +export_run_results --id <run-uuid> [--export-format CSV|JSONL] --idempotency-key "<fresh-key>"
47
+ ae-cli evaluation +export_run_low_scores --id <run-uuid> --max-score 0.5 [--min-score 0] [--status SUCCEEDED] [--export-format CSV|JSONL] --idempotency-key "<fresh-key>"
48
+ ae-cli evaluation file download --id <file-uuid> --output ./results.csv
49
+ ae-cli evaluation +get_file --id <file-uuid>
50
+ ```
51
+
52
+ - Field mapping JSON follows the platform `FIELD_MAPPING_V*` contract (`FIELD_MAPPING_V5` adds `TEMPLATE` input and `AGENT_TOOL_SUMMARY` / `AGENT_ARTIFACT_SUMMARY` / `AGENT_EXECUTION_STATUS` evidence sources); result-filter-fields is `RESULT_FILTER_FIELDS_V1` with at most 5 fields. Do not guess shapes — inspect an existing run with `+get_run` for a working example.
53
+ - `--case-sample-size` randomly selects 1-1000 cases when the run starts; omit it to run every case. Start fails with `RUN_SAMPLE_SIZE_EXCEEDS_CASES` when the requested sample exceeds the selected dataset version's case count.
54
+ - Start prerequisites: bound evaluator(s) (`EVALUATOR_NOT_ACTIVE`), complete field mapping (`FIELD_MAPPING_INCOMPLETE`), and result filter fields — an explicit empty filter is required (`RESULT_FILTER_FIELD_UNAVAILABLE`).
55
+ - Retry semantics: `+retry_failed_run_cases` requeues only Agent-stage `FAILED|BLOCKED|UNKNOWN` cases in the same immutable snapshot, bumps the execution epoch and recomputes aggregates. `+retry_run_case_trace` is ADMIN-only and only for retryable AI Monitor-backed captures.
56
+ - `+create_next_task_version_draft` copies `case_sample_size` and selects the latest published evaluator versions for the new draft. Run and overview responses expose separate succeeded, failed, and cancelled case/score counts for progress tracking.
57
+
58
+ ### Create and run an evaluation
59
+
60
+ 1. Pick a published dataset version and create a draft run from it plus an agent or model:
61
+
62
+ ```bash
63
+ ae-cli evaluation +list_dataset_versions --id <dataset-uuid>
64
+ ae-cli evaluation +create_run \
65
+ --name "release-checkout-run" \
66
+ --dataset-id <dataset-uuid> \
67
+ --dataset-version-id <dataset-version-uuid> \
68
+ --execution-mode LIVE_AGENT \
69
+ --subject-type AGENT \
70
+ --agent-config-id <agent-uuid>
71
+ ```
72
+
73
+ For scoring pre-stored dataset fields without calling an Agent/Model, use `--execution-mode PRESET_RESULT` (then omit `--agent-config-id` / `--model-config-id`).
74
+
75
+ 2. Configure the draft. Before `+start_run` the run needs: at least one ACTIVE evaluator (pin published evaluator versions when possible), a complete field mapping, and result filter fields (an explicit empty filter is fine). Each mutation consumes one lock_version — re-read with `+get_run` in between:
76
+
77
+ ```bash
78
+ ae-cli evaluation +list_evaluator_versions --id <evaluator-uuid>
79
+ ae-cli evaluation +select_run_evaluators --id <run-uuid> \
80
+ --evaluator-ids '["<evaluator-uuid>"]' \
81
+ --evaluator-versions-json '[{"evaluator_id":"<evaluator-uuid>","version_id":"<evaluator-version-uuid>"}]' \
82
+ --lock-version <n>
83
+ ae-cli evaluation +get_run --id <run-uuid>
84
+ ae-cli evaluation +update_run_field_mapping --id <run-uuid> \
85
+ --field-mapping-json '{"schema_version":"FIELD_MAPPING_V5","agent":{"input":{"field_key":"input","source_type":"DATASET_FIELD"}},"evaluators":{"<evaluator-uuid>":{"input":{"field_key":"input","source_type":"DATASET_FIELD"},"output":{"source_type":"AGENT_OUTPUT"}}}}' \
86
+ --lock-version <n>
87
+ ae-cli evaluation +get_run --id <run-uuid>
88
+ ae-cli evaluation +update_run_result_filter_fields --id <run-uuid> \
89
+ --result-filter-fields-json '{"fields":[],"schema_version":"RESULT_FILTER_FIELDS_V1"}' \
90
+ --lock-version <n>
91
+ ```
92
+
93
+ 3. Validate (optional, same preflight as start, no lock_version needed), then start:
94
+
95
+ ```bash
96
+ ae-cli evaluation +validate_run --id <run-uuid>
97
+ ae-cli evaluation +get_run --id <run-uuid>
98
+ ae-cli evaluation +start_run --id <run-uuid> --lock-version <n>
99
+ ```
100
+
101
+ 4. Watch the results and drill into failures:
102
+
103
+ ```bash
104
+ ae-cli evaluation +run_overview --id <run-uuid>
105
+ ae-cli evaluation +run_distribution --id <run-uuid> --run-evaluator-id <run-evaluator-uuid>
106
+ ae-cli evaluation +run_cases --id <run-uuid> --status FAILED --evaluation-status FAILED
107
+ ae-cli evaluation +get_run_case --id <run-uuid> --case-run-id <case-run-uuid>
108
+ ae-cli evaluation +get_run_case_trace --id <run-uuid> --case-run-id <case-run-uuid>
109
+ ae-cli evaluation +retry_failed_run_cases --id <run-uuid> --lock-version <n>
110
+ ```
111
+
112
+ ### Export results and download
113
+
114
+ ```bash
115
+ ae-cli evaluation +export_run_results --id <run-uuid> --export-format CSV --idempotency-key "export-$(date +%s)"
116
+ ae-cli evaluation +export_run_low_scores --id <run-uuid> --max-score 0.5 --idempotency-key "low-$(date +%s)"
117
+ # Poll the returned file until COMPLETED before downloading.
118
+ ae-cli evaluation +get_file --id <file-uuid>
119
+ ae-cli evaluation file download --id <file-uuid> --output ./results.csv
120
+ ```
121
+
122
+ Traces are available only for LIVE_AGENT runs with subject AGENT. Capture status is independent of case/run success. Captures contain at most 500 spans and may be truncated; PARTIAL or reference-only evidence must not be described as complete. Never include hidden chain-of-thought, credentials, cookies, auth headers, or unredacted tool input/output in reports. Ownership transfer and project-member discovery require ADMIN.
123
+
124
+ ### Process evidence mapping (FIELD_MAPPING_V6)
125
+
126
+ For LIVE_AGENT runs whose subject is AGENT, V6 adds `AGENT_EXECUTION_TRACE` and
127
+ `AGENT_TOOL_CALLS`. Keep the existing V5 mappings for final-output-only scoring.
128
+ Use real dataset field keys, evaluator IDs and a published evaluator version:
129
+
130
+ ```json
131
+ {
132
+ "schema_version": "FIELD_MAPPING_V6",
133
+ "agent": {"input": {"source_type": "DATASET_FIELD", "field_key": "input"}},
134
+ "evaluators": {
135
+ "<evaluator-uuid>": {
136
+ "input": {"source_type": "DATASET_FIELD", "field_key": "input"},
137
+ "output": {"source_type": "AGENT_OUTPUT"},
138
+ "execution_trace": {"source_type": "AGENT_EXECUTION_TRACE"}
139
+ }
140
+ }
141
+ }
142
+ ```
143
+
144
+ An evaluator declaring `tool_calls` may map it to `{ "source_type": "AGENT_TOOL_CALLS" }`.
145
+ Only map variables the evaluator declares. Send the complete mapping through
146
+ `+update_run_field_mapping` with the latest lock version, validate, then start.
147
+
148
+ The process projection is `PROCESS_EVIDENCE_V1`; TE Claude A2A tool artifacts use
149
+ `TE_CLAUDE_TOOL_CALLS_V1`. Scoring requires a READY/COMPLETE/non-truncated snapshot
150
+ from the current execution epoch and limits the projection to 64 KiB. Missing,
151
+ pending or unusable evidence fails only the dependent score with a null score;
152
+ Agent status stays independent and final-output evaluators can still score.
153
+
154
+ Score `input_variables` holds resource references (`content_location=CASE_EXECUTION_TRACE`),
155
+ not full tool payloads. Inspect `+get_run_case_trace` separately. TE Claude evidence
156
+ covers recorded tool/sub-Agent calls and explicit parent-child relationships,
157
+ not hidden model reasoning, delegated internal steps, timing or cost. Preserve
158
+ redaction and completeness limits when reporting results.
159
+
160
+ See [files.md](files.md) for authenticated downloads and file readiness checks.
@@ -0,0 +1,31 @@
1
+ # Scheduled evaluations
2
+
3
+ Commands use `ae-cli evaluation +<command>`. Read the shared endpoint, authentication, and mutation rules in [SKILL.md](../SKILL.md). Use command `--help` for optional flags.
4
+
5
+ ### Schedules
6
+
7
+ ```bash
8
+ ae-cli evaluation +list_schedules [--status PENDING|PROCESSING|COMPLETED|FAILED|CANCELLED] [--cursor <cursor>] [--limit 50]
9
+ ae-cli evaluation +create_schedule --run-id <run-uuid> --frequency HOURLY|DAILY|WEEKLY|MONTHLY --time-zone <iana> \
10
+ [--minute-of-hour 0] [--hour-of-day 9] [--day-of-week 1] [--day-of-month 1]
11
+ ae-cli evaluation +update_schedule --id <schedule-uuid> --frequency <freq> --time-zone <iana> \
12
+ [--minute-of-hour 0] [--hour-of-day 9] [--day-of-week 1] [--day-of-month 1] --lock-version <n>
13
+ ae-cli evaluation +delete_schedule --id <schedule-uuid> --lock-version <n>
14
+ ```
15
+
16
+ HOURLY runs at minute 0 and must omit `--minute-of-hour` (or send 0). DAILY/WEEKLY/MONTHLY require `--minute-of-hour`. Schedules pin published task versions.
17
+
18
+ ### Scheduled evaluations
19
+
20
+ ```bash
21
+ ae-cli evaluation +list_schedules
22
+ ae-cli evaluation +create_schedule \
23
+ --run-id <run-uuid> \
24
+ --frequency DAILY \
25
+ --time-zone Asia/Shanghai \
26
+ --hour-of-day 9 \
27
+ --minute-of-hour 0
28
+ ae-cli evaluation +update_schedule --id <schedule-uuid> --frequency WEEKLY --time-zone Asia/Shanghai \
29
+ --day-of-week 1 --hour-of-day 9 --minute-of-hour 0 --lock-version <n>
30
+ ae-cli evaluation +delete_schedule --id <schedule-uuid> --lock-version <n>
31
+ ```
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ae-metadata
3
- version: 1.0.2
3
+ version: 1.0.4
4
4
  description: "AE metadata capability-gateway CLI: list, inspect, create, update, delete and download metadata data tables; bind an existing dimension table to a property or create and bind a CSV dimension table. Local file upload and event/property discovery are separate prerequisite capabilities."
5
5
  ---
6
6
 
@@ -43,6 +43,7 @@ Safety:
43
43
  - **Before any command**, read the matching `references/<name>.md` (filename = command with spaces → underscores, e.g. `metadata data-table list` → `metadata_data_table_list.md`).
44
44
  - Never invent `project_id`, event/property names, `input_file_id`, or `data_table_id`. Reuse verified names or discover a metadata lookup capability; find data table IDs via `metadata data-table list`.
45
45
  - `metadata data-table download` is an async artifact command: plain invocation submits, `--wait` waits, and `--output <file>` waits then streams atomically. Resume with `analysis run wait`; local interruption never cancels the remote run.
46
+ - The member's natural-day quota counts every Gateway capability `execute` call eligible for usage statistics (an identifiable user and statistics enabled), including metadata-only reads, previews, table/binding writes, asset exports, and downloads that submit work. It does not depend on database engine or business purpose. Cache hits, repeated calls, reused runs, and failures within `execute` count, including schema errors, permission denials, and unknown capability IDs. Gateway capability discovery (list/inspect), validate/dry-run, and separate run-status/artifact-download HTTP endpoints do not count; pagination and cancellation through capability execution do count. On `QUERY_DAILY_LIMIT_EXCEEDED` (HTTP 429), wait until reset or contact an administrator; `QUERY_QUOTA_UNAVAILABLE` fails explicitly. Do not switch identities to bypass these errors. Omit download `--timeout-seconds` to use the server default; inspect the selected capability for its current policy.
46
47
 
47
48
  ## When to Use
48
49
 
@@ -13,7 +13,7 @@ ae-cli metadata data-table download --project-id <project_id> --data-table-id <i
13
13
  | `--project-id` / `-p` | Yes | Numeric project ID. |
14
14
  | `--data-table-id` | Yes | Data table ID. |
15
15
  | `--request-id` | No | Optional `cli_<32 lowercase hex>` request ID. |
16
- | `--timeout-seconds` | No | Remote runtime in seconds, 1 to 21600. |
16
+ | `--timeout-seconds` | No | Omit to use the server default (normally 21600 seconds / 6 hours). This CLI accepts explicit values in `1..21600`. Inspect this capability for the server default/max; use `capability run` with `timeout_seconds` for larger values only when its schema allows them. |
17
17
  | `--wait` | No | Wait for run `SUCCEEDED` and artifact `COMPLETED`. |
18
18
  | `--output` | No | Wait, then stream and atomically publish the artifact to this file. |
19
19
  | `--force` | No | Replace an existing `--output` file atomically; invalid without `--output`. |
@@ -23,3 +23,9 @@ invocation submits only. `--output` implies `--wait`; resume an interrupted
23
23
  wait with `ae-cli analysis run wait --run-id <run_id> [--output <file>]`.
24
24
  Local interruption never cancels the remote run. Do not use this command for
25
25
  inline data-table metadata; use `metadata data-table get` instead.
26
+
27
+ Read the returned `effective_timeout_seconds`, `timeout_source`, and `deadline_at` for the actual lifecycle deadline. Local waiting has its own bound and can be resumed without resubmitting.
28
+
29
+ Each Gateway `execute` call consumes one unit of the member's natural-day quota when the user is identifiable and usage statistics are enabled, regardless of database engine or business purpose. Cache hits and failures within `execute` count, including invalid input schemas, permission denials, unknown capability IDs, and accepted work that later fails or times out. Repeating the same input counts again even if a handler reuses an existing run; Gateway has no general `client_request_id` idempotency guarantee. Resume with `analysis run wait` or use `analysis artifact download`: their separate status/download HTTP endpoints do not count. Gateway capability discovery (list/inspect) and validate/dry-run do not count either. Pagination and cancellation do count when invoked through capability execution, such as `analysis.query.cancel`.
30
+
31
+ `QUERY_DAILY_LIMIT_EXCEEDED` (HTTP 429) requires waiting until reset or contacting an administrator; a blocked call does not increase the used quota but remains eligible for failed-call usage auditing. `QUERY_QUOTA_UNAVAILABLE` fails explicitly. Usage persistence is asynchronous and best effort, so persisted usage-row totals need not equal quota counters. Do not switch identities to bypass quota enforcement.
@@ -17,6 +17,8 @@ ae-cli metadata data-table get --project-id <project_id> --data-table-id <id> --
17
17
  | `--data-table-id` | Yes | Data table ID from `metadata data-table list`. |
18
18
  | `--include-preview` | No | Include preview rows when true. |
19
19
 
20
+ Each call to this capability's Gateway `execute` endpoint consumes one unit of the member's natural-day quota when the user is identifiable and usage statistics are enabled. This includes metadata-only reads (`include_preview` omitted or false), previews of any table type, cache hits, repeated calls, and failures within `execute`, including schema errors or permission denials. The database engine does not affect counting. Gateway capability-discovery list/inspect and validate/dry-run endpoints do not count. `QUERY_DAILY_LIMIT_EXCEEDED` (HTTP 429) requires waiting until reset or contacting an administrator; a blocked call does not increase the used quota but remains eligible for failed-call usage auditing. `QUERY_QUOTA_UNAVAILABLE` fails explicitly. Usage persistence is asynchronous and best effort, so persisted usage-row totals need not equal quota counters. Do not change identities to bypass quota enforcement.
21
+
20
22
  ## Request Body
21
23
 
22
24
  ```json
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ae-team
3
- version: 1.0.0
3
+ version: 1.0.2
4
4
  description: "ThinkingAI AE (Agentic Engine) ae-cli manual for AI Agent Team tasks: managing teams (list, create, update, delete, AI-generate, templates) and executing TeamRuns (start, chat, cancel, reply, result, artifacts). Use when the user asks to find a team, run a team task, check run status, retrieve results or artifacts, or set up multi-agent workflows. Must use ae-cli, read the matching references/<command>.md before composing commands, and never guess team IDs, run IDs, config structures, or parameter formats."
5
5
  ---
6
6
 
@@ -113,7 +113,7 @@ ae-cli team +run-start --team-id <team_id> --input "分析上周用户留存数
113
113
  # 4. Stream until done (blocks; no polling needed)
114
114
  ae-cli team +run-watch --id <run_id>
115
115
  # exit 0 → completed/partial_success → go to step 5
116
- # exit 1 → failed/cancelled → inspect errorMessage in output, report to user
116
+ # exit 1 → inspect the terminal entity or error; for connection errors, use +run-result before considering a new run
117
117
  # exit 2 → waiting_user → go to step 4a
118
118
 
119
119
  # 4a. Handle waiting_user: read pendingQuestion from stdout, get user's answer, reply, re-watch
@@ -16,6 +16,7 @@ Domain: **TeamRun execution / write**
16
16
  - `--notification` must be valid JSON if provided, e.g. `'{"channels":["feishu"],"feishuChatId":"..."}'`.
17
17
  - This is an ordinary `write` operation and does not require CLI confirmation.
18
18
  - After starting, capture the returned `id` (run ID) and use it to poll `+run-result`.
19
+ - `--save-to-kb-id` accepts a personal or company knowledge base ID and maps to the API field `saveToKnowledgeBaseId`. After completion, check `savedKnowledgeBase` and read back the saved source; a successful start alone does not confirm saving.
19
20
 
20
21
  ## Command
21
22
  ```bash
@@ -13,7 +13,8 @@ Domain: **TeamRun execution / read**
13
13
  - `--id` is required. Obtain the real run ID from a previous `+run-start` or `+run-chat` response.
14
14
  - Check the **exit code** to determine what happened — do not guess from output alone.
15
15
  - When exit code is `2` (`waiting_user`): read `pendingQuestion` from stdout, present it to the user, collect their answer, call `+run-reply`, then re-run `+run-watch`.
16
- - Network drops are handled automatically (up to 10 reconnects with 2s delay). Do NOT retry `+run-watch` on exit 1 unless you have confirmed the run itself failed via `+run-result`.
16
+ - Connection failures, premature EOF, and SSE read failures share a maximum of 10 reconnects, with a 2s delay before each retry. Reconnects carry the last complete log timestamp in `afterLog`; an incomplete event is discarded. HTTP rejections and SSE `error` events exit immediately without reconnecting.
17
+ - Exit 1 alone does not mean the server-side run failed. After a connection error or exhausted retries, check `+run-result --id <run_id>`. Resume watching the same run if it is still active; do not start a duplicate run merely because its stream disconnected.
17
18
 
18
19
  ## Command
19
20
  ```bash
@@ -37,16 +38,17 @@ ae-cli team +run-watch --id <run_id> --after-log <lastTimestamp>
37
38
  | Code | Meaning | Action |
38
39
  |---|---|---|
39
40
  | `0` | `completed` or `partial_success` | Proceed to `+run-artifacts` |
40
- | `1` | `failed`, `cancelled`, `stale`, or connection error | Inspect `errorMessage` in stdout JSON; report to user |
41
+ | `1` | `failed`, `cancelled`, `stale`, or connection error | Inspect the terminal entity or error; for connection errors, check the same run with `+run-result` |
41
42
  | `2` | `waiting_user` | Read `pendingQuestion` from stdout JSON, present to user, then `+run-reply` → re-run `+run-watch` |
42
43
 
43
44
  ## Output
44
- stdout always receives the final `TeamRunEntity` as a standard JSON envelope:
45
+ When a terminal or `waiting_user` event is received, stdout receives its `TeamRunEntity` as a standard JSON envelope:
45
46
  ```json
46
47
  { "ok": true, "data": { "id": "...", "status": "...", "pendingQuestion": "...", ... } }
47
48
  ```
48
49
  - Exit 0/1: the entity from the `final` SSE event (terminal state)
49
- - Exit 2: the entity from the `update` SSE event at the moment `waiting_user` was detected
50
+ - Exit 2: the entity from the `snapshot` or `update` SSE event at the moment `waiting_user` was detected
51
+ - Connection failures and SSE `error` events emit an error on stderr and may have no entity on stdout. A connection error does not cancel the run.
50
52
 
51
53
  stderr receives real-time log lines and status changes (suppressed with `--quiet`).
52
54
 
@@ -75,7 +77,7 @@ ae-cli team +run-watch --id <run_id>
75
77
 
76
78
  ## Next Steps on Failure
77
79
  - Exit 1 + `status = failed`: read `errorMessage` in the JSON output; ask user whether to retry with `+run-start`.
78
- - Connection drop before `final`: re-run `+run-watch --id <run_id> --after-log <lastTimestamp>`.
80
+ - Connection error before `final`: let automatic reconnects finish. If the command exits 1, check `+run-result --id <run_id>` first. For an active run, resume with `+run-watch --id <run_id> --after-log <lastTimestamp>`; omit `--after-log` if no cursor was retained.
79
81
 
80
82
  ## Recommended Chaining
81
83
  - `+run-start` → `+run-watch` → exit 0 → `+run-artifacts`