@wubaoqi/guancopilot 0.0.0-stage → 0.2.0

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 (239) hide show
  1. package/NOTICE.md +17 -0
  2. package/README.md +146 -2
  3. package/assets/coreutils.wasm +0 -0
  4. package/assets/find.wasm +0 -0
  5. package/assets/guanbi.wasm +4 -0
  6. package/assets/guancli.wasm +0 -0
  7. package/assets/guanhelm.wasm +0 -0
  8. package/assets/jq.wasm +0 -0
  9. package/assets/openskills.wasm +0 -0
  10. package/assets/rg.wasm +0 -0
  11. package/assets/sed.wasm +0 -0
  12. package/bin/guancopilot +0 -0
  13. package/bin/guanvm +0 -0
  14. package/bin/platforms.cjs +6 -0
  15. package/bin/run.cjs +39 -0
  16. package/bin/runtime.cjs +44 -0
  17. package/licenses/Go-LICENSE +27 -0
  18. package/licenses/browser-_speed-highlight_core-LICENSE +121 -0
  19. package/licenses/browser-_speed-highlight_core-package.json +14 -0
  20. package/licenses/browser-dompurify-LICENSE +202 -0
  21. package/licenses/browser-dompurify-LICENSE-MPL +373 -0
  22. package/licenses/browser-dompurify-package.json +10 -0
  23. package/licenses/browser-marked-LICENSE +44 -0
  24. package/licenses/browser-marked-package.json +10 -0
  25. package/licenses/coreutils-LICENSE +18 -0
  26. package/licenses/findutils-LICENSE +18 -0
  27. package/licenses/github.com_BurntSushi_toml_v1.6.0-COPYING +21 -0
  28. package/licenses/github.com_dustin_go-humanize_v1.0.1-LICENSE +21 -0
  29. package/licenses/github.com_google_jsonschema-go_v0.4.3-LICENSE +21 -0
  30. package/licenses/github.com_google_uuid_v1.6.0-LICENSE +27 -0
  31. package/licenses/github.com_jackc_pgpassfile_v1.0.0-LICENSE +22 -0
  32. package/licenses/github.com_jackc_pgservicefile_v0.0.0-20240606120523-5a60cdf6a761-LICENSE +22 -0
  33. package/licenses/github.com_jackc_pgx_v5_v5.11.0-LICENSE +22 -0
  34. package/licenses/github.com_jackc_puddle_v2_v2.2.2-LICENSE +22 -0
  35. package/licenses/github.com_mattn_go-isatty_v0.0.20-LICENSE +9 -0
  36. package/licenses/github.com_modelcontextprotocol_go-sdk_v1.8.0-LICENSE +216 -0
  37. package/licenses/github.com_ncruces_go-strftime_v1.0.0-LICENSE +21 -0
  38. package/licenses/github.com_remyoudompheng_bigfft_v0.0.0-20230129092748-24d4a6f8daec-LICENSE +27 -0
  39. package/licenses/github.com_santhosh-tekuri_jsonschema_v6_v6.0.3-LICENSE +175 -0
  40. package/licenses/github.com_segmentio_asm_v1.1.3-LICENSE +21 -0
  41. package/licenses/github.com_segmentio_encoding_v0.5.4-LICENSE +21 -0
  42. package/licenses/github.com_tetratelabs_wazero_v1.12.0-LICENSE +201 -0
  43. package/licenses/github.com_tetratelabs_wazero_v1.12.0-NOTICE +2 -0
  44. package/licenses/github.com_yosida95_uritemplate_v3_v3.0.2-LICENSE +25 -0
  45. package/licenses/golang.org_x_image_v0.44.0-LICENSE +27 -0
  46. package/licenses/golang.org_x_net_v0.58.0-LICENSE +27 -0
  47. package/licenses/golang.org_x_oauth2_v0.36.0-LICENSE +27 -0
  48. package/licenses/golang.org_x_sync_v0.22.0-LICENSE +27 -0
  49. package/licenses/golang.org_x_sys_v0.47.0-LICENSE +27 -0
  50. package/licenses/golang.org_x_text_v0.41.0-LICENSE +27 -0
  51. package/licenses/golang.org_x_time_v0.15.0-LICENSE +27 -0
  52. package/licenses/guanbi-skills-LICENSE +133 -0
  53. package/licenses/guanbi-skills-LICENSE.README.md +28 -0
  54. package/licenses/guanbi-skills-LICENSE.zh-CN +82 -0
  55. package/licenses/jq-COPYING +176 -0
  56. package/licenses/modernc.org_libc_v1.73.4-LICENSE +27 -0
  57. package/licenses/modernc.org_libc_v1.73.4-LICENSE-3RD-PARTY.md +305 -0
  58. package/licenses/modernc.org_mathutil_v1.7.1-LICENSE +27 -0
  59. package/licenses/modernc.org_memory_v1.11.0-LICENSE +27 -0
  60. package/licenses/modernc.org_memory_v1.11.0-LICENSE-GO +27 -0
  61. package/licenses/modernc.org_memory_v1.11.0-LICENSE-LOGO +1 -0
  62. package/licenses/modernc.org_memory_v1.11.0-LICENSE-MMAP-GO +25 -0
  63. package/licenses/modernc.org_sqlite_v1.53.0-LICENSE +26 -0
  64. package/licenses/mvdan.cc_sh_v3_v3.13.1-LICENSE +27 -0
  65. package/licenses/ripgrep-COPYING +3 -0
  66. package/licenses/ripgrep-LICENSE-MIT +21 -0
  67. package/licenses/sed-LICENSE +21 -0
  68. package/manifest.json +972 -0
  69. package/package.json +30 -4
  70. package/plugin/guancopilot.js +193 -0
  71. package/skills-bundle/.guanvm-skills-bundle +0 -0
  72. package/skills-bundle/_recipes/dashboard/gates/page_check.js +16 -0
  73. package/skills-bundle/_recipes/dashboard/gates/report_check.js +4 -0
  74. package/skills-bundle/_recipes/dashboard/knowledge/01.md +1 -0
  75. package/skills-bundle/_recipes/dashboard/knowledge/02.md +1 -0
  76. package/skills-bundle/_recipes/dashboard/knowledge/03.md +1 -0
  77. package/skills-bundle/_recipes/dashboard/knowledge/04.md +1 -0
  78. package/skills-bundle/_recipes/dashboard/knowledge/05.md +1 -0
  79. package/skills-bundle/_recipes/dashboard/knowledge/06.md +1 -0
  80. package/skills-bundle/_recipes/dashboard/template.json +41 -0
  81. package/skills-bundle/_recipes/etl/gates/etl_live_check.js +10 -0
  82. package/skills-bundle/_recipes/etl/gates/etl_report_check.js +3 -0
  83. package/skills-bundle/_recipes/etl/knowledge/01.md +1 -0
  84. package/skills-bundle/_recipes/etl/knowledge/02.md +9 -0
  85. package/skills-bundle/_recipes/etl/knowledge/03.md +1 -0
  86. package/skills-bundle/_recipes/etl/knowledge/04.md +1 -0
  87. package/skills-bundle/_recipes/etl/knowledge/05.md +1 -0
  88. package/skills-bundle/_recipes/etl/template.json +39 -0
  89. package/skills-bundle/_recipes/hints.json +46 -0
  90. package/skills-bundle/guancli/.commandface.json +155 -0
  91. package/skills-bundle/guancli/SKILL.md +342 -0
  92. package/skills-bundle/guancli/evals/evals.json +156 -0
  93. package/skills-bundle/guancli/evals/fixtures/metric-candidate-empty-search.json +13 -0
  94. package/skills-bundle/guancli/evals/fixtures/metric-candidate-prior-request.json +13 -0
  95. package/skills-bundle/guancli/evals/fixtures/metric-consumption-columns.json +46 -0
  96. package/skills-bundle/guancli/evals/fixtures/metric-consumption-metadata.json +36 -0
  97. package/skills-bundle/guancli/evals/fixtures/metric-consumption-query.json +18 -0
  98. package/skills-bundle/guancli/references/analysis-primitives.md +95 -0
  99. package/skills-bundle/guancli/references/auth-and-config.md +131 -0
  100. package/skills-bundle/guancli/references/examples/metric-date-in.json +7 -0
  101. package/skills-bundle/guancli/references/examples/metric-query-rows.py +83 -0
  102. package/skills-bundle/guancli/references/examples/metric-query.sh +6 -0
  103. package/skills-bundle/guancli/references/form-chatbi.md +199 -0
  104. package/skills-bundle/guancli/references/gateway.md +148 -0
  105. package/skills-bundle/guancli/references/metric-batch-query.md +82 -0
  106. package/skills-bundle/guancli/references/metric-commands.md +562 -0
  107. package/skills-bundle/guancli/references/metric-generic-query.md +215 -0
  108. package/skills-bundle/guancli/references/metric-json-migration.md +18 -0
  109. package/skills-bundle/guancli/references/metric-query-recipes.md +358 -0
  110. package/skills-bundle/guancli/references/preview-and-output.md +192 -0
  111. package/skills-bundle/guancli/references/resource-query.md +101 -0
  112. package/skills-bundle/guands/SKILL.md +281 -0
  113. package/skills-bundle/guands/references/calc-fields-boundaries-and-pitfalls.md +160 -0
  114. package/skills-bundle/guands/references/command-reference.md +267 -0
  115. package/skills-bundle/guands/references/incremental-and-schedule.md +157 -0
  116. package/skills-bundle/guands/references/workflows.md +256 -0
  117. package/skills-bundle/guanetl/SKILL.md +391 -0
  118. package/skills-bundle/guanetl/evals/evals.json +41 -0
  119. package/skills-bundle/guanetl/references/ETL_AI_DEVELOP.md +456 -0
  120. package/skills-bundle/guanmetric/SKILL.md +144 -0
  121. package/skills-bundle/guanmetric/evals/evals.json +117 -0
  122. package/skills-bundle/guanmetric/evals/fixtures/atomic-detail-read-model.json +18 -0
  123. package/skills-bundle/guanmetric/evals/fixtures/confirmed-template-summary.json +12 -0
  124. package/skills-bundle/guanmetric/evals/fixtures/create-result-unknown-state.json +13 -0
  125. package/skills-bundle/guanmetric/evals/forward-eval-2026-09-21.json +62 -0
  126. package/skills-bundle/guanmetric/references/metric-api-contract-examples.json +690 -0
  127. package/skills-bundle/guanmetric/references/metric-api-contract.schema.json +349 -0
  128. package/skills-bundle/guanmetric/references/metric-api-contracts.md +436 -0
  129. package/skills-bundle/guanmetric/references/metric-atomic-mutation.md +238 -0
  130. package/skills-bundle/guanmetric/references/metric-batch-status.md +71 -0
  131. package/skills-bundle/guanmetric/references/metric-business-dictionary-api-contract-examples.json +53 -0
  132. package/skills-bundle/guanmetric/references/metric-business-dictionary-api-contract.schema.json +26 -0
  133. package/skills-bundle/guanmetric/references/metric-business-dictionary.md +76 -0
  134. package/skills-bundle/guanmetric/references/metric-common-fields.md +246 -0
  135. package/skills-bundle/guanmetric/references/metric-composite-mutation.md +165 -0
  136. package/skills-bundle/guanmetric/references/metric-delete-mutation.md +70 -0
  137. package/skills-bundle/guanmetric/references/metric-derived-mutation.md +453 -0
  138. package/skills-bundle/guanmetric/references/metric-excel-template.md +365 -0
  139. package/skills-bundle/guanmetric/references/metric-expression-rules.md +146 -0
  140. package/skills-bundle/guanmetric/references/metric-flow-generate-example.json +79 -0
  141. package/skills-bundle/guanmetric/references/metric-flow-generate.schema.json +93 -0
  142. package/skills-bundle/guanmetric/references/metric-flow.md +218 -0
  143. package/skills-bundle/guanmetric/references/metric-hierarchy-api-contract-examples.json +171 -0
  144. package/skills-bundle/guanmetric/references/metric-hierarchy-api-contract.schema.json +167 -0
  145. package/skills-bundle/guanmetric/references/metric-hierarchy-api-contracts.md +193 -0
  146. package/skills-bundle/guanmetric/references/metric-mutation.md +155 -0
  147. package/skills-bundle/guanmetric/references/metric-public-dimension-api-contract-examples.json +62 -0
  148. package/skills-bundle/guanmetric/references/metric-public-dimension-api-contract.schema.json +47 -0
  149. package/skills-bundle/guanmetric/references/metric-public-dimension.md +155 -0
  150. package/skills-bundle/guanmetric/references/metric-tree-api-contract-examples.json +277 -0
  151. package/skills-bundle/guanmetric/references/metric-tree-api-contract.schema.json +263 -0
  152. package/skills-bundle/guanmetric/references/metric-tree-api-contracts.md +53 -0
  153. package/skills-bundle/guanmetric/references/metric-tree-mutation.md +500 -0
  154. package/skills-bundle/guanmetric/references/metric-validation-ownership.md +74 -0
  155. package/skills-bundle/guanvis/SKILL.md +333 -0
  156. package/skills-bundle/guanvis/evals/china_map/card_01_basic_map.js +13 -0
  157. package/skills-bundle/guanvis/evals/china_map/card_02_world_map.js +10 -0
  158. package/skills-bundle/guanvis/evals/china_map/card_03_point_map.js +12 -0
  159. package/skills-bundle/guanvis/evals/china_map/page.js +10 -0
  160. package/skills-bundle/guanvis/evals/china_map/schema.js +10 -0
  161. package/skills-bundle/guanvis/evals/comparative_mvp_roundtrip/README.md +30 -0
  162. package/skills-bundle/guanvis/evals/comparative_mvp_roundtrip/card_01_comparative_mvp.js +72 -0
  163. package/skills-bundle/guanvis/evals/comparative_mvp_roundtrip/page.js +6 -0
  164. package/skills-bundle/guanvis/evals/comparative_mvp_roundtrip/schema.js +22 -0
  165. package/skills-bundle/guanvis/evals/comparative_mvp_roundtrip/verify_default_roundtrip.sh +92 -0
  166. package/skills-bundle/guanvis/evals/complex_report_pro/card_01_monthly.js +63 -0
  167. package/skills-bundle/guanvis/evals/complex_report_pro/page.js +6 -0
  168. package/skills-bundle/guanvis/evals/complex_report_pro/schema.js +6 -0
  169. package/skills-bundle/guanvis/evals/custom_chart_echarts/card_01_bar.js +13 -0
  170. package/skills-bundle/guanvis/evals/custom_chart_echarts/card_02_pie.js +13 -0
  171. package/skills-bundle/guanvis/evals/custom_chart_echarts/charts/bar.js +11 -0
  172. package/skills-bundle/guanvis/evals/custom_chart_echarts/charts/pie.js +15 -0
  173. package/skills-bundle/guanvis/evals/custom_chart_echarts/page.js +5 -0
  174. package/skills-bundle/guanvis/evals/custom_chart_echarts/schema.js +9 -0
  175. package/skills-bundle/guanvis/evals/custom_chart_sdk/card_01_level_nodes.js +19 -0
  176. package/skills-bundle/guanvis/evals/custom_chart_sdk/charts/level_nodes.css +51 -0
  177. package/skills-bundle/guanvis/evals/custom_chart_sdk/charts/level_nodes.html +1 -0
  178. package/skills-bundle/guanvis/evals/custom_chart_sdk/charts/level_nodes.js +28 -0
  179. package/skills-bundle/guanvis/evals/custom_chart_sdk/page.js +5 -0
  180. package/skills-bundle/guanvis/evals/custom_chart_sdk/schema.js +7 -0
  181. package/skills-bundle/guanvis/evals/dynamic_fields/card_01_dynamic_dataset.js +20 -0
  182. package/skills-bundle/guanvis/evals/dynamic_fields/card_02_dynamic_metric_chart.js +16 -0
  183. package/skills-bundle/guanvis/evals/dynamic_fields/metrics.js +19 -0
  184. package/skills-bundle/guanvis/evals/dynamic_fields/page.js +9 -0
  185. package/skills-bundle/guanvis/evals/dynamic_fields/schema.js +7 -0
  186. package/skills-bundle/guanvis/evals/dynamic_fields/verify_default_roundtrip.sh +137 -0
  187. package/skills-bundle/guanvis/evals/percentage_advcalc_roundtrip/README.md +26 -0
  188. package/skills-bundle/guanvis/evals/percentage_advcalc_roundtrip/card_01_percentage_advcalc.js +44 -0
  189. package/skills-bundle/guanvis/evals/percentage_advcalc_roundtrip/card_02_scroll_percentage.js +12 -0
  190. package/skills-bundle/guanvis/evals/percentage_advcalc_roundtrip/page.js +6 -0
  191. package/skills-bundle/guanvis/evals/percentage_advcalc_roundtrip/schema.js +22 -0
  192. package/skills-bundle/guanvis/evals/rank_advcalc_roundtrip/README.md +28 -0
  193. package/skills-bundle/guanvis/evals/rank_advcalc_roundtrip/card_01_rank_advcalc.js +59 -0
  194. package/skills-bundle/guanvis/evals/rank_advcalc_roundtrip/page.js +6 -0
  195. package/skills-bundle/guanvis/evals/rank_advcalc_roundtrip/schema.js +22 -0
  196. package/skills-bundle/guanvis/evals/rank_advcalc_roundtrip/verify_default_roundtrip.sh +135 -0
  197. package/skills-bundle/guanvis/evals/running_total_advcalc_roundtrip/README.md +15 -0
  198. package/skills-bundle/guanvis/evals/running_total_advcalc_roundtrip/card_01_running_total_advcalc.js +74 -0
  199. package/skills-bundle/guanvis/evals/running_total_advcalc_roundtrip/page.js +6 -0
  200. package/skills-bundle/guanvis/evals/running_total_advcalc_roundtrip/schema.js +22 -0
  201. package/skills-bundle/guanvis/evals/sales_dashboard/card_01_revenue_column.js +10 -0
  202. package/skills-bundle/guanvis/evals/sales_dashboard/card_02_trend_line.js +9 -0
  203. package/skills-bundle/guanvis/evals/sales_dashboard/card_03_kpi.js +6 -0
  204. package/skills-bundle/guanvis/evals/sales_dashboard/card_04_pie.js +9 -0
  205. package/skills-bundle/guanvis/evals/sales_dashboard/card_05_calc_field_test.js +12 -0
  206. package/skills-bundle/guanvis/evals/sales_dashboard/page.js +11 -0
  207. package/skills-bundle/guanvis/evals/sales_dashboard/schema.js +14 -0
  208. package/skills-bundle/guanvis/evals/sales_dashboard/selector_01_region.js +10 -0
  209. package/skills-bundle/guanvis/evals/split_charts/card_01_column_split.js +10 -0
  210. package/skills-bundle/guanvis/evals/split_charts/card_02_line_split.js +10 -0
  211. package/skills-bundle/guanvis/evals/split_charts/card_03_combo_split.js +11 -0
  212. package/skills-bundle/guanvis/evals/split_charts/page.js +10 -0
  213. package/skills-bundle/guanvis/evals/split_charts/schema.js +14 -0
  214. package/skills-bundle/guanvis/evals/tab_layout/card_00_total_revenue.js +6 -0
  215. package/skills-bundle/guanvis/evals/tab_layout/card_01_revenue.js +10 -0
  216. package/skills-bundle/guanvis/evals/tab_layout/card_02_trend.js +9 -0
  217. package/skills-bundle/guanvis/evals/tab_layout/card_03_story.js +11 -0
  218. package/skills-bundle/guanvis/evals/tab_layout/page.js +23 -0
  219. package/skills-bundle/guanvis/evals/tab_layout/schema.js +11 -0
  220. package/skills-bundle/guanvis/evals/tab_layout/selector_01_region.js +8 -0
  221. package/skills-bundle/guanvis/references/api-reference.md +476 -0
  222. package/skills-bundle/guanvis/references/builder-reference.md +1676 -0
  223. package/skills-bundle/guanvis/references/chart-properties.md +2101 -0
  224. package/skills-bundle/guanvis/references/checkout-editing.md +53 -0
  225. package/skills-bundle/guanvis/references/complex-report-pro-patterns.md +398 -0
  226. package/skills-bundle/guanvis/references/dir-and-page-management.md +48 -0
  227. package/skills-bundle/guanvis/references/metric-chart-reference.md +258 -0
  228. package/skills-bundle/guanvis/references/publish-and-constraints.md +60 -0
  229. package/skills-bundle/guanvis/references/selector-reference.md +431 -0
  230. package/skills-bundle/guanvis/references/tableau-migration.md +73 -0
  231. package/skills-bundle/guanvis/references/theme.md +123 -0
  232. package/skills-bundle/guanvis/references/troubleshooting.md +25 -0
  233. package/skills-bundle/guanvis/references/validation-and-chart-patterns.md +205 -0
  234. package/skills-bundle/guanwf/SKILL.md +543 -0
  235. package/skills-bundle/guanwf/references/ETL_AI_DEVELOP.md +456 -0
  236. package/skills-bundle/guanwf/references/TASK_NODE_CONTRACTS.md +64 -0
  237. package/skills-bundle/guanwf/references/WORKFLOW_DSL.md +536 -0
  238. package/skills-bundle/guanwf/references/WORKFLOW_NODES.md +166 -0
  239. package/skills-bundle/js/SKILL.md +145 -0
@@ -0,0 +1,349 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://guandata.dev/schemas/guanmetric/metric-api-contract-1.0.json",
4
+ "title": "GuanData metric create, update, detail and list API contract",
5
+ "description": "用于 Agent 构造指标写请求、解析后端原始响应的宽松契约。后端可能增加字段,因此响应对象允许 additionalProperties。",
6
+ "oneOf": [
7
+ { "$ref": "#/$defs/createRequest" },
8
+ { "$ref": "#/$defs/updateRequest" },
9
+ { "$ref": "#/$defs/listRequest" },
10
+ { "$ref": "#/$defs/mutationSuccessResponse" },
11
+ { "$ref": "#/$defs/listResponse" },
12
+ { "$ref": "#/$defs/detailResponse" }
13
+ ],
14
+ "$defs": {
15
+ "nonEmptyString": {
16
+ "type": "string",
17
+ "minLength": 1
18
+ },
19
+ "user": {
20
+ "type": "object",
21
+ "required": ["uId", "name"],
22
+ "properties": {
23
+ "uId": { "$ref": "#/$defs/nonEmptyString" },
24
+ "name": { "type": "string" },
25
+ "email": { "type": "string" },
26
+ "avatar": { "type": "string" },
27
+ "isDel": { "type": "boolean" }
28
+ },
29
+ "additionalProperties": true
30
+ },
31
+ "field": {
32
+ "type": "object",
33
+ "required": ["fdId"],
34
+ "properties": {
35
+ "dsId": { "type": "string" },
36
+ "fdId": { "$ref": "#/$defs/nonEmptyString" },
37
+ "name": { "type": "string" },
38
+ "fdType": { "type": "string" },
39
+ "metaType": { "type": "string" },
40
+ "granularity": { "type": "string" },
41
+ "subs": { "type": "array", "items": { "$ref": "#/$defs/field" } },
42
+ "publicDimensions": { "type": "array" }
43
+ },
44
+ "additionalProperties": true
45
+ },
46
+ "metricReference": {
47
+ "type": "object",
48
+ "required": ["id", "name", "subType", "status"],
49
+ "properties": {
50
+ "id": { "$ref": "#/$defs/nonEmptyString" },
51
+ "name": { "type": "string" },
52
+ "subType": { "enum": ["ATOMIC", "COMPOSITE", "DERIVED", "SHORTCUT"] },
53
+ "status": { "type": "string" },
54
+ "desc": { "type": "string" },
55
+ "timeDim": { "oneOf": [{ "$ref": "#/$defs/field" }, { "type": "null" }] }
56
+ },
57
+ "additionalProperties": true
58
+ },
59
+ "commonCreateFields": {
60
+ "type": "object",
61
+ "required": ["projectId", "subType", "name", "desc", "parentDirId", "businessOwner", "publish"],
62
+ "properties": {
63
+ "projectId": { "$ref": "#/$defs/nonEmptyString" },
64
+ "subType": { "enum": ["ATOMIC", "COMPOSITE", "DERIVED"] },
65
+ "name": { "$ref": "#/$defs/nonEmptyString" },
66
+ "engName": { "type": "string" },
67
+ "desc": { "$ref": "#/$defs/nonEmptyString" },
68
+ "parentDirId": { "$ref": "#/$defs/nonEmptyString" },
69
+ "businessOwner": { "$ref": "#/$defs/nonEmptyString" },
70
+ "publish": { "type": "boolean" },
71
+ "format": { "type": "object" },
72
+ "filter": { "type": ["object", "null"] },
73
+ "bizAttrs": { "type": "array" },
74
+ "dynamicParameters": { "type": "array" },
75
+ "bizMetricId": { "type": "string" }
76
+ }
77
+ },
78
+ "commonUpdateFields": {
79
+ "type": "object",
80
+ "required": ["projectId", "subType", "name", "desc", "publish"],
81
+ "properties": {
82
+ "projectId": { "$ref": "#/$defs/nonEmptyString" },
83
+ "subType": { "enum": ["ATOMIC", "COMPOSITE", "DERIVED"] },
84
+ "name": { "$ref": "#/$defs/nonEmptyString" },
85
+ "engName": { "type": "string" },
86
+ "desc": { "$ref": "#/$defs/nonEmptyString" },
87
+ "publish": { "type": "boolean" },
88
+ "format": { "type": "object" },
89
+ "filter": { "type": ["object", "null"] },
90
+ "bizAttrs": { "type": "array" },
91
+ "dynamicParameters": { "type": "array" },
92
+ "bizMetricId": { "type": "string" }
93
+ }
94
+ },
95
+ "atomicSource": {
96
+ "oneOf": [
97
+ {
98
+ "type": "object",
99
+ "required": ["fdId", "aggrType"],
100
+ "properties": {
101
+ "fdId": { "$ref": "#/$defs/nonEmptyString" },
102
+ "aggrType": { "enum": ["SUM", "MIN", "MAX", "AVG", "CNT", "CNT_DISTINCT", "NUL"] }
103
+ },
104
+ "not": { "required": ["formulaField"] }
105
+ },
106
+ {
107
+ "type": "object",
108
+ "required": ["formulaField"],
109
+ "properties": {
110
+ "formulaField": {
111
+ "type": "object",
112
+ "required": ["fdFormula"],
113
+ "properties": { "fdFormula": { "$ref": "#/$defs/nonEmptyString" } },
114
+ "additionalProperties": false
115
+ }
116
+ },
117
+ "not": { "anyOf": [{ "required": ["fdId"] }, { "required": ["aggrType"] }] }
118
+ }
119
+ ]
120
+ },
121
+ "atomicCreateRequest": {
122
+ "allOf": [
123
+ { "$ref": "#/$defs/commonCreateFields" },
124
+ { "$ref": "#/$defs/atomicSource" },
125
+ {
126
+ "type": "object",
127
+ "required": ["dsId", "applicableDims"],
128
+ "properties": {
129
+ "subType": { "const": "ATOMIC" },
130
+ "dsId": { "$ref": "#/$defs/nonEmptyString" },
131
+ "applicableDims": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/nonEmptyString" } },
132
+ "timeDim": { "type": "string" },
133
+ "sourceMetricId": { "type": "string" }
134
+ }
135
+ }
136
+ ],
137
+ "unevaluatedProperties": true
138
+ },
139
+ "atomicUpdateRequest": {
140
+ "allOf": [
141
+ { "$ref": "#/$defs/commonUpdateFields" },
142
+ { "$ref": "#/$defs/atomicSource" },
143
+ {
144
+ "type": "object",
145
+ "required": ["dsId", "applicableDims"],
146
+ "properties": {
147
+ "subType": { "const": "ATOMIC" },
148
+ "dsId": { "$ref": "#/$defs/nonEmptyString" },
149
+ "applicableDims": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/nonEmptyString" } },
150
+ "timeDim": { "type": "string" },
151
+ "sourceMetricId": { "type": "string" }
152
+ }
153
+ }
154
+ ],
155
+ "unevaluatedProperties": true
156
+ },
157
+ "compositeBody": {
158
+ "type": "object",
159
+ "required": ["formula", "useExpressionMetricCommonDims", "applicableDims"],
160
+ "properties": {
161
+ "subType": { "const": "COMPOSITE" },
162
+ "formula": { "$ref": "#/$defs/nonEmptyString" },
163
+ "useExpressionMetricCommonDims": { "type": "boolean" },
164
+ "applicableDims": { "type": "array", "items": { "$ref": "#/$defs/nonEmptyString" } },
165
+ "timeDim": { "type": "string" }
166
+ }
167
+ },
168
+ "derivedBody": {
169
+ "type": "object",
170
+ "required": ["deriveSetting"],
171
+ "properties": {
172
+ "subType": { "const": "DERIVED" },
173
+ "baseMetricId": { "type": "string" },
174
+ "deriveSetting": { "$ref": "#/$defs/deriveSetting" }
175
+ }
176
+ },
177
+ "deriveSetting": {
178
+ "oneOf": [
179
+ {
180
+ "type": "object",
181
+ "required": ["deriveType", "advType", "advValue"],
182
+ "properties": {
183
+ "deriveType": { "const": "ORDINARY" },
184
+ "advType": { "enum": ["COMPARATIVE", "RECENT_X", "XTD", "LAST", "BIZ_CONDITION"] },
185
+ "advValue": {
186
+ "type": "object",
187
+ "required": ["advType"],
188
+ "properties": {
189
+ "advType": { "enum": ["COMPARATIVE", "RECENT_X", "XTD", "LAST", "BIZ_CONDITION"] }
190
+ },
191
+ "additionalProperties": true
192
+ }
193
+ },
194
+ "additionalProperties": true
195
+ },
196
+ {
197
+ "type": "object",
198
+ "required": ["deriveType", "formula"],
199
+ "properties": {
200
+ "deriveType": { "const": "COMPOSITE" },
201
+ "formula": { "$ref": "#/$defs/nonEmptyString" }
202
+ },
203
+ "additionalProperties": true
204
+ }
205
+ ]
206
+ },
207
+ "createRequest": {
208
+ "oneOf": [
209
+ { "$ref": "#/$defs/atomicCreateRequest" },
210
+ {
211
+ "allOf": [{ "$ref": "#/$defs/commonCreateFields" }, { "$ref": "#/$defs/compositeBody" }],
212
+ "unevaluatedProperties": true
213
+ },
214
+ {
215
+ "allOf": [{ "$ref": "#/$defs/commonCreateFields" }, { "$ref": "#/$defs/derivedBody" }],
216
+ "unevaluatedProperties": true
217
+ }
218
+ ]
219
+ },
220
+ "updateRequest": {
221
+ "oneOf": [
222
+ { "$ref": "#/$defs/atomicUpdateRequest" },
223
+ {
224
+ "allOf": [{ "$ref": "#/$defs/commonUpdateFields" }, { "$ref": "#/$defs/compositeBody" }],
225
+ "unevaluatedProperties": true
226
+ },
227
+ {
228
+ "allOf": [{ "$ref": "#/$defs/commonUpdateFields" }, { "$ref": "#/$defs/derivedBody" }],
229
+ "unevaluatedProperties": true
230
+ }
231
+ ]
232
+ },
233
+ "listRequest": {
234
+ "type": "object",
235
+ "properties": {
236
+ "projectId": { "type": "string" },
237
+ "dirId": { "type": "string" },
238
+ "status": { "type": "string" },
239
+ "nameLike": { "type": "string" },
240
+ "subTypes": { "type": "string", "description": "逗号分隔,不是 JSON 数组" },
241
+ "orderBy": { "type": "string" },
242
+ "creator": { "type": "array", "items": { "type": "string" } },
243
+ "businessOwner": { "type": "array", "items": { "type": "string" } },
244
+ "bizAttrSearch": { "type": "array" },
245
+ "desc": { "type": "string" },
246
+ "favorite": { "type": "boolean" },
247
+ "canUse": { "type": "boolean" },
248
+ "isMarket": { "type": "boolean" },
249
+ "offset": { "type": "integer", "minimum": 0 },
250
+ "limit": { "type": "integer", "minimum": 1, "maximum": 100 }
251
+ },
252
+ "additionalProperties": false
253
+ },
254
+ "mutationSuccessResponse": {
255
+ "type": "object",
256
+ "required": ["result", "response"],
257
+ "properties": {
258
+ "result": { "const": "ok" },
259
+ "response": {
260
+ "type": "object",
261
+ "required": ["id"],
262
+ "properties": { "id": { "$ref": "#/$defs/nonEmptyString" } },
263
+ "additionalProperties": true
264
+ }
265
+ },
266
+ "additionalProperties": true
267
+ },
268
+ "metricSummary": {
269
+ "type": "object",
270
+ "required": ["id", "projectId", "status", "subType", "name", "dirId", "canManage", "canUse"],
271
+ "properties": {
272
+ "id": { "$ref": "#/$defs/nonEmptyString" },
273
+ "projectId": { "$ref": "#/$defs/nonEmptyString" },
274
+ "status": { "type": "string" },
275
+ "subType": { "enum": ["ATOMIC", "COMPOSITE", "DERIVED", "SHORTCUT"] },
276
+ "name": { "type": "string" },
277
+ "desc": { "type": "string" },
278
+ "dirId": { "$ref": "#/$defs/nonEmptyString" },
279
+ "businessOwner": { "$ref": "#/$defs/user" },
280
+ "creator": { "$ref": "#/$defs/user" },
281
+ "canManage": { "type": "boolean" },
282
+ "canUse": { "type": "boolean" },
283
+ "timeDim": { "oneOf": [{ "$ref": "#/$defs/field" }, { "type": "null" }] },
284
+ "hasDraft": { "type": ["boolean", "null"] },
285
+ "favorite": { "type": "boolean" },
286
+ "approvalStatus": { "type": ["string", "null"] }
287
+ },
288
+ "additionalProperties": true
289
+ },
290
+ "listResponse": {
291
+ "type": "object",
292
+ "required": ["result", "response"],
293
+ "properties": {
294
+ "result": { "const": "ok" },
295
+ "response": {
296
+ "type": "object",
297
+ "required": ["contents", "count"],
298
+ "properties": {
299
+ "contents": { "type": "array", "items": { "$ref": "#/$defs/metricSummary" } },
300
+ "count": { "type": "integer", "minimum": 0 },
301
+ "limit": { "type": "integer" },
302
+ "returnedCount": { "type": "integer" },
303
+ "dirPath": { "type": "array" }
304
+ },
305
+ "additionalProperties": true
306
+ }
307
+ },
308
+ "additionalProperties": true
309
+ },
310
+ "metricDetail": {
311
+ "type": "object",
312
+ "required": ["id", "projectId", "parentDirId", "subType", "status", "name"],
313
+ "properties": {
314
+ "id": { "$ref": "#/$defs/nonEmptyString" },
315
+ "projectId": { "$ref": "#/$defs/nonEmptyString" },
316
+ "parentDirId": { "$ref": "#/$defs/nonEmptyString" },
317
+ "subType": { "enum": ["ATOMIC", "COMPOSITE", "DERIVED", "SHORTCUT"] },
318
+ "uniformResourceType": { "type": "string" },
319
+ "status": { "type": "string" },
320
+ "name": { "type": "string" },
321
+ "desc": { "type": "string" },
322
+ "dsInfo": { "type": "object" },
323
+ "fdInfos": { "type": "array", "items": { "$ref": "#/$defs/field" } },
324
+ "aggrType": { "type": ["string", "null"] },
325
+ "formulaField": { "type": ["object", "null"] },
326
+ "formula": { "type": "string" },
327
+ "deriveSetting": { "$ref": "#/$defs/deriveSetting" },
328
+ "baseMetric": { "$ref": "#/$defs/metricReference" },
329
+ "referencedMetrics": { "type": "array", "items": { "$ref": "#/$defs/metricReference" } },
330
+ "applicableDims": { "type": "array", "items": { "$ref": "#/$defs/field" } },
331
+ "timeDim": { "oneOf": [{ "$ref": "#/$defs/field" }, { "type": "null" }] },
332
+ "businessOwner": { "$ref": "#/$defs/user" },
333
+ "creator": { "$ref": "#/$defs/user" },
334
+ "canManage": { "type": "boolean" },
335
+ "canUse": { "type": "boolean" }
336
+ },
337
+ "additionalProperties": true
338
+ },
339
+ "detailResponse": {
340
+ "type": "object",
341
+ "required": ["result", "response"],
342
+ "properties": {
343
+ "result": { "const": "ok" },
344
+ "response": { "$ref": "#/$defs/metricDetail" }
345
+ },
346
+ "additionalProperties": true
347
+ }
348
+ }
349
+ }