@thinkingai/ae-cli 6.1.24 → 6.1.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -10
- package/README.zh.md +32 -10
- package/bin/ae-cli.js +6 -1
- package/cli-installation-guide.md +91 -0
- package/dist/{auth-XZNXFRJS.js → auth-YHMC3GDH.js} +168 -10
- package/dist/automation-NWWVLWG2.js +459 -0
- package/dist/{capability-FYTU3X6L.js → capability-3QLLIVFB.js} +11 -6
- package/dist/chunk-4655PUNX.js +43 -0
- package/dist/{chunk-4NRCTUZJ.js → chunk-5XJYLEVC.js} +4 -4
- package/dist/{chunk-JOCDD4ON.js → chunk-7QXISROD.js} +1 -1
- package/dist/{chunk-EQ255HKO.js → chunk-AP7YP2NX.js} +2 -2
- package/dist/{chunk-DVMLWQD4.js → chunk-CT7QDJS6.js} +2 -2
- package/dist/chunk-D6ACFILC.js +56 -0
- package/dist/{chunk-HFGZGYCG.js → chunk-EOYSKMXN.js} +264 -10
- package/dist/{chunk-57RRFUEZ.js → chunk-FMNNGNYO.js} +43 -8
- package/dist/{chunk-7XGFSUOM.js → chunk-GIK6EDUG.js} +291 -84
- package/dist/chunk-HVHR4SCP.js +133 -0
- package/dist/{chunk-CCS66K4K.js → chunk-KAEHZZH4.js} +3 -3
- package/dist/{chunk-DX5CDO34.js → chunk-KFNMQTZI.js} +580 -214
- package/dist/{chunk-HBGADCKA.js → chunk-PLE722AJ.js} +28 -11
- package/dist/chunk-RK6GLDGI.js +27 -0
- package/dist/{chunk-V2NUHPXF.js → chunk-S6M42KND.js} +1 -1
- package/dist/{chunk-7FTTULED.js → chunk-UQ77JXYH.js} +7 -3
- package/dist/{chunk-MAPZ7VB6.js → chunk-WNGFSIOB.js} +20 -1
- package/dist/{chunk-VYXXOKYS.js → chunk-XCHAYMSF.js} +7 -4
- package/dist/{community-report-client-CU22W53K.js → community-report-client-PEERQCX2.js} +1 -1
- package/dist/{config-XO3LI3SA.js → config-AHPMEW5A.js} +25 -6
- package/dist/context-YAE3QXP3.js +136 -0
- package/dist/{data-integration-HNGUKFIC.js → data-integration-HESZET7E.js} +6 -6
- package/dist/index.js +167 -53
- package/dist/{local-data-upload-client-GTRIT64F.js → local-data-upload-client-TWMHFLUA.js} +1 -1
- package/dist/memory-62BJOULV.js +580 -0
- package/dist/{metadata-DI5BMYFU.js → metadata-C7CEDHOJ.js} +7 -7
- package/dist/{model-RNPQXIBI.js → model-SBV2JFJI.js} +9 -5
- package/dist/{personal-semantic-preference-5C3WUXFI.js → personal-semantic-preference-QECDPHND.js} +119 -11
- package/dist/project-semantic-Z4QAMBWF.js +356 -0
- package/dist/{sync-O45NXEQY.js → sync-SU33KYX7.js} +12 -8
- package/dist/{te-agent-K5MSPNHJ.js → te-agent-F5QBZSQA.js} +423 -494
- package/dist/{te-analysis-AISWCOOZ.js → te-analysis-2ECAAIFK.js} +1227 -154
- package/dist/{te-community-4OYU3BDA.js → te-community-PFLDLPP4.js} +3 -3
- package/dist/{te-dataops-NFIPB6FX.js → te-dataops-FOQSRIAZ.js} +644 -276
- package/dist/{te-engage-BAM3GBFX.js → te-engage-QKUGIWSR.js} +6 -6
- package/dist/{te-experiment-GUTZXZ5Z.js → te-experiment-26PXR2UO.js} +6 -6
- package/dist/{te-kb-3TS73NO6.js → te-kb-MHDOST62.js} +666 -244
- package/dist/{te-system-STMHLS5J.js → te-system-J2FQF5ER.js} +6 -6
- package/dist/{te-team-3I5AOX3N.js → te-team-5UOZPTU3.js} +6 -6
- package/dist/things-VPPXXLHB.js +1091 -0
- package/dist/{update-RZXLPCRH.js → update-EEUTEI6R.js} +59 -51
- package/dist/workspace-O3EEIYQM.js +554 -0
- package/package.json +30 -11
- package/skills/ae-agent/SKILL.md +95 -140
- package/skills/ae-agent/references/add-model.md +1 -1
- package/skills/ae-agent/references/create-agent.md +1 -1
- package/skills/ae-agent/references/find-archived-conversations.md +12 -5
- package/skills/ae-agent/references/get-agent.md +1 -1
- package/skills/ae-agent/references/list-agents.md +2 -2
- package/skills/ae-agent/references/list-models.md +2 -2
- package/skills/ae-agent/references/notification.md +40 -0
- package/skills/ae-agent/references/restore-conversation.md +3 -1
- package/skills/ae-analysis/SKILL.md +55 -23
- package/skills/ae-analysis/references/adhoc_export.md +1 -1
- package/skills/ae-analysis/references/adhoc_run.md +1 -1
- package/skills/ae-analysis/references/agent_review_submit_to_page.md +2 -0
- package/skills/ae-analysis/references/ai_models/event.md +6 -1
- package/skills/ae-analysis/references/ai_models/funnel.md +12 -4
- package/skills/ae-analysis/references/ai_models/heat_map.md +23 -0
- package/skills/ae-analysis/references/ai_models/interval.md +24 -0
- package/skills/ae-analysis/references/ai_models/path.md +20 -0
- package/skills/ae-analysis/references/ai_models/prop_analysis.md +2 -0
- package/skills/ae-analysis/references/ai_models/rank_list.md +30 -0
- package/skills/ae-analysis/references/ai_models/retention.md +45 -1
- package/skills/ae-analysis/references/ai_models/revenue.md +20 -2
- package/skills/ae-analysis/references/ai_models/session.md +76 -0
- package/skills/ae-analysis/references/ai_models/tag.md +2 -0
- package/skills/ae-analysis/references/ai_models.md +100 -3
- package/skills/ae-analysis/references/analysis_data_retrieval.md +4 -0
- package/skills/ae-analysis/references/analysis_drilldown_contract.md +4 -1
- package/skills/ae-analysis/references/asset_batch_info_export.md +10 -0
- package/skills/ae-analysis/references/asset_batch_sql_export.md +13 -1
- package/skills/ae-analysis/references/asset_export.md +12 -1
- package/skills/ae-analysis/references/asset_list.md +1 -0
- package/skills/ae-analysis/references/asset_search.md +11 -5
- package/skills/ae-analysis/references/bi_panel_list.md +1 -1
- package/skills/ae-analysis/references/catalog_list.md +1 -1
- package/skills/ae-analysis/references/collaboration.md +48 -0
- package/skills/ae-analysis/references/command_index.md +29 -19
- package/skills/ae-analysis/references/dashboard_list.md +4 -4
- package/skills/ae-analysis/references/dashboard_move.md +21 -0
- package/skills/ae-analysis/references/dashboard_report_add.md +2 -0
- package/skills/ae-analysis/references/dashboard_report_data_export.md +2 -0
- package/skills/ae-analysis/references/dashboard_report_get.md +19 -0
- package/skills/ae-analysis/references/dashboard_report_update.md +27 -0
- package/skills/ae-analysis/references/dashboard_update.md +1 -1
- package/skills/ae-analysis/references/drilldown_session_details_run.md +41 -0
- package/skills/ae-analysis/references/event_export.md +3 -1
- package/skills/ae-analysis/references/event_report_presentation.md +76 -0
- package/skills/ae-analysis/references/feedback_submit.md +37 -0
- package/skills/ae-analysis/references/governance_recommendation_auto_review.md +77 -0
- package/skills/ae-analysis/references/governance_recommendation_export.md +11 -0
- package/skills/ae-analysis/references/metadata_resolution.md +18 -3
- package/skills/ae-analysis/references/metric_export.md +3 -1
- package/skills/ae-analysis/references/metric_list.md +1 -1
- package/skills/ae-analysis/references/operation_record_export.md +10 -0
- package/skills/ae-analysis/references/personal_semantic_preference_add.md +2 -2
- package/skills/ae-analysis/references/personal_semantic_preference_get.md +4 -4
- package/skills/ae-analysis/references/personal_semantic_preference_list.md +4 -4
- package/skills/ae-analysis/references/personal_semantic_preference_review.md +9 -0
- package/skills/ae-analysis/references/personal_semantic_preference_review_list.md +7 -0
- package/skills/ae-analysis/references/personal_semantic_preference_submit.md +7 -0
- package/skills/ae-analysis/references/project_semantic_knowledge_wiki.md +91 -32
- package/skills/ae-analysis/references/project_semantic_knowledge_wiki_plan_schema.md +99 -1
- package/skills/ae-analysis/references/property_export.md +3 -1
- package/skills/ae-analysis/references/report_create.md +18 -4
- package/skills/ae-analysis/references/report_data_export.md +6 -0
- package/skills/ae-analysis/references/report_get.md +7 -1
- package/skills/ae-analysis/references/report_list.md +5 -5
- package/skills/ae-analysis/references/report_update.md +21 -4
- package/skills/ae-analysis/references/sql_table_columns.md +4 -4
- package/skills/ae-analysis/references/sql_table_list.md +5 -5
- package/skills/ae-analysis/references/system_query_monitor_overview.md +2 -0
- package/skills/ae-analysis/references/system_query_task_cancel.md +2 -0
- package/skills/ae-analysis/references/system_query_task_export.md +6 -2
- package/skills/ae-analysis/references/system_query_task_get.md +2 -0
- package/skills/ae-analysis/references/system_query_task_list.md +7 -3
- package/skills/ae-analysis/references/system_query_task_options.md +2 -2
- package/skills/ae-analysis/references/system_query_task_realtime_list.md +15 -0
- package/skills/ae-analysis/references/user_cluster_models.md +8 -0
- package/skills/ae-analysis/references/user_tag_create.md +7 -1
- package/skills/ae-analysis/references/user_tag_get.md +1 -1
- package/skills/ae-analysis/references/user_tag_models.md +20 -2
- package/skills/ae-analysis/references/user_tag_refresh.md +1 -1
- package/skills/ae-analysis/references/user_tag_update.md +2 -2
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/build-empty-skeleton.mjs +105 -0
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/build-project-semantic-wiki.mjs +669 -29
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/company-kb.mjs +21 -8
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/default-compile-rules.md +28 -10
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/default-compile-schema.md +66 -0
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/generate-build-ir.mjs +285 -24
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/package-wiki-source-zip.mjs +262 -30
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/plan-kb-source-sync.mjs +1 -1
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/precompiled-source.mjs +46 -2
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/prepare-compile-schema.mjs +64 -0
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/refresh-state-parts.mjs +91 -0
- package/skills/ae-automation/SKILL.md +16 -0
- package/skills/ae-automation/references/cli.md +53 -0
- package/skills/ae-automation/references/command_index.md +17 -0
- package/skills/ae-capability/SKILL.md +73 -2
- package/skills/ae-capability/references/collaboration.md +48 -0
- package/skills/ae-community/SKILL.md +5 -1
- package/skills/ae-community/references/collaboration.md +48 -0
- package/skills/ae-current-context/SKILL.md +3 -2
- package/skills/ae-data-integration/SKILL.md +4 -0
- package/skills/ae-data-integration/references/collaboration.md +48 -0
- package/skills/ae-dataops/SKILL.md +54 -74
- package/skills/ae-dataops/references/collaboration.md +48 -0
- package/skills/ae-dataops/references/dataops-backfill.md +23 -18
- package/skills/ae-dataops/references/dataops-flow-create.md +74 -23
- package/skills/ae-dataops/references/dataops-flow-monitor.md +45 -13
- package/skills/ae-dataops/references/dataops-integration.md +57 -30
- package/skills/ae-dataops/references/dataops-query.md +21 -4
- package/skills/ae-dataops/references/dataops-table.md +143 -11
- package/skills/ae-engage/SKILL.md +21 -6
- package/skills/ae-engage/references/channel-mgmt.md +3 -3
- package/skills/ae-engage/references/collaboration.md +48 -0
- package/skills/ae-engage/references/scene-config-channel.md +4 -4
- package/skills/ae-generate-tracking-plan/SKILL.md +4 -0
- package/skills/ae-generate-tracking-plan/references/collaboration.md +48 -0
- package/skills/ae-kb/SKILL.md +70 -12
- package/skills/ae-kb/references/analysis-workflow.md +73 -36
- package/skills/ae-kb/references/collaboration.md +48 -0
- package/skills/ae-kb/references/query-workflow.md +67 -33
- package/skills/ae-kb/references/schema-import.md +32 -0
- package/skills/ae-kb/references/source-mutations.md +6 -4
- package/skills/ae-kb/references/text-sources.md +53 -0
- package/skills/ae-kb-discovery/SKILL.md +8 -3
- package/skills/ae-kb-discovery/references/collaboration.md +48 -0
- package/skills/ae-metadata/SKILL.md +20 -12
- package/skills/ae-metadata/references/collaboration.md +48 -0
- package/skills/ae-team/SKILL.md +23 -17
- package/skills/ae-things/SKILL.md +85 -0
- package/skills/ae-things/references/cli.md +103 -0
- package/skills/ae-things-progress/SKILL.md +43 -0
- package/skills/ae-things-review/SKILL.md +42 -0
- package/skills/ae-workspace/SKILL.md +43 -0
- package/skills/ae-workspace/references/commands.md +51 -0
- package/dist/chunk-E2JKXMVO.js +0 -29
- package/dist/context-IFJI3LIT.js +0 -46
- package/dist/memory-QGPSNCQS.js +0 -892
- package/dist/project-semantic-3LF6Q6JZ.js +0 -1119
- package/skills/ae-agent/references/create-automation.md +0 -125
- package/skills/ae-agent/references/list-automations.md +0 -56
- package/skills/ae-agent/references/update-automation.md +0 -107
- package/skills/ae-project-semantic/SKILL.md +0 -193
- package/skills/ae-project-semantic/references/query-routing-v5.md +0 -165
- package/skills/ae-project-semantic/references/recommendation-quality.md +0 -68
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# analysis drilldown-session-details run
|
|
2
|
+
|
|
3
|
+
Preview the individual sessions or steps behind one selected session-analysis cell.
|
|
4
|
+
|
|
5
|
+
Read [`analysis_drilldown_contract.md`](analysis_drilldown_contract.md) first. Call this only for a `session` model result whose selected column is a session-count or step-count population and whose returned action advertises `drilldown_session_details`. Session-user and step-user columns are entity populations: use `analysis drilldown-entities run|export` for those. Duration, dwell, depth, rate, and per-user ratio columns are descriptive statistics and are not selectable populations at all.
|
|
6
|
+
|
|
7
|
+
## Command
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
ae-cli analysis drilldown-session-details run \
|
|
11
|
+
--project-id <project_id> \
|
|
12
|
+
--query-context-id <sync_preview_query_context_id> \
|
|
13
|
+
[--source '{"report_id":1001}'] \
|
|
14
|
+
--coordinate '{"date":"2026-08-30","group_values":["add_to_cart"]}' \
|
|
15
|
+
[--use-cache true] \
|
|
16
|
+
[--preview-rows 100] \
|
|
17
|
+
[--timeout-seconds 120]
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Input
|
|
21
|
+
|
|
22
|
+
- `--project-id`: the project used by the synchronous preview. Common rejects a project ID that does not match the project stored by `query_context_id`.
|
|
23
|
+
- `--query-context-id`: `ctx_<32 lowercase hex>` returned by a synchronous `analysis adhoc run`, `report-data run`, or `dashboard-report-data run` of a `session` model. Exports never create one.
|
|
24
|
+
- `--source`: the source selector returned in the compact `sources[]` summary when the preview owns more than one report or chart. Pass exactly one returned field, `report_id` or `chart_id`.
|
|
25
|
+
- `--coordinate`: one cell coordinate built only from the `row_options`, `column_options`, and `metric_options` fragments returned by `analysis query-context get`. For session analysis it carries `group_values` plus a machine `date`; a total-granularity result has no `date`. Never send `row_index`, `column_index`, `values`, `label`, `target_id`, a display-formatted date, raw QP, or a coordinate read from an export file.
|
|
26
|
+
- `--preview-rows`: default 100, maximum 1000. 1000 is also the backend session-detail ceiling.
|
|
27
|
+
- `--timeout-seconds`: default 120, maximum 180.
|
|
28
|
+
|
|
29
|
+
Do not use this command for a non-`session` model, for a coordinate assembled by hand, or as a substitute for `analysis adhoc run` when the caller actually wants aggregated session metrics.
|
|
30
|
+
|
|
31
|
+
## Output and next intent
|
|
32
|
+
|
|
33
|
+
The response contains `items`, `returned_rows`, `has_more`, `request_id`, `query_context_id`, `event_name_desc_meta`, and `result_generate_time`.
|
|
34
|
+
|
|
35
|
+
- `view_mode=session` items are one row per session: `virtual_session_id`, `#user_id`, `session_seq`, `date_group`, `start_time`, `end_time`, `session_duration`, `session_depth`, `start_event`, and `end_event`.
|
|
36
|
+
- `view_mode=step` items keep the leading session identity columns and replace the session-end columns with `event`, `step_index`, `dwell_seconds`, and `is_last`.
|
|
37
|
+
- Every time value in the rows, including `date_group`, `start_time`, `end_time`, and datetime session properties, is already a wall-clock string in the analysis time zone, formatted `yyyy-MM-dd HH:mm:ss.SSS`. Show it as is; do not shift it by the project time-zone setting or treat it as UTC.
|
|
38
|
+
- `session_seq` is the session's order within its own user, not a global row number. `#user_id` is an internal association key; show account ID or visitor ID to customers and keep `#user_id` for machine linkage.
|
|
39
|
+
- There is no `total`. The detail query does not count the full population, so never report `returned_rows` as the session total; read the session count from the originating analysis cell instead.
|
|
40
|
+
- There is no export variant and no paging. When `has_more=true`, the remaining rows are not retrievable through this command; narrow the analysis itself (tighter time range, added `session_filter`, or finer groups) and re-run the preview.
|
|
41
|
+
- This command creates no new drilldown context. `analysis drilldown-user-events run|export` continues only from a user-subject `analysis drilldown-entities run`, never from a session row.
|
|
@@ -13,7 +13,9 @@ ae-cli analysis-meta event export --project-id <project_id> --queries '["login",
|
|
|
13
13
|
|
|
14
14
|
Capability id: `metadata.event.export`.
|
|
15
15
|
|
|
16
|
-
Input: the gateway receives `project_id` plus optional `queries`, `fields`, and `
|
|
16
|
+
Input: the gateway receives `project_id` plus optional `queries`, `fields`, `authenticated_only`, and `certification_scope`; `output` is local-only.
|
|
17
|
+
|
|
18
|
+
Use `--certification-scope project|certified|all` consistently with the corresponding list command. The default `project` follows the project switch; `certified` exports only certified assets; `all` exports every accessible asset. This scope never bypasses access permissions.
|
|
17
19
|
|
|
18
20
|
Output: a successful response must prove `complete=true` and `total` equal to the row count before the CLI atomically publishes a private-mode `.json` array.
|
|
19
21
|
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Event-report presentation and combination charts
|
|
2
|
+
|
|
3
|
+
Read this reference for event combination charts, per-metric chart styles/axes, or the difference between source-report, result-table and analysis-board-card display. This is a saved-event-report contract, not an ad-hoc or SQL visualization contract.
|
|
4
|
+
|
|
5
|
+
## Display scope
|
|
6
|
+
|
|
7
|
+
- Source event chart: `report create/update --presentation`, read through `report get`.
|
|
8
|
+
- Analysis page's result-table layout: source `presentation.table_layout=date|event|group`; it can coexist with a source line/combo chart.
|
|
9
|
+
- Card on one analysis board (`看板`): `dashboard-report get/update` with exact project/dashboard/report IDs. A table card is `--chart-type table`, not source `chart_type=table`.
|
|
10
|
+
- Combination series and axes belong to the source report. Card read responses expose `series_scope=report` and the inherited series when relevant; they are not card-local configuration.
|
|
11
|
+
|
|
12
|
+
Changing source series affects its other trend (`L0`) cards, not just the card currently visible. Explain this scope before a source-series write when the user's intent only names one card. Do not promise a card-local override or use a new copied report without authorization.
|
|
13
|
+
|
|
14
|
+
## Chart names
|
|
15
|
+
|
|
16
|
+
Source `chart_type` accepts `line|combo|bar|stacked|cumulative|pie`. Card display also accepts `table`. Gateway checks compatibility against the current granularity, groups, metrics and comparison settings.
|
|
17
|
+
|
|
18
|
+
Line, combo, and cumulative require a non-total time granularity. An event definition that omits `time_particle_size` defaults to `total`; when creating a trend/combo, explicitly set the requested `day`, `hour`, or another supported non-total grain. For a saved total-time report, a combo requires an authorized definition/granularity change, not a display-only patch; preserve the requested calculation scope rather than silently changing it to make the chart valid.
|
|
19
|
+
|
|
20
|
+
- `line`: pure lines on the primary axis. Explicitly selecting it resets every source metric's combination style and secondary axis.
|
|
21
|
+
- `combo`: trend rendering with report-level non-default per-metric bar/line or secondary-axis settings. A source needs a resulting non-default series configuration; choosing the name alone does not invent one.
|
|
22
|
+
- `stacked`: stacked area, not a bar/line combination.
|
|
23
|
+
- `cumulative`: accumulated line, not a combo chart. It does not configure a second Y axis.
|
|
24
|
+
- `pie`: event pie uses internal `L11`, not `L2`. It requires grouping without time comparison; total-time reports/cards still require those pie conditions.
|
|
25
|
+
|
|
26
|
+
Use semantic names, never internal graph codes. A pure line and a combo both use the native trend family `L0`; the metric styles/axes distinguish them. Do not infer the effective chart from raw `graphShape` alone.
|
|
27
|
+
|
|
28
|
+
## Metric bindings
|
|
29
|
+
|
|
30
|
+
`metric_index` is a 1-based position in the current normalized `definition.metrics` array, not an asset ID, formula dependency index, event ID, or metric UUID. Read the exact report/version before modifying an existing report's series, map each index to its returned metric, and use that version in `--report-version`. Do not reuse positions from an older definition after metrics change.
|
|
31
|
+
|
|
32
|
+
Source `presentation.series` accepts an array. Each item contains exactly three required fields:
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
{"metric_index":1,"type":"bar","axis":"primary"}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
`type` is `bar|line`; `axis` is `primary|secondary`. Indexes must be positive integers, unique and within the current submitted/saved metrics. The server validates the binding and the saved report state before writing.
|
|
39
|
+
|
|
40
|
+
Series is a subset patch: specified metrics change and unspecified metrics retain their styles/axes. `series: []` explicitly resets all metric styles/axes to primary-axis lines. Omitting `series` preserves existing styles/axes where the server can uniquely match each technical metric identity; explicitly selecting `chart_type=line` resets them. `series_scope` is read-only output, never input.
|
|
41
|
+
|
|
42
|
+
A non-empty series-only patch requires an existing compatible trend (`line`/`combo`). An empty `series: []` can clear retained series on a compatible non-trend chart such as bar/cumulative while keeping that current chart type. To switch from another chart and configure non-empty series in the same update, explicitly select `chart_type=combo`; a non-empty series array cannot accompany another explicit chart type. Source reads omit series on non-trend charts, which does not prove that retained series settings are absent; a trend card can still inherit them.
|
|
43
|
+
|
|
44
|
+
For a display-only update, omit `definition` and `model_type` so the query and metric order are not replaced. During a same-model definition update without an explicit series reset, the server preserves styles by uniquely matched technical metric identity, not display labels, UUIDs, or old positions. Filter-only changes and unique reordering can retain the series; added metrics default to primary-axis lines. Removing/changing a non-default metric or an ambiguous match fails before writing with `SERIES_PRESERVATION_CONFLICT`. Follow its hint: reset through `chart_type=line` or `series: []`, then configure the new normalized metric order when needed. Do not manually carry old positions into a new definition, infer a match from a label, or describe this protection as complete preservation of every visual setting.
|
|
45
|
+
|
|
46
|
+
If a definition change makes a previously valid chart unavailable, implicit chart preservation fails before writing. Follow the returned guidance and explicitly choose a compatible chart only within the user's authorized intent; keep the requested query semantics. A pre-existing invalid legacy chart still uses the page's fallback rather than newly blocking an otherwise valid update. These protections do not promise preservation of every visual setting.
|
|
47
|
+
|
|
48
|
+
## Author and verify a combination chart
|
|
49
|
+
|
|
50
|
+
For confirmed event/property metadata, a requested daily window, and two metrics whose metric 1 is revenue and metric 2 is user count:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
ae-cli analysis report create --project-id <project_id> --report-name "Revenue and users" --model-type event --definition '{"time_particle_size":"day","time_range":{"mode":"previous","unit":"day","value":7},"metrics":[{"event":"<confirmed_purchase_event>","aggregation":"sum","property":"<confirmed_amount_property>"},{"event":"<confirmed_login_event>","aggregation":"user_count"}]}' --presentation '{"chart_type":"combo","series":[{"metric_index":1,"type":"bar","axis":"primary"},{"metric_index":2,"type":"line","axis":"secondary"}]}'
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
To change only metric 2 on the current saved report, after reading its exact metric order/version:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
ae-cli analysis report update --project-id <project_id> --report-id <report_id> --report-version <current_version> --presentation '{"series":[{"metric_index":2,"type":"line","axis":"secondary"}]}'
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Read `report get` after an explicitly requested display verification. Its presentation reports the effective chart and per-metric series; a successful mutation is not proof of data-query success or complete equivalence with every page setting.
|
|
63
|
+
|
|
64
|
+
To reset to pure line on the primary axis:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
ae-cli analysis report update --project-id <project_id> --report-id <report_id> --report-version <current_version> --presentation '{"chart_type":"line"}'
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Card trend inheritance
|
|
71
|
+
|
|
72
|
+
`dashboard-report update --chart-type combo` is valid only when the source report already has combo series. It selects the card's trend display without changing source series. The board's trend/line button can display a source combo, so read the effective `chart_type` and inherited `series`, not only the button label.
|
|
73
|
+
|
|
74
|
+
A source combo cannot be made into a pure line on only one card through this contract. `--chart-type line` must not claim a pure-line outcome while source combo remains; the gateway rejects it with guidance to reset the source first. Resetting source series affects every other `L0` card of that source. Card updates do not accept a `series` input/flag.
|
|
75
|
+
|
|
76
|
+
Historical `table_layout` or `date_outside` can inherit browser settings. Missing values mean inherited/unknown, not date/false. For a deterministic table layout, explicitly set `--table-layout` and `--date-outside` in the scoped card update.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# analysis feedback submit
|
|
2
|
+
|
|
3
|
+
Command: `ae-cli analysis feedback submit`.
|
|
4
|
+
Capability id: `analysis.feedback.submit`.
|
|
5
|
+
Risk: `write`. Supports `--validate` and `--dry-run`; neither emits a feedback event.
|
|
6
|
+
|
|
7
|
+
## Trigger
|
|
8
|
+
|
|
9
|
+
Only after an analysis data query has completed and the Agent has delivered its final business analysis answer, ask once in the user's language whether the analysis met expectations. A successful empty result with an explanation is eligible. Individual tool calls, discovery, metadata inspection, asset governance, asset writes, configuration, help and unrelated questions are not triggers. Query submission, running exports, permission errors and failed queries are not completed analysis results. Do not ask after each CLI call or intermediate analysis step.
|
|
10
|
+
|
|
11
|
+
No feedback means no submit command, event, case creation or answer upload. Submit only an explicit user evaluation of the completed analysis. A follow-up question, new requirement, silence or a topic change is not a rating. If the target is ambiguous, do not guess. A spontaneous explicit evaluation of a completed analysis can also be submitted without repeating the question.
|
|
12
|
+
|
|
13
|
+
## Input and correlation
|
|
14
|
+
|
|
15
|
+
- `--query-completed`: confirms that results and the final analysis answer have already been delivered.
|
|
16
|
+
- `--query-capability-id`: one actual analysis data-query capability executed in the evaluated turns, such as `analysis.report_data.run`, `analysis.adhoc.run`, or a completed export. Never substitute asset discovery or writes.
|
|
17
|
+
- `--satisfaction`: `satisfied`, `partially_satisfied`, `dissatisfied`, or `unable_to_judge`, based solely on the explicit user evaluation.
|
|
18
|
+
- `--feedback-text`: original user feedback, up to 2048 characters.
|
|
19
|
+
- `--target-turn-ids`: JSON array of existing analysis turn IDs in this conversation, at most 32. Preserve all relevant turns for a multi-turn analysis and exclude the current feedback turn. Do not generate new analysis IDs. If IDs cannot be reliably recovered, omit them; the event declares session-level association and cannot identify a specific analysis path.
|
|
20
|
+
- `--route-summary`: optional short business-purpose and asset-selection rationale supported by the actual analysis route. Do not submit answer content, result rows, a full transcript, or private internal reasoning. The existing CLI events remain the execution evidence; omit details that cannot be verified.
|
|
21
|
+
- `--feedback-id`: optional stable submission ID to reuse on retries. With a current feedback turn ID, the CLI derives a stable fingerprint. If that ID is unavailable, supply and retain one feedback ID for retries.
|
|
22
|
+
- `--project-id`: the evaluated analysis project when available.
|
|
23
|
+
|
|
24
|
+
The CLI reads `agent_session_id` from the existing context file; the backend requires it to match the current Agent context and uses the authenticated user identity. Preserve the current feedback turn in `agent_turn_id`; do not overwrite it with the target analysis turn. On model switches, assess the analysis route using models from the linked original call events, not the model collecting feedback.
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
ae-cli analysis feedback submit --query-completed \
|
|
28
|
+
--query-capability-id analysis.report_data.run \
|
|
29
|
+
--satisfaction dissatisfied --feedback-text '<original explicit user feedback>' \
|
|
30
|
+
--target-turn-ids '["<existing-analysis-turn-id>"]' --project-id 196
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Result and failure
|
|
34
|
+
|
|
35
|
+
The result contains `accepted`, `feedback_id`, `event_name`, `delivery` and `association_scope`. `accepted=true, delivery=best_effort` means the feedback endpoint accepted the submission; it does not prove downstream ingestion or event visibility. The dedicated `cli_analysis_feedback` event carries the rating and target turns. Reconstruct the path from `cli_gateway_call` using the same user and `agent_session_id`, then the target `agent_turn_id` values; exclude `analysis.feedback.submit` from analysis steps. Ratings produce Good/Bad candidates, not verified business-correctness labels.
|
|
36
|
+
|
|
37
|
+
Feedback is auxiliary. A submission failure must not block or delay the user's next analysis, change the completed query result, replace credentials or trigger a login just for telemetry. Preserve the feedback ID for an explicitly requested retry and do not claim it was recorded when submission failed.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# analysis-meta governance-recommendation auto-review
|
|
2
|
+
|
|
3
|
+
## Use
|
|
4
|
+
|
|
5
|
+
Use this command only when the user explicitly asks the Agent to automatically review or automatically certify recommended assets.
|
|
6
|
+
|
|
7
|
+
## Do not use
|
|
8
|
+
|
|
9
|
+
Do not call this command for a plain recommendation request. Do not call this command for recommendation plus review-page submission. Those flows use `governance-recommendation export` and, when explicitly authorized, `agent-review submit-to-page`.
|
|
10
|
+
|
|
11
|
+
## Input and command
|
|
12
|
+
|
|
13
|
+
Provide `--project-id`. `--window-days` defaults to 90; `--limit` is optional and fixes the recommendation scope when supplied.
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
ae-cli analysis-meta governance-recommendation auto-review \
|
|
17
|
+
--project-id <project_id> \
|
|
18
|
+
--window-days 90
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Capability id: `metadata.governance_recommendation.auto_review`.
|
|
22
|
+
|
|
23
|
+
Risk: `write`.
|
|
24
|
+
|
|
25
|
+
When `--limit` is omitted, the CLI runs a bounded expansion flow before the write:
|
|
26
|
+
|
|
27
|
+
1. Validate automatic-review preconditions first. The validate call must check both `agent_auto_asset_certification_enabled` and `project_semantic_enable`; if either is disabled, stop before collecting recommendations.
|
|
28
|
+
2. Inspect top-20 pending recommendation material with `governance-recommendation export --include-completed false --limit 20`.
|
|
29
|
+
3. If the retained pending scope is too small for a recurring automatic job, inspect top-50 with `--limit 50`, then top-100 with `--limit 100`. These are cumulative top-N hot-dashboard scopes, not pages.
|
|
30
|
+
4. Stop when there are at least about 10 pending asset candidates and 3 pending work-unit branches, when Common says there are no more dashboards, or after top 100.
|
|
31
|
+
5. Build automatic certification decisions exactly once from the final selected material, then submit those decisions for execution and audit. The 20/50/100 inspection steps are read-only and must not create certification traces.
|
|
32
|
+
|
|
33
|
+
Pass `--limit` only for an explicit diagnostic or user-specified scope. An explicit limit disables automatic expansion and preserves that exact scope.
|
|
34
|
+
|
|
35
|
+
## Output
|
|
36
|
+
|
|
37
|
+
The command returns `manual_review_handoff` for assets that remain uncertified after automatic review. This handoff is not a page submission. It is the evidence packet to use only if the user later explicitly asks to submit the uncertified assets to the review page.
|
|
38
|
+
|
|
39
|
+
## Project Switch
|
|
40
|
+
|
|
41
|
+
The server checks `agent_auto_asset_certification_enabled` before collecting recommendations.
|
|
42
|
+
|
|
43
|
+
If the command returns `PROJECT_AUTO_CERTIFICATION_DISABLED`, tell the user the project has not enabled automatic asset certification and stop. If it returns `PROJECT_SEMANTIC_DISABLED`, tell the user project semantics are not enabled and stop. Do not fall back to page submission, legacy `governance-recommendation submit`, direct asset-authentication update, metric mutation, or ordinary recommendation export.
|
|
44
|
+
|
|
45
|
+
## Automatic Review Rules
|
|
46
|
+
|
|
47
|
+
Common owns the deterministic evidence packet and the final execution/audit write. The CLI Agent owns the automatic certification decision, including semantic-duplicate detection and reviewer-readable duplicate explanations.
|
|
48
|
+
|
|
49
|
+
- Only asset candidates are eligible for automatic certification. Metric candidates are not automatically created or certified.
|
|
50
|
+
- Only actionable candidates with strong positive evidence are approved.
|
|
51
|
+
- Candidates with missing source evidence, stale evidence, weak usage/impact signals, explicit prior human rejection/deferral, or CLI Agent semantic-duplicate findings are skipped for manual review.
|
|
52
|
+
- Semantic-duplicate skips must name the conflicting asset targets, including type/key/display name and the reason they are considered close, such as copy-like naming, same display name, synonym properties, or ambiguous close business definitions. Do not claim a duplicate when no concrete conflicting target is returned.
|
|
53
|
+
- The batch caps automatic decisions to the server-side limit and reports overflow separately.
|
|
54
|
+
- Heat, user count, and impact are signals for eligibility, not the full reason by themselves. The Agent must report the decision reason, duplicate targets where present, and source evidence so the customer can tell why a candidate was certified or skipped.
|
|
55
|
+
|
|
56
|
+
## Audit Trace
|
|
57
|
+
|
|
58
|
+
Successful automatic review calls submit CLI Agent decisions through the same server-side certification path as manual approval, writing decision rows and certification operation records.
|
|
59
|
+
|
|
60
|
+
Automatic decision reasons must be reviewer-readable Chinese. Preserve raw source/rule identifiers only in debug exports or technical notes; do not expose fields such as `source`, `rule_version`, or raw `conflict_risks` as the page-visible explanation.
|
|
61
|
+
|
|
62
|
+
`decision:"APPROVE"` means the server attempted certification for that asset. `decision:"SKIP"` means the item remains uncertified and needs manual review if the user still wants it certified.
|
|
63
|
+
|
|
64
|
+
The command result includes `auto_review_expansion` when CLI expansion was used. Preserve `initial_limit`, `final_limit`, inspected limits, per-attempt pending counts, and `stop_reason` in unattended-job logs or user-facing summaries. This expansion trace explains why a daily automation did not keep reviewing only the same top-20 hot dashboards.
|
|
65
|
+
|
|
66
|
+
## Follow-up Page Submission
|
|
67
|
+
|
|
68
|
+
If the user asks to submit the automatic-review leftovers to the page after `auto-review` has completed, do not rerun the whole recommendation flow as a fresh page-review batch unless the handoff is missing or stale. Use `manual_review_handoff` from the auto-review result:
|
|
69
|
+
|
|
70
|
+
- Submit `manual_review_handoff.page_review_items`, not only bare `manual_review_handoff.items`. `page_review_items` contains the uncertified assets plus the dashboard/report parent context required by the review page hierarchy. Treat only entries without `manual_review_context:true` as the human certification workload.
|
|
71
|
+
- Copy each item's original source links, evidence links, target reference, evidence snapshot, and relation context into the `agent-review submit-to-page` draft.
|
|
72
|
+
- Include the automatic-review reason in the page-visible item reason, using `manual_review_reason` / `auto_review_decision.display_reason` / `auto_review_decision.reason` as the basis. Do not describe `previous_decision_exists_for_different_evidence` as a duplicate or close-meaning risk unless the result also names a concrete conflicting asset. Convert it into a reviewer-readable fallback that says no verifiable duplicate target was returned and asks the reviewer to confirm from the current definition and source evidence. Do not expose internal wording such as evidence fingerprints, historical audit evidence, or existing audit records.
|
|
73
|
+
- Copy `manual_review_handoff.auto_review_trace` into submit-to-page `source_metadata.auto_review_trace`. This leaves a page-batch audit record showing which assets were already automatically certified in the same workflow.
|
|
74
|
+
- The item remains a normal `CERTIFY` proposal for human review; do not encode `SKIP`, `FAILED`, or automatic decision status as an approval.
|
|
75
|
+
- Set the batch summary to identify the source auto-review run and explain that the page batch contains only assets still uncertified after automatic review.
|
|
76
|
+
|
|
77
|
+
If `manual_review_handoff.candidate_count` is 0, tell the user there are no remaining uncertified automatic-review candidates to submit from that run.
|
|
@@ -11,6 +11,16 @@ Do not load project semantics, project KB, or personal semantic preferences befo
|
|
|
11
11
|
|
|
12
12
|
Hard output gate: a final answer is invalid if it is grouped by asset type, backend array order, raw `work_units`, source dashboard, source report, or separate top-level asset and metric sections. The final answer must follow the fixed business-domain review display below.
|
|
13
13
|
|
|
14
|
+
## Intent Routing
|
|
15
|
+
|
|
16
|
+
There are three separate user intents. Do not merge them.
|
|
17
|
+
|
|
18
|
+
- Recommendation only: call `analysis-meta governance-recommendation export`, present the evidence-backed recommendations, and stop. Do not check the automatic certification project config, do not submit to the review page, and do not certify assets.
|
|
19
|
+
- Recommendation plus page submission: call `analysis-meta governance-recommendation export`, build the review material, then call `analysis-meta agent-review submit-to-page` only after that submission intent is explicit. Do not check the automatic certification project config and do not certify assets.
|
|
20
|
+
- Automatic review or automatic certification: call `analysis-meta governance-recommendation auto-review`. This command validates both `agent_auto_asset_certification_enabled` and `project_semantic_enable` before collecting recommendations. If it returns `PROJECT_AUTO_CERTIFICATION_DISABLED` or `PROJECT_SEMANTIC_DISABLED`, tell the user which project config is disabled and stop. Do not fall back to page submission or ordinary approval commands.
|
|
21
|
+
|
|
22
|
+
`analysis-meta governance-recommendation auto-review` only certifies eligible asset candidates from its current recommendation batch. When `--limit` is omitted, the CLI mirrors the recurring page-review bounded expansion flow by read-only probing top-20/top-50/top-100 pending material, then the CLI Agent builds one automatic decision set from the final selected material and submits it for execution/audit. It does not create recommended metrics. Assets that return `decision:"SKIP"` remain for manual review and must not be described as certified. Automatic decision rows must provide reviewer-readable reasons; semantic-duplicate skips must name concrete conflicting asset targets. Keep raw source/rule traces only in debug output, and preserve the returned `auto_review_expansion` when reporting or auditing the result. If the user later asks to submit the remaining uncertified assets to the page, use `manual_review_handoff` from the auto-review result rather than drafting a fresh all-candidate page batch.
|
|
23
|
+
|
|
14
24
|
Command:
|
|
15
25
|
|
|
16
26
|
```bash
|
|
@@ -103,6 +113,7 @@ Use this fixed review skeleton:
|
|
|
103
113
|
## Related Commands
|
|
104
114
|
|
|
105
115
|
- `analysis-meta agent-review submit-to-page` submits existing-asset proposals for review after user choice or preauthorized submission-only task intent; it does not approve or certify. Read `agent_review_submit_to_page.md` for deduplication and unattended-task rules.
|
|
116
|
+
- `analysis-meta governance-recommendation auto-review` automatically certifies only eligible recommended asset candidates when the user explicitly asks for automatic review/certification and the project switches are enabled. Without an explicit `--limit`, it performs CLI-side bounded expansion and writes only once. Read `governance_recommendation_auto_review.md`.
|
|
106
117
|
- `analysis-meta governance-recommendation submit`
|
|
107
118
|
- `analysis-meta governance-recommendation decisions`
|
|
108
119
|
- `analysis-meta asset-authentication list` only inspects certification state and is not the recommendation workflow.
|
|
@@ -2,16 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
Reuse verified assets, canonical names and business meanings in the current project. Use this workflow for missing definitions or metadata; discovery is complete when the requested measure can be constructed or a specific business choice needs the user's reply.
|
|
4
4
|
|
|
5
|
+
After a KB semantic-only or partial-coverage handoff, retain the read KB evidence
|
|
6
|
+
and live definitions already verified. Search for a suitable saved definition
|
|
7
|
+
for the uncovered requirement, then discover only missing metadata. A related
|
|
8
|
+
asset that merges actions or lacks a requested filter is not an equivalent
|
|
9
|
+
answer. When the remaining definition is verified, continue authorized ad-hoc
|
|
10
|
+
analysis under its actual scope; disclose differences from the KB-selected
|
|
11
|
+
asset. Do not ask for continuation of the same read-only request. A genuine
|
|
12
|
+
unconfirmed business mapping still follows the confirmation rule below.
|
|
13
|
+
|
|
5
14
|
## Find a reusable definition
|
|
6
15
|
|
|
7
|
-
For an unknown business measure, search relevant saved metrics and
|
|
16
|
+
For an unknown business measure, search relevant saved metrics and readable analysis assets. A named asset needs only its own family; already known definitions go directly to execution. Read the selected [metric](metric_list.md) and [asset search](asset_search.md) command references together, then issue independent searches in the same model turn:
|
|
8
17
|
|
|
9
18
|
```bash
|
|
10
19
|
ae-cli analysis-meta metric list \
|
|
11
20
|
--project-id <project_id> \
|
|
12
21
|
--queries '["<user phrase>","<related English term>"]'
|
|
13
22
|
|
|
14
|
-
ae-cli analysis
|
|
23
|
+
ae-cli analysis asset search \
|
|
15
24
|
--project-id <project_id> \
|
|
16
25
|
--queries '["<user phrase>","<related English term>"]'
|
|
17
26
|
```
|
|
@@ -20,7 +29,7 @@ Use the user's business terms and a few relevant English terms in the same `--qu
|
|
|
20
29
|
|
|
21
30
|
Read metrics from `data.metrics`. With `--queries` and no `--fields`, the response includes `metric_events` and `metric_params` as JSON strings. Inspect those returned definitions directly; use `metric get` only for missing details. Field projection cannot select these two definition fields. A verified saved metric is referenced by `metric_name` in `metrics[].event` and supplies its own aggregation and property.
|
|
22
31
|
|
|
23
|
-
Read
|
|
32
|
+
Read saved-asset summaries from `data.items`; report and dashboard search matches names and descriptions. For a suitable report candidate, pass its `asset_numeric_id` to `analysis report get --project-id <project_id> --report-id <report_id>` to read `data.model_type` and `data.definition`; reuse a definition already read.
|
|
24
33
|
|
|
25
34
|
Compare the candidate's events, aggregation, filters, groups and time semantics with the request. An applicable report goes directly to [report-data run](report_data_run.md) with the supported requested overrides. A custom combination reuses suitable definitions in an AI-facing model. Saved metric JSON describes its measure; it is not itself a complete ad-hoc definition. Discover only the pieces still missing below.
|
|
26
35
|
|
|
@@ -55,6 +64,12 @@ A new project uses its own filename. An explicit environment/account change or a
|
|
|
55
64
|
|
|
56
65
|
## Confirm and bind
|
|
57
66
|
|
|
67
|
+
Verifying canonical fields, types, or filter values for an already explicit or
|
|
68
|
+
confirmed business meaning is evidence completion, not automatically a new
|
|
69
|
+
business mapping. Reuse the established meaning and continue when metadata
|
|
70
|
+
supports it without a material choice. If verification exposes an ambiguous
|
|
71
|
+
entity, scope, or definition, the business mapping still needs confirmation.
|
|
72
|
+
|
|
58
73
|
Confirm a selected business mapping once, even if only one candidate is suitable. Present its meaning and any unresolved semantics. Reuse mappings already confirmed in this task. User confirmation selects the business definition; it does not verify an unknown asset formula. If the confirmation tool cannot obtain a reply, present the same choices in text and wait. A failed tool call is not confirmation. Rejected candidates are discarded; seek a different candidate for that choice using the relevant search above.
|
|
59
74
|
|
|
60
75
|
After the reply, fill the confirmed canonical name, aggregation, property and other required model parameters, then execute the complete definition. Use `--resolutions` only when binding unresolved wording retained at a compiler-reported path. Bindings select metadata; they do not fill model parameters. Their `raw_value` must match the wording at that path.
|
|
@@ -13,7 +13,9 @@ ae-cli analysis-meta metric export --project-id <project_id> --queries '["pay","
|
|
|
13
13
|
|
|
14
14
|
Capability id: `metadata.metric.export`.
|
|
15
15
|
|
|
16
|
-
Input: the gateway receives `project_id` plus optional `ignore_authentication`, `queries`, `fields`, and `
|
|
16
|
+
Input: the gateway receives `project_id` plus optional `ignore_authentication`, `queries`, `fields`, `authenticated_only`, and `certification_scope`; `output` is local-only.
|
|
17
|
+
|
|
18
|
+
Use `--certification-scope project|certified|all` consistently with the corresponding list command. The default `project` follows the project switch; `certified` exports only certified assets; `all` exports every accessible asset. This scope never bypasses access permissions.
|
|
17
19
|
|
|
18
20
|
Output: a successful response must prove `complete=true` and `total` equal to the row count before the CLI atomically publishes a private-mode `.json` array.
|
|
19
21
|
|
|
@@ -31,7 +31,7 @@ Output always uses the directory envelope: `data.metrics[]`, `total`, `limit`, `
|
|
|
31
31
|
| `--authenticated-only` | No | When true, return only authenticated metrics. |
|
|
32
32
|
|
|
33
33
|
## Decision Rules
|
|
34
|
-
- For an unknown business measure, use this with
|
|
34
|
+
- For an unknown business measure, use this with `analysis asset search` as the saved-definition discovery path in [`metadata_resolution.md`](metadata_resolution.md). Reuse a verified saved metric name directly.
|
|
35
35
|
- Use `--fields` when its projected fields are sufficient. When searching with `--queries`, omit `--fields` to keep `metric_events` and `metric_params` as JSON strings. Read their content in this response; these two fields are not in the projection whitelist.
|
|
36
36
|
- Use `analysis-meta metric get` only when a required definition detail is absent from the returned row.
|
|
37
37
|
- For a complete result, use `analysis-meta metric export`; do not page repeatedly to synthesize an export.
|
|
@@ -22,3 +22,13 @@ Output `data` is an async XLSX descriptor with `run_id`, `artifact_id`, status,
|
|
|
22
22
|
| --project-id | Yes | Numeric project ID. |
|
|
23
23
|
| --record-id | No | Operation record ID; required unless provided inside payload. |
|
|
24
24
|
| --payload | No | Optional JSON object merged into top-level input. Use schema-declared snake_case fields; explicit flags take precedence. `node_ids`, `searchs`, and `status` are arrays; `rule` is an object when supplied. |
|
|
25
|
+
|
|
26
|
+
## Asynchronous export
|
|
27
|
+
|
|
28
|
+
This capability starts an asynchronous artifact export. Use `--wait --output <path>` to wait and download, or keep the returned `run_id` for query status and cancellation. `--force` allows overwriting the selected local output file.
|
|
29
|
+
|
|
30
|
+
- `--artifact-format xlsx` selects the logical data format. Follow the returned descriptor for compression and content type.
|
|
31
|
+
- `--request-id cli_<32 lowercase hex>` assigns a stable request identifier.
|
|
32
|
+
- `--timeout-seconds` accepts 1–7200 (server default: 3600).
|
|
33
|
+
- `--wait-timeout-seconds` controls how long this CLI invocation waits; it does not change the server runtime limit.
|
|
34
|
+
- Explicit flags override corresponding `--payload` fields; omitted options preserve payload values.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Add one personal semantic preference for the authenticated user in one project.
|
|
4
4
|
|
|
5
|
-
Use this when the user explicitly asks to save a personal semantic preference, or when the current project task contains an explicit stable statement, correction, or confirmation that should become a reusable current-user preference. A current-user working definition remains eligible even when the same content may benefit other users. A second "save" confirmation is not required after that evidence gate is met, unless the target meaning is ambiguous.
|
|
5
|
+
Use this when the user explicitly asks to save a personal semantic preference, or when the current project task contains an explicit stable statement, correction, reusable workflow, or confirmation that should become a reusable current-user preference. When a project scope is active, requests such as "remember the above workflow", "save this process for this project", or "以后按这个流程" are project-scoped personal semantics, not global memory; store reusable workflows with `context_type=experience`. A current-user working definition remains eligible even when the same content may benefit other users. A second "save" confirmation is not required after that evidence gate is met, unless the target meaning is ambiguous.
|
|
6
6
|
|
|
7
7
|
Command:
|
|
8
8
|
|
|
@@ -10,7 +10,7 @@ Command:
|
|
|
10
10
|
ae-cli personal-semantic-preference add --project-id <project_id> --context-type <context_type> --title <title> --summary <summary> --content <content> [--keywords '["keyword"]'] [--resource-refs '[{"resource_type":"report","resource_key":"101","display_name":"Revenue daily report"}]'] [--fresh-until-at "yyyy-MM-dd HH:mm:ss"] [--request-id <id>]
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
Use `preference` for durable interpretation/output preferences, `asset_context` for durable wording or intent bound to exact assets, `experience` for confirmed reusable work methods, and `background` for stable personal context. `--resource-refs` is required and non-empty only for `asset_context`; for every other type it must be absent or empty.
|
|
13
|
+
Use `preference` for durable interpretation/output preferences, `asset_context` for durable wording or intent bound to exact assets, `experience` for confirmed reusable project work methods or analysis workflows, and `background` for stable personal context. `--resource-refs` is required and non-empty only for `asset_context`; for every other type it must be absent or empty.
|
|
14
14
|
|
|
15
15
|
`--resource-refs` accepts 1 to 50 ordered objects. Each object contains exactly `resource_type`, string `resource_key`, and `display_name`; `(resource_type, resource_key)` must be unique. `resource_type` is generic lower snake_case rather than a report-only enum, so events, properties, metrics, tags, clusters, reports, dashboards, data tables, and later asset types share the same shape. Array order is the user's intended priority.
|
|
16
16
|
|
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
Get one personal semantic preference by ID.
|
|
4
4
|
|
|
5
|
-
Use this command after `personal-semantic-preference list` identifies a likely current-user preference. Pass `--mark-used` when the preference is adopted for the answer, query path, or as the matched target for an update.
|
|
5
|
+
Use this command after `personal-semantic-preference list` identifies a likely current-user preference. Pass the returned directory title with `--title`; it is telemetry context only, and the lookup still uses `id`. Pass `--mark-used` when the preference is adopted for the answer, query path, or as the matched target for an update.
|
|
6
6
|
|
|
7
7
|
Command:
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
ae-cli personal-semantic-preference get --project-id <project_id> --id <preference_id> [--mark-used]
|
|
10
|
+
ae-cli personal-semantic-preference get --project-id <project_id> --id <preference_id> --title <title_from_list> [--mark-used]
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
Input uses `project_id`, `id`, and optional `mark_used`. `id` must be the exact `preference_<id>` value returned by list/add.
|
|
13
|
+
Input uses `project_id`, `id`, required `title`, and optional `mark_used`. `id` must be the exact `preference_<id>` value returned by list/add. `title` must be copied from the matching list item; do not invent it.
|
|
14
14
|
|
|
15
15
|
Do not use this command as a keyword search, project semantics lookup, or asset catalog lookup. Do not call it repeatedly for every catalog row. Do not use `--mark-used` for a candidate that turns out not to match the user's intent or is only inspected and then rejected.
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
Fetch and mark the personal item only when it materially affects the response. When its asset or calculation wording differs from the current saved definition, explain the difference and use the saved definition for execution unless the user explicitly requests a different calculation.
|
|
18
18
|
|
|
19
19
|
Output is the gateway envelope. `data.preference` contains the full personal preference, including content, complete ordered `resource_refs`, and revision. When `--mark-used` is set, the backend increments `heat_count` and updates `last_used_at` for that record.
|
|
@@ -16,9 +16,9 @@ Do not use this command for project semantics, shared knowledge, metadata catalo
|
|
|
16
16
|
|
|
17
17
|
Output is the gateway envelope. `data.items[]` contains only `id`, `context_type`, `title`, truncated `summary`, limited `keywords`, `resource_ref_count`, distinct `resource_types`, and `revision`; it deliberately omits content, full asset references, heat, and timestamps. `data.returned_count` is at most 200, `data.truncated` says whether entries were omitted, and `data.selection_policy` is `HOT_160_PLUS_RECENT_40`: up to 160 highest-heat items plus up to 40 recently changed items not already selected. The backend may return fewer items to keep the data payload within 64 KiB.
|
|
18
18
|
|
|
19
|
-
If one returned item is actually adopted to interpret the user's request, call `ae-cli personal-semantic-preference get --project-id <project_id> --id <preference_id> --mark-used` before using its full content. Do not mark an item used when it was only inspected or rejected.
|
|
19
|
+
If one returned item is actually adopted to interpret the user's request, call `ae-cli personal-semantic-preference get --project-id <project_id> --id <preference_id> --title <title_from_list> --mark-used` before using its full content. The `--title` value is telemetry context only; the backend lookup is still keyed by `id`. Do not mark an item used when it was only inspected or rejected.
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
Use a likely match only as the current user's working interpretation. Verify any chosen asset or calculation against its saved definition before execution. A personal preference does not replace the asset's current definition.
|
|
22
22
|
|
|
23
23
|
## Capture a durable preference
|
|
24
24
|
|
|
@@ -26,10 +26,10 @@ The Agent owns the personal preference capture trigger. Choose `context_type` by
|
|
|
26
26
|
|
|
27
27
|
- `preference`: durable interpretation or output preference without an exact asset binding.
|
|
28
28
|
- `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.
|
|
29
|
-
- `experience`: a confirmed reusable work method without an exact asset binding.
|
|
29
|
+
- `experience`: a confirmed reusable project work method or analysis workflow without an exact asset binding.
|
|
30
30
|
- `background`: stable personal context without an exact asset binding.
|
|
31
31
|
|
|
32
|
-
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.
|
|
32
|
+
Any stable choice of a concrete asset, including an event-selection scenario, must use `asset_context`; do not encode asset IDs only in prose. In an active project scope, a user request such as "remember the above workflow", "save this process for this project", or "以后按这个流程" should be captured here as `context_type=experience`, not through `ae-cli memory`. 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.
|
|
33
33
|
|
|
34
34
|
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.
|
|
35
35
|
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Review personal semantic preferences
|
|
2
|
+
|
|
3
|
+
Use `ae-cli personal-semantic-preference review` only for an explicit project review decision by an authorized reviewer. Capability: `business_semantics.personal_context.review`; risk: write. Do not use this to publish a KB or change asset certification.
|
|
4
|
+
|
|
5
|
+
An authorized project reviewer may adopt or reject an unsubmitted (`none`) preference directly; a separate submit step is optional. Pending preferences can also be reviewed.
|
|
6
|
+
|
|
7
|
+
Required flags: `--project-id`, `--ids` (JSON array of 1–100 preference IDs from review-list), `--action` (`adopt` or `reject`). Optional: `--project-review-note`, `--request-id` (reuse on retries). Validate or dry-run checks input without applying the decision.
|
|
8
|
+
|
|
9
|
+
The result contains `action`, reviewed `items`, and `reviewed_count`. Adoption makes the reviewed preference eligible for future project KB refresh; it does not confirm a successful KB compile or publication. Reload after a review-state conflict before deciding again.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# List personal semantic preferences for project review
|
|
2
|
+
|
|
3
|
+
Use `ae-cli personal-semantic-preference review-list` for the authorized project review queue. Capability: `business_semantics.personal_context.review_list`; risk: read. Do not use this instead of the user's personal preference list.
|
|
4
|
+
|
|
5
|
+
Required flag: `--project-id`. Optional filters: `--project-review-status` (`none`, `pending`, `adopted`, `rejected`), `--owner` (user name, login name, or user ID; open_id is not accepted), `--context-type` (`preference`, `asset_context`, `experience`, `background`), `--keyword`, `--limit`, and `--offset`.
|
|
6
|
+
|
|
7
|
+
The result includes `items`, `total`, `limit`, `offset`, `has_more`, and `next_offset`. Use the returned identifiers for an explicit adopt/reject decision; listing does not change review status or refresh a KB. Project reviewer permissions are required.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Submit a personal semantic preference for project review
|
|
2
|
+
|
|
3
|
+
Use `ae-cli personal-semantic-preference submit` only when the user wants an existing personal preference reviewed for project use. Capability: `business_semantics.personal_context.submit`; risk: write. Do not use this to certify an asset or publish a KB.
|
|
4
|
+
|
|
5
|
+
Required flags: `--project-id`, `--id` (the existing preference identifier). Optional: `--project-review-note`, `--request-id` (reuse on retries). Use `--validate` or `--dry-run` to check the input without submitting.
|
|
6
|
+
|
|
7
|
+
The result includes `submitted` and the refreshed `preference`. Submission changes eligible NONE/REJECTED records to PENDING; an already submitted record does not imply a new submission. Review and KB compilation are separate steps.
|