@josephyan/qingflow-app-builder-mcp 1.1.16 → 1.1.18

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.
@@ -214,7 +214,8 @@ def register(subparsers: argparse._SubParsersAction[argparse.ArgumentParser]) ->
214
214
  schema_apply_apply.add_argument("--visibility-file")
215
215
  schema_apply_apply.add_argument("--create-if-missing", action="store_true")
216
216
  schema_apply_apply.add_argument("--publish", action=argparse.BooleanOptionalAction, default=None)
217
- schema_apply_apply.add_argument("--apps-file", help="多应用 schema JSON 数组;每项可带 client_key/app_name/add_fields,支持 relation target_app_ref")
217
+ schema_apply_apply.add_argument("--apps-file", help="多应用 schema JSON 对象;每项可带 client_key/app_name/form,支持 relation target_app_ref")
218
+ schema_apply_apply.add_argument("--form-file", help="单应用表单结构 JSON 数组;form[].rows[][] 同时声明字段和表单分组布局")
218
219
  schema_apply_apply.add_argument("--add-fields-file", help="字段 JSON 数组;字段可用 as_data_title/as_data_cover 标记数据标题/封面")
219
220
  schema_apply_apply.add_argument("--update-fields-file", help="字段更新 JSON 数组;set 内可用 as_data_title/as_data_cover 标记数据标题/封面")
220
221
  schema_apply_apply.add_argument("--remove-fields-file")
@@ -578,10 +579,10 @@ def _handle_schema_apply(args: argparse.Namespace, context: CliContext) -> dict:
578
579
  fix_hint="Pass a JSON array, or a JSON object like {\"package_id\":1001,\"apps\":[...]} with at least one app item.",
579
580
  error_code="APPS_FILE_EMPTY",
580
581
  )
581
- if args.app_key or args.app_name or args.app_title or args.add_fields_file or args.update_fields_file or args.remove_fields_file:
582
+ if args.app_key or args.app_name or args.app_title or args.form_file or args.add_fields_file or args.update_fields_file or args.remove_fields_file:
582
583
  raise_config_error(
583
584
  "schema apply multi-app mode accepts --package-id plus --apps-file only; --create-if-missing is optional.",
584
- fix_hint="Use `--apps-file` for batch mode, or remove `--apps-file` and use the single-app arguments.",
585
+ fix_hint="Use apps[].form inside --apps-file for batch mode, or remove --apps-file and use --form-file for a single app.",
585
586
  )
586
587
  if package_id is None:
587
588
  raise_config_error(
@@ -595,6 +596,7 @@ def _handle_schema_apply(args: argparse.Namespace, context: CliContext) -> dict:
595
596
  create_if_missing=effective_create_if_missing,
596
597
  publish=effective_publish,
597
598
  apps=apps,
599
+ form=None,
598
600
  add_fields=[],
599
601
  update_fields=[],
600
602
  remove_fields=[],
@@ -631,6 +633,7 @@ def _handle_schema_apply(args: argparse.Namespace, context: CliContext) -> dict:
631
633
  visibility=load_object_arg(args.visibility_file, option_name="--visibility-file"),
632
634
  create_if_missing=bool(args.create_if_missing),
633
635
  publish=True if args.publish is None else bool(args.publish),
636
+ form=load_list_arg(args.form_file, option_name="--form-file") if args.form_file else [],
634
637
  add_fields=load_list_arg(args.add_fields_file, option_name="--add-fields-file"),
635
638
  update_fields=load_list_arg(args.update_fields_file, option_name="--update-fields-file"),
636
639
  remove_fields=load_list_arg(args.remove_fields_file, option_name="--remove-fields-file"),
@@ -428,16 +428,17 @@ def build_builder_server() -> FastMCP:
428
428
  visibility: dict | None = None,
429
429
  create_if_missing: bool | None = None,
430
430
  publish: bool = True,
431
+ form: list[dict] | None = None,
431
432
  add_fields: list[dict] | None = None,
432
433
  update_fields: list[dict] | None = None,
433
434
  remove_fields: list[dict] | None = None,
434
435
  apps: list[dict] | None = None,
435
436
  ) -> dict:
436
437
  if apps:
437
- if app_key or app_name or app_title or add_fields or update_fields or remove_fields:
438
+ if app_key or app_name or app_title or form or add_fields or update_fields or remove_fields:
438
439
  return _config_failure(
439
440
  "app_schema_apply multi-app mode accepts package_id plus apps only; create_if_missing is optional.",
440
- fix_hint="Use `apps` for batch mode, or use the single-app arguments without `apps`.",
441
+ fix_hint="Use apps[].form for batch mode, or use the single-app arguments without apps.",
441
442
  )
442
443
  if package_id is None:
443
444
  return _config_failure(
@@ -450,6 +451,7 @@ def build_builder_server() -> FastMCP:
450
451
  visibility=visibility,
451
452
  create_if_missing=True if create_if_missing is None else bool(create_if_missing),
452
453
  publish=publish,
454
+ form=None,
453
455
  add_fields=[],
454
456
  update_fields=[],
455
457
  remove_fields=[],
@@ -482,10 +484,11 @@ def build_builder_server() -> FastMCP:
482
484
  visibility=visibility,
483
485
  create_if_missing=effective_create_if_missing,
484
486
  publish=publish,
487
+ form=form or [],
485
488
  add_fields=add_fields or [],
486
489
  update_fields=update_fields or [],
487
490
  remove_fields=remove_fields or [],
488
- apps=[],
491
+ apps=None,
489
492
  )
490
493
 
491
494
  @server.tool()