@qingflow-tech/qingflow-cli 1.1.51 → 1.1.54

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 (106) hide show
  1. package/README.md +4 -4
  2. package/npm/lib/runtime.mjs +29 -13
  3. package/package.json +1 -1
  4. package/pyproject.toml +8 -2
  5. package/skills/qingflow-cli/SKILL.md +93 -322
  6. package/skills/qingflow-cli/manifest.yaml +1 -1
  7. package/skills/qingflow-cli/reference/00-INDEX.md +4 -4
  8. package/skills/qingflow-cli/reference/QINGFLOW_CLI_ADMIN_CHEATSHEET.md +1 -1
  9. package/skills/qingflow-cli/reference/QINGFLOW_CLI_BUILDER_VIEWS_WORKFLOW.md +3 -9
  10. package/skills/qingflow-cli/reference/QINGFLOW_CLI_DATA_RETRIEVAL_WORKFLOW.md +3 -137
  11. package/skills/qingflow-cli/reference/QINGFLOW_CLI_EXPLORATION_REPORT.md +6 -4
  12. package/skills/qingflow-cli/reference/QINGFLOW_CLI_FIELD_DATA_TYPES.md +14 -14
  13. package/skills/qingflow-cli/reference/QINGFLOW_CLI_MEMBER_CHEATSHEET.md +20 -19
  14. package/skills/qingflow-cli/reference/QINGFLOW_CLI_ONE_SHOT_CHEATSHEET.md +18 -14
  15. package/skills/qingflow-cli/reference/QINGFLOW_CLI_RECORD_CREATE_WORKFLOW.md +7 -12
  16. package/skills/qingflow-cli/reference/QINGFLOW_CLI_RECORD_UPDATE_WORKFLOW.md +2 -1
  17. package/skills/qingflow-cli/reference/builder/20-build-complete-system.md +3 -2
  18. package/skills/qingflow-cli/reference/builder/30-schema-fields.md +9 -5
  19. package/skills/qingflow-cli/reference/builder/50-views.md +192 -191
  20. package/skills/qingflow-cli/reference/builder/80-buttons-associated-resources.md +2 -0
  21. package/skills/qingflow-cli/reference/builder/README.md +1 -1
  22. package/skills/qingflow-cli/reference/builder/reference/app-delivery-sop.md +6 -6
  23. package/skills/qingflow-cli/reference/core/QINGFLOW_CLI_ADMIN_CHEATSHEET.md +1 -1
  24. package/skills/qingflow-cli/reference/core/QINGFLOW_CLI_DATA_RETRIEVAL_WORKFLOW.md +76 -95
  25. package/skills/qingflow-cli/reference/core/QINGFLOW_CLI_EXPLORATION_REPORT.md +6 -4
  26. package/skills/qingflow-cli/reference/core/QINGFLOW_CLI_FIELD_DATA_TYPES.md +13 -13
  27. package/skills/qingflow-cli/reference/core/QINGFLOW_CLI_MEMBER_CHEATSHEET.md +20 -19
  28. package/skills/qingflow-cli/reference/core/QINGFLOW_CLI_ONE_SHOT_CHEATSHEET.md +18 -14
  29. package/skills/qingflow-cli/reference/data/README.md +32 -0
  30. package/skills/qingflow-cli/reference/examples/README.md +1 -1
  31. package/skills/qingflow-cli/reference/examples/views/views_apply_v1alpha1.example.json +14 -0
  32. package/skills/qingflow-cli/reference/examples/views/views_upsert_table_minimal.example.json +30 -36
  33. package/skills/qingflow-cli/reference/record/QINGFLOW_CLI_RECORD_SPECIALIZED_WORKFLOW.md +50 -0
  34. package/skills/qingflow-cli/reference/record/QINGFLOW_CLI_RECORD_UPDATE_WORKFLOW.md +2 -1
  35. package/skills/qingflow-cli/reference/record/analysis/README.md +21 -113
  36. package/skills/qingflow-cli/reference/record/analysis/analysis-gotchas.md +10 -10
  37. package/skills/qingflow-cli/reference/record/analysis/analysis-patterns.md +9 -9
  38. package/skills/qingflow-cli/reference/record/analysis/business-context.md +1 -1
  39. package/skills/qingflow-cli/reference/record/analysis/confidence-reporting.md +10 -10
  40. package/skills/qingflow-cli/reference/record/analysis/data-access-playbook.md +52 -80
  41. package/skills/qingflow-cli/reference/record/analysis/pandas-recipes.md +2 -2
  42. package/skills/qingflow-common/SKILL.md +7 -4
  43. package/src/qingflow_mcp/app_form_compat.py +3 -0
  44. package/src/qingflow_mcp/app_form_validator.py +69 -17
  45. package/src/qingflow_mcp/builder_facade/app_form.py +497 -100
  46. package/src/qingflow_mcp/builder_facade/models.py +227 -17
  47. package/src/qingflow_mcp/builder_facade/schemas/app_form/manifest.json +1 -0
  48. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/complete.json +64 -30
  49. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/address.json +4 -8
  50. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/amount.json +4 -8
  51. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/attachment.json +6 -10
  52. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/code_block.json +6 -10
  53. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/data_relation.json +11 -18
  54. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/date.json +4 -8
  55. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/datetime.json +4 -8
  56. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/department.json +6 -10
  57. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/email.json +4 -8
  58. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/link.json +4 -8
  59. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/long_text.json +4 -8
  60. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/member.json +6 -10
  61. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/multi_select.json +4 -8
  62. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/number.json +4 -8
  63. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/phone.json +4 -8
  64. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/q_linker.json +6 -10
  65. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/relation.json +46 -15
  66. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/rich_text.json +146 -0
  67. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/single_choice.json +4 -8
  68. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/single_select.json +4 -8
  69. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/subtable.json +61 -27
  70. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/text.json +4 -8
  71. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/formula.json +43 -0
  72. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/summary.json +7 -12
  73. package/src/qingflow_mcp/builder_facade/schemas/views/manifest.json +42 -0
  74. package/src/qingflow_mcp/builder_facade/schemas/views/v1alpha1/complete.json +1245 -0
  75. package/src/qingflow_mcp/builder_facade/schemas/views/v1alpha1/details/button-config.json +53 -0
  76. package/src/qingflow_mcp/builder_facade/schemas/views/v1alpha1/details/data-permission.json +60 -0
  77. package/src/qingflow_mcp/builder_facade/schemas/views/v1alpha1/details/display.json +73 -0
  78. package/src/qingflow_mcp/builder_facade/schemas/views/v1alpha1/details/operation-permission.json +48 -0
  79. package/src/qingflow_mcp/builder_facade/schemas/views/v1alpha1/details/query-condition.json +47 -0
  80. package/src/qingflow_mcp/builder_facade/schemas/views/v1alpha1/summary.json +319 -0
  81. package/src/qingflow_mcp/builder_facade/service.py +1709 -518
  82. package/src/qingflow_mcp/builder_facade/views_extract.py +595 -0
  83. package/src/qingflow_mcp/builder_facade/views_schema.py +400 -0
  84. package/src/qingflow_mcp/cli/commands/__init__.py +2 -1
  85. package/src/qingflow_mcp/cli/commands/builder.py +76 -55
  86. package/src/qingflow_mcp/cli/commands/data.py +134 -0
  87. package/src/qingflow_mcp/cli/commands/record.py +1 -1
  88. package/src/qingflow_mcp/cli/context.py +3 -0
  89. package/src/qingflow_mcp/cli/formatters.py +97 -1
  90. package/src/qingflow_mcp/public_surface.py +8 -0
  91. package/src/qingflow_mcp/response_trim.py +11 -2
  92. package/src/qingflow_mcp/server.py +2 -0
  93. package/src/qingflow_mcp/server_app_builder.py +34 -10
  94. package/src/qingflow_mcp/server_app_user.py +4 -0
  95. package/src/qingflow_mcp/solution/compiler/view_compiler.py +2 -1
  96. package/src/qingflow_mcp/solution/executor.py +96 -8
  97. package/src/qingflow_mcp/solution/spec_models.py +1 -0
  98. package/src/qingflow_mcp/tools/ai_builder_tools.py +218 -398
  99. package/src/qingflow_mcp/tools/csv_export.py +168 -0
  100. package/src/qingflow_mcp/tools/data_tools.py +284 -0
  101. package/src/qingflow_mcp/tools/record_tools.py +11 -46
  102. package/src/qingflow_mcp/tools/solution_tools.py +2 -0
  103. package/src/qingflow_mcp/tools/view_tools.py +0 -6
  104. package/src/qingflow_mcp/tools/view_writer.py +44 -0
  105. package/skills/qingflow-cli/reference/examples/views/views_batch_full.example.json +0 -159
  106. package/skills/qingflow-cli/reference/views_upsert_table_minimal.example.json +0 -42
@@ -1,159 +0,0 @@
1
- {
2
- "views": [
3
- {
4
- "operation": "upsert",
5
- "app_key": "WORK_ORDER_APP_KEY",
6
- "name": "生产工单执行视图",
7
- "type": "table",
8
- "columns": ["工单编号", "产品", "工单状态", "负责人", "计划完成日期"],
9
- "filters": [
10
- {"field_name": "工单状态", "operator": "in", "values": ["待排产", "生产中"]},
11
- {"field_name": "产品", "operator": "contains", "value": "标准"},
12
- {"field_name": "计划完成日期", "operator": "lte", "value": "2026-07-31"}
13
- ],
14
- "query_conditions": {
15
- "enabled": true,
16
- "exact": false,
17
- "hide_before_query": false,
18
- "rows": [["工单编号", "工单状态"], ["负责人", "计划完成日期"]]
19
- },
20
- "visibility": {
21
- "mode": "workspace",
22
- "selectors": {},
23
- "external_mode": "not",
24
- "external_selectors": {}
25
- },
26
- "action_buttons": [
27
- {
28
- "client_key": "create_quality_from_list",
29
- "text": "行内创建质检",
30
- "action": "add_data",
31
- "target_app_key": "QUALITY_APP_KEY",
32
- "field_mappings": [
33
- {"source_field": "数据ID", "target_field": "关联工单"}
34
- ],
35
- "default_values": {"处理状态": "待处理"},
36
- "placement": "list",
37
- "primary": true,
38
- "style_preset": "primary_blue",
39
- "visible_when": [
40
- {"field_name": "工单状态", "operator": "eq", "value": "生产中"}
41
- ]
42
- },
43
- {
44
- "client_key": "create_quality_from_detail",
45
- "text": "详情创建质检",
46
- "action": "add_data",
47
- "target_app_key": "QUALITY_APP_KEY",
48
- "field_mappings": [
49
- {"source_field": "数据ID", "target_field": "关联工单"}
50
- ],
51
- "default_values": {"处理状态": "待处理"},
52
- "placement": "detail",
53
- "style_preset": "neutral_outline"
54
- },
55
- {
56
- "client_key": "open_work_order_sop",
57
- "text": "打开SOP",
58
- "action": "link",
59
- "url": "https://example.com/sop/work-order",
60
- "placement": "header",
61
- "style_preset": "text_blue"
62
- }
63
- ]
64
- },
65
- {
66
- "operation": "upsert",
67
- "app_key": "WORK_ORDER_APP_KEY",
68
- "name": "工单状态看板",
69
- "type": "board",
70
- "columns": ["工单编号", "产品", "负责人", "计划完成日期"],
71
- "group_by": "工单状态",
72
- "filters": [
73
- {"field_name": "工单状态", "operator": "not_empty"},
74
- {"field_name": "关闭日期", "operator": "is_empty"}
75
- ],
76
- "query_conditions": {
77
- "enabled": true,
78
- "rows": [["工单编号", "负责人"], ["计划完成日期"]]
79
- },
80
- "action_buttons": [
81
- {
82
- "text": "看板行内创建质检",
83
- "action": "add_data",
84
- "target_app_key": "QUALITY_APP_KEY",
85
- "field_mappings": [
86
- {"source_field": "数据ID", "target_field": "关联工单"}
87
- ],
88
- "placement": "list",
89
- "visible_when": [
90
- {"field_name": "工单状态", "operator": "eq", "value": "已完工"}
91
- ]
92
- },
93
- {
94
- "text": "看板详情创建质检",
95
- "action": "add_data",
96
- "target_app_key": "QUALITY_APP_KEY",
97
- "field_mappings": [
98
- {"source_field": "数据ID", "target_field": "关联工单"}
99
- ],
100
- "placement": "detail"
101
- }
102
- ]
103
- },
104
- {
105
- "operation": "upsert",
106
- "app_key": "WORK_ORDER_APP_KEY",
107
- "name": "工单计划甘特图",
108
- "type": "gantt",
109
- "columns": ["工单编号", "产品", "工单状态", "计划开始日期", "计划完成日期"],
110
- "start_field": "计划开始日期",
111
- "end_field": "计划完成日期",
112
- "title_field": "工单编号",
113
- "filters": [
114
- {"field_name": "计划开始日期", "operator": "gte", "value": "2026-07-01"}
115
- ],
116
- "query_conditions": {
117
- "enabled": true,
118
- "rows": [["工单编号", "工单状态"], ["计划开始日期", "计划完成日期"]]
119
- },
120
- "action_buttons": [
121
- {
122
- "text": "详情查看排产说明",
123
- "action": "link",
124
- "url": "https://example.com/sop/schedule",
125
- "placement": "detail"
126
- }
127
- ]
128
- },
129
- {
130
- "operation": "patch",
131
- "app_key": "WORK_ORDER_APP_KEY",
132
- "view_key": "RAW_VIEW_KEY_TO_PATCH",
133
- "set": {
134
- "columns": ["工单编号", "工单状态", "负责人"],
135
- "filters": [
136
- {"field_name": "工单状态", "operator": "neq", "value": "已关闭"}
137
- ],
138
- "query_conditions": {
139
- "enabled": true,
140
- "rows": [["工单编号", "工单状态"], ["负责人"]]
141
- },
142
- "action_buttons": [
143
- {
144
- "text": "补充详情按钮",
145
- "action": "link",
146
- "url": "https://example.com/detail-help",
147
- "placement": "detail"
148
- }
149
- ],
150
- "action_buttons_mode": "merge"
151
- }
152
- },
153
- {
154
- "operation": "remove",
155
- "app_key": "WORK_ORDER_APP_KEY",
156
- "view_key": "RAW_VIEW_KEY_TO_REMOVE"
157
- }
158
- ]
159
- }
@@ -1,42 +0,0 @@
1
- {
2
- "views": [
3
- {
4
- "operation": "upsert",
5
- "app_key": "APP_KEY",
6
- "name": "示例业务操作视图_CLI模板",
7
- "type": "table",
8
- "columns": ["主记录编号", "主记录名称", "状态", "负责人"],
9
- "filters": [
10
- {"field_name": "状态", "operator": "neq", "value": "已关闭"}
11
- ],
12
- "query_conditions": {
13
- "enabled": true,
14
- "exact": false,
15
- "hide_before_query": false,
16
- "rows": [["主记录编号", "主记录名称"], ["状态", "负责人"]]
17
- },
18
- "action_buttons": [
19
- {
20
- "text": "行内创建子记录",
21
- "action": "add_data",
22
- "target_app_key": "TARGET_APP_KEY",
23
- "field_mappings": [
24
- {"source_field": "数据ID", "target_field": "关联主记录"}
25
- ],
26
- "default_values": {"目标状态字段": "REPLACE_WITH_TARGET_OPTION_LABEL"},
27
- "placement": "list"
28
- },
29
- {
30
- "text": "详情创建子记录",
31
- "action": "add_data",
32
- "target_app_key": "TARGET_APP_KEY",
33
- "field_mappings": [
34
- {"source_field": "数据ID", "target_field": "关联主记录"}
35
- ],
36
- "default_values": {"目标状态字段": "REPLACE_WITH_TARGET_OPTION_LABEL"},
37
- "placement": "detail"
38
- }
39
- ]
40
- }
41
- ]
42
- }