openyida 2026.7.18 → 2026.7.21

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 (200) hide show
  1. package/README.md +37 -2
  2. package/bin/yida.js +113 -18
  3. package/docs/capabilities.md +202 -0
  4. package/lib/agent-center/agent-center.js +2 -3
  5. package/lib/app/app-list.js +3 -4
  6. package/lib/app/build-page.js +13 -6
  7. package/lib/app/check-page.js +16 -6
  8. package/lib/app/compile.js +17 -7
  9. package/lib/app/create-app.js +14 -2
  10. package/lib/app/create-form/api-path.js +25 -0
  11. package/lib/app/create-form/args.js +13 -0
  12. package/lib/app/create-form/commands.js +4 -0
  13. package/lib/app/create-form/definition-reader.js +23 -23
  14. package/lib/app/create-form/field-normalizers.js +26 -7
  15. package/lib/app/create-form/schema-patch.js +4 -1
  16. package/lib/app/create-form.js +155 -68
  17. package/lib/app/create-page.js +47 -10
  18. package/lib/app/generate-page.js +20 -1
  19. package/lib/app/get-form-config.js +2 -1
  20. package/lib/app/get-schema.js +67 -15
  21. package/lib/app/import-app.js +94 -42
  22. package/lib/app/list-forms.js +4 -8
  23. package/lib/app/page-ir.js +140 -0
  24. package/lib/app/publish.js +289 -556
  25. package/lib/app/schema-field-resolution.js +370 -0
  26. package/lib/app/services/app-reader.js +85 -0
  27. package/lib/app/services/app-service.js +235 -0
  28. package/lib/app/services/canvas-page-compiler.js +91 -0
  29. package/lib/app/services/canvas-page-schema-builder.js +149 -0
  30. package/lib/app/services/field-bindings.js +68 -0
  31. package/lib/app/services/form-compiler.js +1922 -0
  32. package/lib/app/services/form-mode-service.js +182 -0
  33. package/lib/app/services/form-schema-patcher.js +333 -0
  34. package/lib/app/services/form-schema-reader.js +59 -0
  35. package/lib/app/services/form-service.js +379 -0
  36. package/lib/app/services/form-validation.js +562 -0
  37. package/lib/app/services/native-page-compiler.js +92 -0
  38. package/lib/app/services/native-page-schema-builder.js +428 -0
  39. package/lib/app/services/page-resource-service.js +185 -0
  40. package/lib/app/update-app.js +22 -9
  41. package/lib/app/update-form-config.js +4 -2
  42. package/lib/asset/asset-cmd.js +19 -6
  43. package/lib/auth/oauth-loopback.js +376 -15
  44. package/lib/auth/token-auth.js +34 -3
  45. package/lib/auth/token-store.js +22 -4
  46. package/lib/basic-info/basic-info.js +2 -1
  47. package/lib/bridge/bridge.js +43 -18
  48. package/lib/core/agent-capabilities.js +5 -3
  49. package/lib/core/command-errors.js +38 -0
  50. package/lib/core/command-manifest.js +59 -1
  51. package/lib/core/copy.js +12 -0
  52. package/lib/core/doctor.js +15 -4
  53. package/lib/core/env-cmd.js +1 -1
  54. package/lib/core/env.js +7 -6
  55. package/lib/core/i18n.js +66 -8
  56. package/lib/core/legacy-schema-guard.js +408 -0
  57. package/lib/core/locales/en.js +38 -46
  58. package/lib/core/locales/zh.js +30 -46
  59. package/lib/core/sample.js +12 -2
  60. package/lib/core/utils.js +334 -66
  61. package/lib/core/yida-client.js +108 -5
  62. package/lib/corp-efficiency/corp-efficiency.js +2 -2
  63. package/lib/corp-manager/corp-manager.js +3 -3
  64. package/lib/formula/evaluate.js +11 -68
  65. package/lib/formula/field-refs.js +83 -0
  66. package/lib/i18n-management/i18n-management.js +2 -3
  67. package/lib/process/configure-process.js +44 -1992
  68. package/lib/process/create-process.js +54 -87
  69. package/lib/process/preview-process.js +20 -8
  70. package/lib/process/services/process-compiler.js +2056 -0
  71. package/lib/process/services/process-reader.js +232 -0
  72. package/lib/process/services/process-resource-service.js +571 -0
  73. package/lib/process/services/process-service.js +122 -0
  74. package/lib/process/services/process-stage-checkpoint.js +246 -0
  75. package/lib/report/append.js +7 -26
  76. package/lib/report/http.js +31 -5
  77. package/lib/report/index.js +10 -2
  78. package/lib/samples/yida-canvas-custom-page/business-list.canvas.jsx +63 -14
  79. package/lib/samples/yida-canvas-custom-page/dashboard-overview.canvas.jsx +176 -32
  80. package/lib/samples/yida-canvas-custom-page/dashboard-starter.canvas.jsx +5 -2
  81. package/lib/samples/yida-canvas-custom-page/data-management.canvas.jsx +228 -14
  82. package/lib/samples/yida-canvas-custom-page/portal-shell-home.canvas.jsx +2 -2
  83. package/lib/samples/yida-canvas-custom-page/split-pane-detail.canvas.jsx +206 -10
  84. package/lib/samples/yida-custom-page/data-management.oyd.jsx +14 -3
  85. package/lib/samples/yida-custom-page/design-tokens.js +2 -2
  86. package/lib/samples/yida-custom-page/detail-profile.oyd.jsx +1 -1
  87. package/lib/samples/yida-custom-page/portal-shell-home.oyd.jsx +7 -2
  88. package/lib/samples/yida-custom-page/split-pane-detail.oyd.jsx +2 -1
  89. package/lib/schema/adapters/app-adapter.js +210 -0
  90. package/lib/schema/adapters/form-adapter.js +1362 -0
  91. package/lib/schema/adapters/keys.js +19 -0
  92. package/lib/schema/adapters/page-adapter.js +566 -0
  93. package/lib/schema/adapters/process-adapter.js +519 -0
  94. package/lib/schema/applier.js +1878 -0
  95. package/lib/schema/apply-store.js +1083 -0
  96. package/lib/schema/command.js +645 -0
  97. package/lib/schema/dependency-graph.js +83 -0
  98. package/lib/schema/errors.js +481 -0
  99. package/lib/schema/hash.js +9 -0
  100. package/lib/schema/manifest-limits.js +177 -0
  101. package/lib/schema/manifest-loader.js +309 -0
  102. package/lib/schema/manifest-schema-v1.json +193 -0
  103. package/lib/schema/normalize-manifest.js +281 -0
  104. package/lib/schema/page-canvas-foundation.js +447 -0
  105. package/lib/schema/page-data-source-builder.js +561 -0
  106. package/lib/schema/page-foundation.js +556 -0
  107. package/lib/schema/page-source-loader.js +314 -0
  108. package/lib/schema/planner.js +691 -0
  109. package/lib/schema/remote-dispatch-boundary.js +39 -0
  110. package/lib/schema/remote-missing.js +21 -0
  111. package/lib/schema/remote-reader.js +189 -0
  112. package/lib/schema/resource-registry.js +157 -0
  113. package/lib/schema/server-revision.js +71 -0
  114. package/lib/schema/sort.js +28 -0
  115. package/lib/schema/state-store.js +589 -0
  116. package/package.json +10 -8
  117. package/scripts/check-release-risks.js +254 -0
  118. package/scripts/generate-command-docs.js +6 -1
  119. package/scripts/i18n-baseline.json +11 -11
  120. package/scripts/postinstall.js +8 -12
  121. package/scripts/validate-ci.sh +15 -11
  122. package/scripts/validate-i18n.js +30 -9
  123. package/scripts/validate-package-size.js +5 -2
  124. package/scripts/validate-skills.js +4 -0
  125. package/scripts/validate-structure.js +15 -0
  126. package/yida-skills/SKILL.md +117 -30
  127. package/yida-skills/references/schema-as-code-phase1.md +99 -0
  128. package/yida-skills/references/setup-and-env.md +59 -59
  129. package/yida-skills/references/task-retrospective.md +6 -6
  130. package/yida-skills/skills/yida-app/SKILL.md +78 -17
  131. package/yida-skills/skills/yida-canvas-custom-page/SKILL.md +18 -7
  132. package/yida-skills/skills/yida-canvas-custom-page/references/data-bridge-guide.md +3 -3
  133. package/yida-skills/skills/yida-canvas-custom-page/references/page-generation-guide.md +15 -0
  134. package/yida-skills/skills/yida-create-app/SKILL.md +21 -3
  135. package/yida-skills/skills/yida-create-form-page/SKILL.md +19 -1
  136. package/yida-skills/skills/yida-create-page/SKILL.md +16 -3
  137. package/yida-skills/skills/yida-create-process/SKILL.md +100 -4
  138. package/yida-skills/skills/yida-custom-page/SKILL.md +19 -4
  139. package/yida-skills/skills/yida-dashboard/SKILL.md +1 -1
  140. package/yida-skills/skills/yida-dashboard/references/pitfalls.md +1 -1
  141. package/yida-skills/skills/yida-get-schema/SKILL.md +49 -5
  142. package/yida-skills/skills/yida-i18n/SKILL.md +1 -1
  143. package/yida-skills/skills/yida-integration/SKILL.md +7 -1
  144. package/yida-skills/skills/yida-login/SKILL.md +50 -99
  145. package/yida-skills/skills/yida-page-config/SKILL.md +7 -1
  146. package/yida-skills/skills/yida-page-uiux/references/app/blueprint.md +0 -1
  147. package/yida-skills/skills/yida-page-uiux/references/app/navigation-patterns.md +0 -1
  148. package/yida-skills/skills/yida-page-uiux/references/app/role-journey.md +0 -1
  149. package/yida-skills/skills/yida-page-uiux/references/dashboard/app-blueprint.md +0 -1
  150. package/yida-skills/skills/yida-page-uiux/references/dashboard/chart-contracts.md +0 -1
  151. package/yida-skills/skills/yida-page-uiux/references/dashboard/component-contracts.md +0 -1
  152. package/yida-skills/skills/yida-page-uiux/references/dashboard/layout-patterns.md +0 -1
  153. package/yida-skills/skills/yida-page-uiux/references/dashboard/theme-recipes.md +0 -1
  154. package/yida-skills/skills/yida-page-uiux/references/detail/object-narrative.md +0 -1
  155. package/yida-skills/skills/yida-page-uiux/references/detail/section-patterns.md +0 -1
  156. package/yida-skills/skills/yida-page-uiux/references/detail/timeline-and-related.md +0 -1
  157. package/yida-skills/skills/yida-page-uiux/references/landing/assets-workflow.md +0 -1
  158. package/yida-skills/skills/yida-page-uiux/references/landing/industry-playbooks.md +0 -1
  159. package/yida-skills/skills/yida-page-uiux/references/landing/research-levels.md +0 -1
  160. package/yida-skills/skills/yida-page-uiux/references/landing/section-patterns.md +0 -1
  161. package/yida-skills/skills/yida-page-uiux/references/list/drawer-detail.md +0 -1
  162. package/yida-skills/skills/yida-page-uiux/references/list/empty-loading-error.md +0 -1
  163. package/yida-skills/skills/yida-page-uiux/references/list/filter-patterns.md +0 -1
  164. package/yida-skills/skills/yida-page-uiux/references/list/table-patterns.md +0 -1
  165. package/yida-skills/skills/yida-page-uiux/references/scenes/screen.md +0 -1
  166. package/yida-skills/skills/yida-page-uiux/references/workbench/entry-patterns.md +0 -1
  167. package/yida-skills/skills/yida-page-uiux/references/workbench/portal-layouts.md +0 -1
  168. package/yida-skills/skills/yida-page-uiux/references/workbench/task-feed.md +0 -1
  169. package/yida-skills/skills/yida-page-uiux/workflow/output-decision-block.md +1 -1
  170. package/yida-skills/skills/yida-process-rule/SKILL.md +35 -1
  171. package/yida-skills/skills/yida-publish-page/SKILL.md +46 -4
  172. package/yida-skills/skills/yida-report/SKILL.md +9 -235
  173. package/yida-skills/skills/yida-report/references/schema-builder-details.md +239 -0
  174. package/yida-skills/skills/yida-skill-evaluator/SKILL.md +170 -0
  175. package/yida-skills/skills-index.json +238 -54
  176. package/lib/core/locales/ar.js +0 -834
  177. package/lib/core/locales/de.js +0 -834
  178. package/lib/core/locales/es.js +0 -834
  179. package/lib/core/locales/fr.js +0 -834
  180. package/lib/core/locales/hi.js +0 -834
  181. package/lib/core/locales/ja.js +0 -1227
  182. package/lib/core/locales/ko.js +0 -836
  183. package/lib/core/locales/pt.js +0 -834
  184. package/lib/core/locales/vi.js +0 -834
  185. package/lib/core/locales/zh-HK.js +0 -1263
  186. package/project/pages/src/demo-birthday-game.oyd.jsx +0 -832
  187. package/project/pages/src/demo-chip-insight.oyd.jsx +0 -983
  188. package/project/pages/src/demo-compat-smoke.oyd.jsx +0 -58
  189. package/project/pages/src/demo-crm-batch-entry.oyd.jsx +0 -805
  190. package/project/pages/src/demo-crm-dashboard.oyd.jsx +0 -677
  191. package/project/pages/src/demo-future-vision-2026.oyd.jsx +0 -1102
  192. package/project/pages/src/demo-ppt.oyd.jsx +0 -1192
  193. package/project/pages/src/demo-salary-calculator.oyd.jsx +0 -904
  194. package/project/pages/src/openyida-knowledge-doc.oyd.jsx +0 -1714
  195. package/yida-skills/skills/large-file-write/SKILL.md +0 -93
  196. package/yida-skills/skills/large-file-write/references/write-patterns.md +0 -147
  197. package/yida-skills/skills/large-file-write/scripts/write.js +0 -157
  198. package/yida-skills/skills/sls-log-workbench/SKILL.md +0 -134
  199. package/yida-skills/skills/sls-log-workbench/references/workbench-reference.md +0 -130
  200. package/yida-skills/skills/sls-log-workbench/sls-query.js +0 -295
@@ -1,834 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * Deutsches Sprachpaket (German)
5
- */
6
- module.exports = {
7
- // ── bin/yida.js printHelp() ────────────────────────
8
- help: {
9
- subtitle: 'KI-gestütztes Low-Code-Entwicklungstool für Yida',
10
- usage: 'Verwendung:',
11
- alias: 'Alias:',
12
- group_auth: 'Umgebung & Authentifizierung',
13
- cmd_login: 'Login with OAuth token mode',
14
- cmd_logout: 'Abmelden / Konto wechseln',
15
- cmd_auth: 'Anmeldestatus-Verwaltung',
16
- cmd_org: 'Organisationsverwaltung (auflisten / wechseln)',
17
- cmd_env: 'KI-Tool-Umgebung und Anmeldestatus erkennen',
18
- cmd_env_management: 'Public/private environment profiles verwalten',
19
- group_app: 'App-Verwaltung',
20
- cmd_app_list: 'Meine Yida-Apps auflisten',
21
- cmd_corp_efficiency: 'Unternehmenseffizienz-Übersicht und Detailberichte abrufen',
22
- cmd_create_app: 'Yida-App erstellen',
23
- cmd_update_app: 'App-Informationen aktualisieren',
24
- cmd_nav_group: 'Navigationsgruppen der App-Seitenleiste verwalten',
25
- cmd_app_permission: 'App-Haupt-, Daten- und Entwicklungsadmins verwalten',
26
- cmd_i18n: 'Mehrsprachige App-Texte und Sprachen verwalten',
27
- cmd_export: 'App exportieren (Migrationspaket erstellen)',
28
- cmd_import: 'Migrationspaket importieren, App neu aufbauen',
29
- group_form: 'Formulare & Seiten',
30
- cmd_create_form: 'Formularseite erstellen',
31
- cmd_update_form: 'Formularseite aktualisieren',
32
- cmd_list_forms: 'Formulare/Seiten einer App auflisten',
33
- cmd_aggregate_table: 'Manage aggregate tables (virtualView)',
34
- cmd_er: 'Export app entity relationship diagram',
35
- cmd_get_schema: 'Formular-Schema abrufen',
36
- cmd_create_page: 'Benutzerdefinierte Anzeigeseite erstellen',
37
- cmd_generate_page: 'Generate page from curated template',
38
- cmd_check_page: 'Check custom page standards',
39
- cmd_compile: 'Benutzerdefinierte Seite lokal kompilieren',
40
- cmd_publish: 'Benutzerdefinierte Seite kompilieren & veröffentlichen',
41
- cmd_update_form_config: 'Formularkonfiguration aktualisieren',
42
- group_data: 'Daten & Berechtigungen',
43
- cmd_data: 'Einheitliche Datenverwaltung (Formular/Prozess/Aufgabe/Unterformular)',
44
- cmd_task_center: 'Globales Aufgabenzentrum (Aufgaben/Bearbeitet/CC etc.)',
45
- cmd_basic_info: 'Organisationsinfos, Kapazitaeten, Quoten und Domain-Einstellungen abfragen',
46
- cmd_get_permission: 'Formularberechtigungen abfragen',
47
- cmd_save_permission: 'Formularberechtigungen speichern',
48
- cmd_corp_manager: 'Plattformberechtigungen verwalten',
49
- cmd_agent_center: 'Prozess- und Austrittsvertretungen verwalten',
50
- group_process: 'Prozesse',
51
- cmd_configure_process: 'Prozessregeln konfigurieren & veröffentlichen',
52
- cmd_create_process: 'Prozessformular erstellen (All-in-One)',
53
- cmd_ai_form_setting: 'Manage process form AI approval prompts',
54
- cmd_process_preview: 'Prozessinstanz-Vorschau (Flussdiagramm)',
55
- group_share: 'Seitenkonfiguration & Freigabe',
56
- cmd_verify_url: 'Kurz-URL überprüfen',
57
- cmd_save_share: 'Öffentlichen Zugang / Freigabe speichern',
58
- cmd_get_page_config: 'Öffentliche Zugangskonfiguration abfragen',
59
- cmd_externalize_form: 'Plan external access-safe mirror fields',
60
- group_report: 'Berichte',
61
- cmd_create_report: 'Yida-Bericht erstellen',
62
- cmd_append_chart: 'Diagramm zu bestehendem Bericht hinzufügen',
63
- group_connector: 'Konnektoren',
64
- cmd_connector_list: 'HTTP-Konnektoren auflisten',
65
- cmd_connector_create: 'Konnektor erstellen',
66
- cmd_connector_detail: 'Konnektor-Details anzeigen',
67
- cmd_connector_delete: 'Konnektor löschen',
68
- cmd_connector_add_action: 'Aktion hinzufügen',
69
- cmd_connector_list_actions: 'Aktionen auflisten',
70
- cmd_connector_delete_action: 'Aktion löschen',
71
- cmd_connector_test: 'Aktion testen',
72
- cmd_connector_list_connections: 'Auth-Verbindungen auflisten',
73
- cmd_connector_create_connection: 'Auth-Verbindung erstellen',
74
- cmd_connector_smart: 'Smart-Erstellung (aus cURL)',
75
- cmd_connector_parse_api: 'API-Informationen parsen',
76
- cmd_connector_gen_template: 'API-Dokumentvorlage generieren',
77
- cmd_connector_more: 'Weitere Unterbefehle anzeigen',
78
- group_integration: 'Integration & DingTalk',
79
- cmd_integration: 'Integrations-Automatisierungsflow erstellen',
80
- cmd_integration_list: 'Integrations-Automatisierungsflows auflisten',
81
- cmd_integration_enable: 'Integrations-Automatisierungsflow aktivieren',
82
- cmd_integration_disable: 'Integrations-Automatisierungsflow deaktivieren',
83
- cmd_integration_check: 'Check abnormal integration automation run logs',
84
- cmd_dws: 'DingTalk CLI (Kontakte/Kalender/Aufgaben/Genehmigung etc.)',
85
- cmd_dingtalk_link: 'DingTalk AppLink / alte dingtalk:// Seitenlinks erzeugen',
86
- group_utility: 'Werkzeuge',
87
- cmd_commands: 'Maschinenlesbares Command Manifest ausgeben',
88
- cmd_agent_capabilities: 'Einmaligen Agent Capability Snapshot ausgeben',
89
- cmd_a2a: 'Lokalen schreibgeschützten A2A-Adapter starten oder Agent Card ausgeben',
90
- cmd_bridge: 'Lokalen OpenYida Web-Bridge-Dienst starten',
91
- cmd_db_seq_fix: 'Detect and repair PostgreSQL sequence drift',
92
- cmd_copy: 'project-Arbeitsverzeichnis kopieren',
93
- cmd_sample: 'Codebeispiele/Vorlagen ausgeben',
94
- cmd_doctor: 'Umgebungsdiagnose & automatische Reparatur',
95
- cmd_update: 'Auf neueste Version aktualisieren',
96
- cmd_export_conversation: 'KI-Gesprächsaufzeichnungen exportieren',
97
- cmd_feedback: 'Feedback-Formular und lokalen Erinnerungsstatus konfigurieren',
98
- cmd_batch: 'OpenYida-Befehle im Batch ausführen',
99
- cmd_flash_to_prd: 'Flash Notes oder Meeting Notes in PRD-Prompt umwandeln',
100
- cmd_ai: 'Call Yida AI text and image recognition APIs',
101
- cmd_asset: 'Materialfähigkeit prüfen / Bild-URLs verifizieren / Assets auflösen',
102
- cmd_cdn: 'CDN-Bildverwaltung (Konfiguration/Upload/Aktualisierung)',
103
- cmd_cdn_config: 'CDN / OSS Upload konfigurieren',
104
- cmd_cdn_upload: 'Bild zu CDN hochladen',
105
- cmd_cdn_refresh: 'CDN-Cache aktualisieren',
106
- quickstart_title: 'Schnellstart',
107
- quickstart_app_name: 'Anwesenheitsverwaltung',
108
- quickstart_form_name: 'Mitarbeiterinfo',
109
- docs: '📚 Dokumentation:',
110
- },
111
-
112
- // ── bin/yida.js ────────────────────────────────────
113
- cli: {
114
- integration_help: 'Verwendung: openyida integration <create|list|enable|disable> ...',
115
- integration_unknown: 'Unbekannter integration-Unterbefehl: {0}',
116
- integration_help_hint: 'Führen Sie openyida integration --help aus, um verfügbare Unterbefehle anzuzeigen',
117
- integration_list_usage: 'Verwendung: openyida integration list <appType> [--form-uuid <uuid>] [--status y|n] [--key <kw>] [--page <n>] [--size <n>] [--json]',
118
- integration_list_example: 'Beispiel: openyida integration list APP_XXX --form-uuid FORM-XXX --json',
119
- integration_enable_usage: 'Verwendung: openyida integration enable <appType> <formUuid> <processCode>',
120
- integration_enable_example: 'Beispiel: openyida integration enable APP_XXX FORM-XXX LPROC-XXX',
121
- integration_disable_usage: 'Verwendung: openyida integration disable <appType> <formUuid> <processCode>',
122
- integration_disable_example: 'Beispiel: openyida integration disable APP_XXX FORM-XXX LPROC-XXX',
123
- compile_usage: 'Verwendung: openyida compile <sourceFile>',
124
- compile_example: 'Beispiel: openyida compile pages/src/home.canvas.jsx',
125
- check_page_usage: 'Usage: openyida check-page <sourceFile> [--compat] [--json]',
126
- check_page_example: 'Example: openyida check-page pages/src/home.canvas.jsx --json',
127
- generate_page_usage: 'Usage: openyida generate-page <template> --output pages/src/home.canvas.jsx [--spec .cache/openyida/page-specs/home.json] [--theme-scope page|app] [--compile]',
128
- generate_page_example: 'Example: openyida generate-page product-homepage --brand-name OpenKuma --brand-initials OK --theme-scope page --output pages/src/home.canvas.jsx --compile',
129
- },
130
-
131
- // ── lib/integration/integration-check.js ─────────
132
- integration_check: {
133
- result_sheet: 'Result',
134
- header_app: 'App',
135
- header_form_title: 'Form name',
136
- header_form_uuid: 'Form ID',
137
- header_flow_name: 'Automation name',
138
- header_process_code: 'Automation ID',
139
- header_flow_status: 'Automation status',
140
- header_event_name: 'Trigger event',
141
- header_last_action: 'Last action',
142
- header_modifier: 'Modifier',
143
- header_modified_time: 'Modified time',
144
- header_abnormal_log_count: 'Abnormal log count',
145
- header_proc_inst_id: 'Run instance ID',
146
- header_form_inst_id: 'Form instance ID',
147
- header_execution_status: 'Execution status',
148
- header_exception: 'Exception',
149
- header_diagnosis: 'Diagnosis',
150
- header_recommendation: 'Recommendation',
151
- header_start_time: 'Start time',
152
- header_finish_time: 'Finish time',
153
- header_elapsed_ms: 'Elapsed (ms)',
154
- no_abnormal: 'No abnormal execution logs found',
155
- app_failed: 'App check failed: {0}',
156
- summary: 'Check complete: {0} apps, {1} automations, {2} with abnormal logs',
157
- apps_failed: '{0} app(s) failed to check. See JSON output or error summary for details.',
158
- no_logs: 'No abnormal execution logs found.',
159
- usage: 'openyida integration check <appType...> [--json] [--output result.xlsx] [--no-progress] [--flow-types 1,2,3,5,6] [--log-page-size 10] [--max-log-pages 1]',
160
- example: 'openyida integration check APP_XXX --output project/output/automation-errors.xlsx',
161
- missing_app: 'Missing appType. Usage: openyida integration check <appType...>',
162
- banner_title: 'Check integration automation abnormal logs',
163
- status_filter: 'Execution status filter: {0}',
164
- checking_app: 'Checking app: {0}',
165
- progress: 'Progress {0}{1}',
166
- current: ', current: {0}',
167
- excel_exported: 'Excel exported: {0}',
168
- },
169
-
170
- // ── lib/env.js ─────────────────────────────────────
171
- env: {
172
- title: ' openyida env - KI-Tool-Umgebungserkennung',
173
- detecting: ' KI-Tool-Umgebung wird erkannt...',
174
- tool_label: ' KI-Tool: {0}',
175
- login_label: ' Anmeldestatus: {0}',
176
- logged_in: 'Angemeldet',
177
- not_logged_in: 'Nicht angemeldet',
178
- corp_label: ' Organisation: {0}',
179
- version_label: ' Version: {0}',
180
- },
181
-
182
- // ── lib/auth/token-auth.js ────────────────────────────────────
183
- login: {
184
- title: '🔐 Yida-Anmeldung',
185
- cache_found: ' Zwischengespeicherte Anmeldedaten gefunden, Validierung läuft...',
186
- cache_valid: '✅ Zwischengespeicherte Anmeldedaten sind gültig!',
187
- cache_invalid: ' Zwischengespeicherte Anmeldedaten sind abgelaufen. Erneute Anmeldung erforderlich.',
188
- starting_qr: ' QR-Code-Anmeldung wird gestartet...',
189
- success: '✅ Anmeldung erfolgreich!',
190
- failed: '❌ Anmeldung fehlgeschlagen: {0}',
191
- usage: 'Verwendung: openyida login',
192
- },
193
-
194
- // ── lib/logout.js ───────────────────────────────────
195
- logout: {
196
- title: '🚪 Yida-Abmeldung',
197
- success: '✅ Abmeldung erfolgreich! Anmeldedaten wurden gelöscht.',
198
- no_cache: ' Keine Anmeldedaten gefunden. Bereits abgemeldet.',
199
- failed: '❌ Abmeldung fehlgeschlagen: {0}',
200
- },
201
-
202
- // ── lib/create-app.js ───────────────────────────────
203
- create_app: {
204
- usage: 'Verwendung: openyida create-app "<App-Name>" oder openyida create-app --name "<App-Name>" [--desc "..."] [--theme deepBlue]',
205
- example: 'Beispiel: openyida create-app --name "Meine App" --desc "App-Beschreibung" --theme deepBlue',
206
- title: ' create-app - Yida-App-Erstellungstool',
207
- app_name: '\n App-Name: {0}',
208
- app_desc: ' Beschreibung: {0}',
209
- app_icon: ' Symbol: {0} ({1})',
210
- app_theme: ' Thema: colour={0} navTheme={1} layout={2}',
211
- step_create: '\n🚀 App wird erstellt...',
212
- sending_request: ' createApp-Anfrage wird gesendet...',
213
- success: ' ✅ App erfolgreich erstellt!',
214
- app_id: ' App-ID: {0}',
215
- failed: ' ❌ Erstellung fehlgeschlagen: {0}',
216
- error: '\n❌ Erstellungsfehler: {0}',
217
- },
218
-
219
- // ── lib/create-form.js ──────────────────────────────
220
- create_form: {
221
- usage: 'Verwendung: openyida create-form <appType> <Seitenname> [Schema-JSON]',
222
- title: ' create-form - Yida-Formularseiten-Erstellungs-/Aktualisierungstool',
223
- app_id: '\n App-ID: {0}',
224
- page_name: ' Seitenname: {0}',
225
- step_create: '\n📝 Formularseite wird erstellt...',
226
- sending_request: ' saveFormSchema-Anfrage wird gesendet...',
227
- success: ' ✅ Formularseite erfolgreich erstellt!',
228
- form_uuid: ' Formular-UUID: {0}',
229
- failed: ' ❌ Erstellung fehlgeschlagen: {0}',
230
- error: '\n❌ Erstellungsfehler: {0}',
231
- step_check_data: '\n🔍 Schritt {0}: Prüfen, ob das Formular vorhandene Daten hat',
232
- data_exists_warning: ' ⚠️ Dieses Formular enthält bereits {0} Datensätze! Eine Strukturänderung kann verursachen:',
233
- data_exists_impact: ' - Verlust oder Beschädigung historischer Daten\n - Anomalien im Prozessstatus\n - Dateninkonsistenz',
234
- data_exists_abort: ' ❌ Änderung abgebrochen. Fügen Sie --force hinzu, um fortzufahren.',
235
- data_exists_confirm_message: 'Dieses Formular hat {0} vorhandene Datensätze. Eine Strukturänderung kann bestehende Daten beeinflussen. Fügen Sie --force zur Bestätigung hinzu.',
236
- data_exists_force_hint: 'Verwendung: openyida create-form update <appType> <formUuid> <changesJson> --force',
237
- data_exists_force_proceed: ' ⚠️ --force Modus: Bestätigung übersprungen, erzwungene Strukturänderung mit {0} vorhandenen Datensätzen',
238
- data_check_empty: ' ✅ Formular hat keine Daten, Änderung sicher möglich',
239
- data_check_failed: ' ⚠️ Datenprüfung fehlgeschlagen, Änderung wird fortgesetzt',
240
- },
241
-
242
- // ── lib/create-page.js ──────────────────────────────
243
- create_page: {
244
- usage: 'Verwendung: openyida create-page <appType> <Seitenname> [--mode dashboard]',
245
- example: 'Beispiel: openyida create-page APP_XXX "Dashboard" --mode dashboard',
246
- title: ' create-page - Yida-Benutzerdefinierte-Seiten-Erstellungstool',
247
- app_id: '\n App-ID: {0}',
248
- page_name: ' Seitenname: {0}',
249
- step_create: '\n📄 Benutzerdefinierte Seite wird erstellt...',
250
- success: ' ✅ Benutzerdefinierte Seite erfolgreich erstellt!',
251
- step_dashboard_config: '\n🖥️ Step 3: Configure dashboard fullscreen mode',
252
- dashboard_config_ok: ' ✅ Dashboard mode configured: top nav hidden, chromeless custom URL enabled',
253
- dashboard_config_failed: ' ⚠️ Dashboard mode config failed: {0}',
254
- err_mode_invalid: 'Unsupported page mode: {0}',
255
- mode_hint: 'Available modes: default, dashboard',
256
- form_uuid: ' Seiten-UUID: {0}',
257
- failed: ' ❌ Erstellung fehlgeschlagen: {0}',
258
- error: '\n❌ Erstellungsfehler: {0}',
259
- },
260
-
261
- // ── lib/get-schema.js ───────────────────────────────
262
- get_schema: {
263
- usage: 'Verwendung: openyida get-schema <appType> <formUuid>',
264
- title: ' get-schema - Yida-Formular-Schema-Abruftool',
265
- app_id: '\n App-ID: {0}',
266
- form_uuid: ' Formular-UUID: {0}',
267
- step_get: '\n📋 Formular-Schema wird abgerufen...',
268
- success: ' ✅ Schema erfolgreich abgerufen!',
269
- failed: ' ❌ Abruf fehlgeschlagen: {0}',
270
- error: '\n❌ Abruffehler: {0}',
271
- },
272
-
273
- // ── lib/check-update.js ─────────────────────────────
274
- check_update: {
275
- new_version: '\n🎉 Neue Version verfügbar: {0} → {1}',
276
- update_cmd: ' Aktualisierung: npm install -g openyida',
277
- check_failed: 'Versionsüberprüfung fehlgeschlagen: {0}',
278
- },
279
-
280
- // ── lib/update.js ──────────────────────────────────
281
- update: {
282
- checking: 'Neueste Version wird überprüft...',
283
- fetch_failed: 'Neueste Version konnte nicht abgerufen werden. Bitte Netzwerkverbindung prüfen',
284
- already_latest: 'Bereits auf dem neuesten Stand ({0}), kein Update erforderlich',
285
- found_new_version: 'Neue Version gefunden: {0} (aktuell: {1})',
286
- installing: 'openyida@latest wird installiert...',
287
- success: 'Update erfolgreich! Aktuelle Version: {0}',
288
- install_failed: 'Update fehlgeschlagen: {0}',
289
- manual_hint: 'Bitte manuell ausführen: npm install -g openyida@latest',
290
- available: 'Update verfügbar',
291
- up_to_date: 'aktuell',
292
- label_install: 'Install',
293
- label_channel: 'Channel',
294
- label_version: 'Version',
295
- label_update: 'Update',
296
- done: 'Update abgeschlossen!',
297
- done_hint: 'Führen Sie openyida --version aus, um die neue Version zu bestätigen',
298
- },
299
-
300
- // ── lib/export-app.js ───────────────────────────────
301
- export_app: {
302
- usage: 'Verwendung: openyida export-app <appType>',
303
- title: ' export-app - Yida-App-Exporttool',
304
- app_id: '\n App-ID: {0}',
305
- step_export: '\n📦 App wird exportiert...',
306
- success: ' ✅ App erfolgreich exportiert!',
307
- failed: ' ❌ Export fehlgeschlagen: {0}',
308
- error: '\n❌ Exportfehler: {0}',
309
- },
310
-
311
- // ── lib/import-app.js ───────────────────────────────
312
- import_app: {
313
- usage: 'Verwendung: openyida import-app <Dateipfad>',
314
- title: ' import-app - Yida-App-Importtool',
315
- file_path: '\n Dateipfad: {0}',
316
- step_import: '\n📥 App wird importiert...',
317
- success: ' ✅ App erfolgreich importiert!',
318
- failed: ' ❌ Import fehlgeschlagen: {0}',
319
- error: '\n❌ Importfehler: {0}',
320
- },
321
-
322
- // ── lib/get-page-config.js ──────────────────────────
323
- get_page_config: {
324
- usage: 'Verwendung: openyida get-page-config <appType> <formUuid>',
325
- title: ' get-page-config - Yida-Seitenkonfigurationsabruftool',
326
- app_id: '\n App-ID: {0}',
327
- form_uuid: ' Formular-UUID: {0}',
328
- step_get: '\n🔍 Seitenkonfiguration wird abgerufen...',
329
- success: ' ✅ Konfiguration erfolgreich abgerufen!',
330
- failed: ' ❌ Abruf fehlgeschlagen: {0}',
331
- error: '\n❌ Abruffehler: {0}',
332
- },
333
-
334
- // ── lib/save-share-config.js ────────────────────────
335
- save_share_config: {
336
- usage: 'Verwendung: openyida save-share-config <appType> <formUuid> <openUrl> <isOpen> [openAuth]',
337
- title: ' save-share-config - Yida-Öffentlicher-Zugang-Konfigurationsspeichertool',
338
- app_id: '\n App-ID: {0}',
339
- form_uuid: ' Formular-UUID: {0}',
340
- open_url: ' Öffentliche URL: {0}',
341
- is_open: ' Öffentlich: {0}',
342
- open_auth: ' Auth erforderlich: {0}',
343
- step_validate: '\n📋 Step 0: Parameter validieren',
344
- validate_ok: ' ✅ Validierung erfolgreich',
345
- validate_failed: ' ❌ Validierung fehlgeschlagen: {0}',
346
- step_save: '\n💾 Step 2: Öffentliche Zugang-Konfiguration speichern',
347
- sending_request: ' saveShareConfig-Anfrage wird gesendet...',
348
- save_ok: ' ✅ Konfiguration erfolgreich gespeichert!',
349
- save_ok_msg: 'Öffentliche Zugang-Konfiguration gespeichert',
350
- save_failed: ' ❌ Speichern fehlgeschlagen: {0}',
351
- save_failed_msg: 'Speichern fehlgeschlagen',
352
- err_is_open_invalid: 'isOpen muss y oder n sein. Aktueller Wert: {0}',
353
- err_open_auth_invalid: 'openAuth muss y oder n sein. Aktueller Wert: {0}',
354
- err_open_url_required: 'openUrl ist erforderlich, wenn öffentlicher Zugang aktiviert ist',
355
- err_open_url_prefix: 'openUrl muss mit /o/ beginnen. Aktueller Wert: {0}',
356
- err_open_url_chars: 'openUrl-Pfad unterstützt nur a-z A-Z 0-9 _ - und / als Segmenttrenner. Aktueller Wert: {0}',
357
- err_open_url_empty: 'openUrl-Pfad darf nicht leer sein: {0}',
358
- },
359
-
360
- // ── lib/update-form-config.js ──────────────────────
361
- update_form_config: {
362
- usage: 'Verwendung: openyida update-form-config <appType> <formUuid> <isRenderNav> <title>',
363
- title: ' update-form-config - Yida-Formularkonfigurationsaktualisierungstool',
364
- app_id: '\n App-ID: {0}',
365
- form_uuid: ' Formular-UUID: {0}',
366
- is_render_nav: ' Nav anzeigen: {0}',
367
- page_title: ' Seitentitel: {0}',
368
- step_update: '\n💾 Step 2: Formularkonfiguration aktualisieren',
369
- sending_request: ' updateFormSchemaInfo-Anfrage wird gesendet...',
370
- update_ok: ' ✅ Konfiguration erfolgreich aktualisiert!',
371
- nav_shown: 'Obere Navigation angezeigt',
372
- nav_hidden: 'Obere Navigation ausgeblendet',
373
- update_failed: ' ❌ Aktualisierung fehlgeschlagen: {0}',
374
- update_failed_msg: 'Aktualisierung fehlgeschlagen',
375
- },
376
-
377
- // ── lib/verify-short-url.js ────────────────────────
378
- verify_short_url: {
379
- usage: 'Verwendung: openyida verify-short-url <appType> <formUuid> <url>',
380
- title: ' verify-short-url - Yida-URL-Überprüfungstool',
381
- app_id: '\n App-ID: {0}',
382
- form_uuid: ' Formular-UUID: {0}',
383
- step_validate: '\n📋 Step 0: URL-Format validieren',
384
- validate_ok: ' ✅ Format validiert',
385
- validate_failed: ' ❌ Validierung fehlgeschlagen: {0}',
386
- step_verify: '\n🔍 Step 2: URL überprüfen',
387
- sending_request: ' verifyShortUrl-Anfrage wird gesendet...',
388
- url_available: ' ✅ URL ist verfügbar!',
389
- open_available_msg: 'Diese öffentliche Zugang-URL ist verfügbar',
390
- share_available_msg: 'Diese interne Freigabe-URL ist verfügbar',
391
- url_taken: ' ❌ URL ist bereits vergeben',
392
- url_taken_msg: 'Diese Kurz-URL ist bereits vergeben',
393
- verify_failed: ' ❌ Überprüfungsanfrage fehlgeschlagen',
394
- err_url_prefix: 'URL muss mit /o/ oder /s/ beginnen. Aktueller Wert: {0}',
395
- err_url_chars: 'URL-Pfad unterstützt nur a-z A-Z 0-9 _ - und / als Segmenttrenner. Aktueller Wert: {0}',
396
- err_url_empty: 'URL-Pfad darf nicht leer sein: {0}',
397
- },
398
-
399
- // ── lib/copy.js ────────────────────────────────────
400
- copy: {
401
- title: ' openyida copy - Yida-Arbeitsverzeichnis initialisieren',
402
- package_root: '\n📦 Paketstamm: {0}',
403
- dest_root: '🤖 Zielverzeichnis: {0}',
404
- dest_empty_flatten: '📂 Zielverzeichnis ist leer, project/-Inhalte werden direkt hineinkopiert (kein project/-Unterverzeichnis)',
405
- force_mode: '⚠️ --force-Modus: Zielverzeichnis wird vor dem Kopieren geleert',
406
- no_package: '\n❌ openyida-Paketverzeichnis nicht gefunden',
407
- no_package_hint1: ' Stellen Sie sicher, dass openyida global installiert ist:',
408
- no_package_hint2: ' npm install -g openyida',
409
- no_active_tool: '\n❌ Keine aktive KI-Tool-Umgebung erkannt',
410
- supported_tools: ' Unterstützte Tools: Wukong, Codex, OpenCode, Claude Code, Aone Copilot, Cursor, Qoder',
411
- current_result: '\n Aktuelle Erkennungsergebnisse:',
412
- force_hint: '\n Um in das aktuelle Verzeichnis zu kopieren:\n openyida copy --force',
413
- force_cmd: ' openyida copy --force',
414
- copying_label: '\n📂 {0} wird kopiert...',
415
- creating_symlink: '\n📂 yida-skills/-Symlink wird erstellt...',
416
- file_copied: ' Kopiert: {0}',
417
- cleared: ' 🗑️ Geleert: {0}',
418
- symlink_removed: ' 🗑️ Alter Symlink entfernt: {0}',
419
- dir_deleted: ' 🗑️ Verzeichnis gelöscht: {0}',
420
- removed: ' 🗑️ Entfernt: {0}',
421
- symlink_created: ' 🔗 Symlink: {0} -> {1}',
422
- symlink_label: 'Symlink',
423
- done: '✅ Fertig!',
424
- files_copied: ' Kopierte Dateien: {0}',
425
- files_count: '{0} Dateien',
426
- symlinks_created: ' Erstellte Symlinks: {0}',
427
- result_symlink: ' {0} → {1} (Symlink)',
428
- result_copy: ' {0} → {1} ({2} Dateien)',
429
- wukong_skills_cleanup: '\n🗑️ Wukong-Umgebung: yida-skills/-Symlink wird bereinigt...',
430
- wukong_skills_cleaned: 'bereinigt',
431
- wukong_skills_not_found: ' ℹ️ Kein yida-skills/-Symlink oder -Verzeichnis gefunden: {0}',
432
- remove_failed: ' ❌ Entfernen fehlgeschlagen: {0} ({1})',
433
- symlink_fallback_copy: ' ⚠️ Windows-Symlink-Erstellung fehlgeschlagen (Admin-Rechte erforderlich), Verzeichniskopie wird verwendet: {0}',
434
- symlink_failed: ' ❌ Symlink-Erstellung fehlgeschlagen: {0} ({1})',
435
- },
436
-
437
- // ── lib/publish.js ─────────────────────────────────
438
- generate_page: {
439
- spec_not_found: 'Spec file not found: {0}',
440
- spec_invalid: 'Failed to parse spec JSON: {0}',
441
- unknown_template: 'Unknown page template: {0}',
442
- available_templates: 'Available templates: {0}',
443
- template_not_found: 'Template file not found: {0}',
444
- done: 'Page generated: {0}',
445
- hint: 'Next run openyida compile <file>, or pass --compile to compile immediately.',
446
- success: 'Page generation complete',
447
- },
448
- page_size: {
449
- large_source: 'Große Seitenquelle erkannt: {0} ({1}, ca. {2} Zeilen)',
450
- long_line_hint: 'Sehr lange Einzelzeile erkannt (ca. {0} Zeichen), meist minifizierter Vendor-Code oder base64; bitte auslagern.',
451
- base64_hint: 'Langer inline base64-Inhalt erkannt; bitte nach CDN/OSS hochladen und per URL referenzieren.',
452
- memory_hint: 'Publish/compile hält Source, Build-Ausgabe, Minify-Ausgabe und Schema-Kopien im Speicher; Vendor/base64 bitte aufteilen oder mit this.utils.loadScript laden.',
453
- windows_hint: 'Unter Windows große JSX-Dateien nicht mit PowerShell Get-Content -Raw + ConvertTo-Json schreiben; Node fs.writeFileSync/appendFileSync in Teilen verwenden.',
454
- },
455
- publish: {
456
- title: ' yida-publish - Yida-Seitenveröffentlichungstool',
457
- platform: ' Plattform: {0}',
458
- app_id: ' App-ID: {0}',
459
- form_uuid: ' Formular-ID: {0}',
460
- source_file: ' Quelle: {0}',
461
- compiled_file: ' Ausgabe: {0}',
462
- step_lint: '\n🔍 Step 0: Yida Coding-Standards Vorprüfung\n',
463
- lint_title: '⚠️ Yida page code check:',
464
- lint_error_line: ' ❌ Zeile {0}: {1}',
465
- lint_warning_line: ' ⚠️ Zeile {0}: {1}',
466
- lint_event_function: 'Event-Bindung verwendet function, verwenden Sie stattdessen Arrow-Funktion (e) => { this.xxx() }',
467
- lint_missing_render_jsx: 'Export function renderJsx() fehlt; Yida-Benutzerdefinierte Seiten müssen renderJsx exportieren',
468
- lint_import_require: 'Import/require gefunden. Yida-Benutzerdefinierte Seiten können keine Module importieren; laden Sie Drittanbieter-Skripte mit this.utils.loadScript',
469
- lint_react_hooks: 'React Hooks gefunden. Die Yida-Laufzeit verwendet den React-16-Klassenkomponentenstil und unterstützt useState/useEffect nicht',
470
- lint_export_default: 'Export default gefunden. Yida benötigt benannte Exporte wie export function renderJsx/didMount',
471
- lint_jsx_extension: 'Diese .js-Datei enthält JSX; bevorzugen Sie .jsx für Quelldateien. Die kompilierte Ausgabe bleibt .js',
472
- lint_event_direct_method: 'Event-Bindung übergibt this.xxx direkt und verliert this; verwenden Sie (e) => { this.xxx(e); }',
473
- lint_event_bind_this: 'Event-Bindung verwendet .bind(this); verwenden Sie stattdessen (e) => { this.xxx(e); }',
474
- lint_lifecycle_case: 'Lifecycle-Export {0} erkannt; Yida erkennt nur {1} (Groß-/Kleinschreibung beachten)',
475
- lint_react_lifecycle_method: 'React-Lifecycle {0} erkannt; exportieren Sie {1} für Yida-Benutzerdefinierte Seiten',
476
- lint_event_lowercase: 'Event-Prop in Kleinbuchstaben {0} erkannt; React/Yida wird ihn nicht binden. Verwenden Sie {1}',
477
- lint_event_call_result: 'Event-Bindung ruft eine Funktion auf oder ist kein Ausdrucks-Handler; verwenden Sie (e) => { self.xxx(e); }',
478
- lint_event_noop_arrow: 'Event-Arrow-Funktion referenziert einen Handler, ohne ihn aufzurufen; verwenden Sie (e) => { self.xxx(e); }',
479
- lint_button_missing_handler: 'Sichtbarer <button> hat weder onClick/onMouseDown/onKeyDown noch disabled; binden Sie einen Event-Handler oder verwenden Sie span/div für statische Labels',
480
- lint_array_callback_function: '.{0}(function ...) kann this in Callbacks verlieren; verwenden Sie stattdessen .{0}((item) => ...)',
481
- lint_foreach_callback_function: '.forEach(function ...) kann this in Callbacks verlieren; bevorzugen Sie .forEach((item) => ...)',
482
- lint_controlled_input: 'input verwendet den kontrollierten value-Modus. Yida-Seiten sollten defaultValue + onChange verwenden, um _customState zu aktualisieren',
483
- lint_native_select_ui: 'Natives <select> gefunden. In normalen benutzerdefinierten Seiten verwenden Sie ein button+menu+option-Dropdown mit Pfeil, Auswahlmarkierung und Focus-Reset; rendern Sie ein Formular-SelectField nicht direkt als Seitenfilter.',
484
- lint_iframe_self_navigation: 'Yida-Benutzerdefinierte Seiten laufen in einer iframe. Verwenden Sie target="_top"/target="_blank" oder window.top.location für die Navigation zu Yida-Seiten, um verschachtelte Seiten zu vermeiden.',
485
- lint_page_size_limit: 'pageSize={0} überschreitet das Yida-API-Limit von 100; verwenden Sie 100 oder weniger',
486
- lint_page_size_recommend: 'pageSize={0} ist groß; der empfohlene Wert ist 50 (beste Performance, maximal 100). Bevorzugen Sie 10/20/50',
487
- lint_searchformdata_http_post: 'Ein direkter searchFormDatas.json-Aufruf muss GET + Query-Parameter verwenden (formUuid/appType in die URL-Query). POST mit formUuid im Body löst „参数校验失败formUuid" aus und Dashboards/Listen zeigen nur Nullen',
488
- lint_searchformdata_http_pagenumber: 'searchFormDatas.json paginiert mit currentPage (nicht pageNumber); pageNumber bricht die Paginierung',
489
- lint_searchformdata_http_unwrap: 'Die Browser-Antwort von searchFormDatas.json verschachtelt die Liste unter content.data ({ content: { data: [...] } }); nur json.data zu lesen ergibt 0 Zeilen — mit (json.content && json.content.data) entpacken',
490
- lint_setstate_non_timestamp: 'this.setState schreibt ein Nicht-timestamp-Feld. Fachlicher Zustand benutzerdefinierter Seiten sollte in _customState liegen und über forceUpdate()/setCustomState() aktualisiert werden; this.setState sollte nur das Vertragsfeld timestamp tragen',
491
- lint_self_binding_missing: 'renderJsx verwendet this, ohne var self = this; zu deklarieren. Fügen Sie var self = this; am Anfang von renderJsx hinzu und verwenden Sie self in Closures/Callbacks, um den Verlust von this zu vermeiden',
492
- lint_echarts_dom_ready: 'echarts.init ist nicht in setTimeout gekapselt; der Container ist möglicherweise noch nicht gemountet, sodass das Diagramm nicht gerendert wird. Verwenden Sie setTimeout(function(){ /* echarts.init */ }, 300)',
493
- lint_yida_api_catch: 'Für den API-Aufruf this.utils.yida wurde kein .catch() erkannt; fügen Sie Fehlerbehandlung hinzu und zeigen Sie dem Benutzer einen Toast',
494
- lint_echarts_legacy_map_china: 'ECharts 5 unterstützt echarts/map/js/china.js nicht mehr. Laden Sie DataV GeoJSON und rufen Sie stattdessen echarts.registerMap("china", geoJson) auf',
495
- lint_echarts_rich_label_formatter: 'Von ECharts label.formatter zurückgegebene Rich-Text-Templates sind in Yida-Benutzerdefinierten Seiten instabil; bevorzugen Sie einfache formatter-Strings oder vorab berechneten Label-Text',
496
- lint_const_let: 'Verwendet const/let-Deklaration, empfohlen auf var zu ändern (Yida-Laufzeitkompatibilität)',
497
- lint_computed_property: 'Verwendet ES6 berechneten Eigenschaftsnamen { [key]: value }, wird von der Yida JS-Engine nicht unterstützt und verursacht stilles Fehlschlagen. Verwenden Sie var obj = {}; obj[key] = value;',
498
- lint_pad_method: 'Verwendet String.{0}(), wird von der Yida JS-Engine nicht unterstützt und verursacht stilles Abbrechen von Promise-Callbacks. Verwenden Sie den ternären Operator: x < 10 ? "0" + x : "" + x',
499
- lint_large_then_callback: 'Promise .then()-Callback ist zu groß ({0} Zeilen, empfohlenes Maximum {1} Zeilen), kann stilles Abschneiden verursachen. Extrahieren Sie die Logik in eine separate Export-Funktion',
500
- lint_fix_errors: '❌ Bitte beheben Sie die obigen Fehler vor der Veröffentlichung',
501
- lint_skip_hint: '💡 Fügen Sie --skip-lint hinzu, um die Prüfung zu überspringen',
502
- lint_passed: ' ✅ Code-Prüfung bestanden\n',
503
- lint_skipped: '\n⏭️ Code-Vorprüfung übersprungen (--skip-lint)\n',
504
- duplicate_source_mismatch: ' ⚠️ Found another copy with the same file name but different content. Publishing: {0}; other copy: {1}',
505
- data_source_fetching: ' Reading existing page data sources...',
506
- data_source_preserved: ' ✅ Preserved existing page data sources: {0}',
507
- data_source_none: ' No custom page data sources to preserve',
508
- data_source_fetch_failed: 'Could not read the existing page Schema, so publishing stopped to avoid clearing existing data sources: {0}',
509
- target_checking: ' Checking publish target type...',
510
- target_check_forced: ' ⚠️ Skipped publish target type check (--force)',
511
- target_check_ok: ' ✅ Publish target confirmed: {0} ({1})',
512
- target_check_failed: 'Could not verify publish target: {0}',
513
- target_not_found: 'Publish target was not found in app navigation: {0}',
514
- target_type_invalid: 'Publish target is not a custom display page: {0} current type is {1}',
515
- target_type_hint: 'The current target "{0}" does not look like a custom page (type: {1}). Do not publish JSX to data forms or process forms.',
516
- target_list_hint: 'Run openyida list-forms {0} --keyword <page name>, then choose a custom page formUuid with formType=display.',
517
- target_force_hint: 'Append --force only when you intentionally bypass this guard; it overwrites the target Schema and should be used only for a known custom page.',
518
- step_compile: '\n📦 Step 1: Quellcode kompilieren und Schema erstellen\n',
519
- reading_source: '[1/4] {0}-Quellcode wird gelesen...',
520
- compiling: '[2/4] Babel kompiliert {0}...',
521
- compile_failed: ' ❌ Kompilierung fehlgeschlagen: {0}',
522
- compile_location: '\n Ort: Zeile {0}, Spalte {1}',
523
- compile_error_code: ' Fehlercode: {0}',
524
- minifying: '[3/4] UglifyJS minimiert → {0}...',
525
- minify_failed: ' Minimierung fehlgeschlagen: {0}',
526
- compile_done: ' ✅ Kompilierung abgeschlossen: {0}',
527
- building_schema: '[4/4] Schema wird erstellt...',
528
- formula_prefix_fixed: ' 🔧 {0} Untertabellen-Formelpräfix-Referenz(en) automatisch korrigiert',
529
- schema_built: ' ✅ Schema erfolgreich erstellt!',
530
- step_canvas_compile: '\n📦 Step 1: Code-Canvas-Quelle kompilieren\n',
531
- canvas_compiling: ' 🎨 Code-Canvas-Quelle wird lokal kompiliert...',
532
- canvas_compile_done: ' ✅ Code Canvas kompiliert!',
533
- canvas_compile_failed: ' ❌ Code-Canvas-Kompilierung fehlgeschlagen: {0}',
534
- step_login: '\n🔑 Step 2: Anmeldedaten lesen',
535
- step_publish: '\n📤 Step 3: Schema veröffentlichen\n',
536
- publish_failed: '\n❌ Veröffentlichung fehlgeschlagen: {0}',
537
- schema_published: ' ✅ Schema erfolgreich veröffentlicht!',
538
- step_config: '\n⚙️ Step 4: Formularkonfiguration aktualisieren\n',
539
- success: ' ✅ Erfolgreich veröffentlicht!',
540
- config_failed: ' ⚠️ Konfigurationsaktualisierung fehlgeschlagen: {0}',
541
- schema_ok_config_failed: 'Schema published, but config update failed',
542
- step_health_check: '\n🩺 Step 5: Health check published page\n',
543
- health_check_ok: ' ✅ Health check passed: HTTP {0}',
544
- health_check_failed: ' ⚠️ Health check failed: HTTP {0} {1}',
545
- exception: '\n❌ Veröffentlichungsfehler: {0}',
546
- source_not_found: '❌ Quelldatei nicht gefunden: {0}',
547
- usage: 'Verwendung: openyida publish <Quelldatei> <appType> <formUuid> [--health-check] [--canvas]',
548
- example: 'Beispiel: openyida publish pages/src/xxx.js APP_XXX FORM-XXX --health-check',
549
- },
550
-
551
- // ── token-only disabled QR login ────────────────────────────────
552
- qr_login: {
553
- title: '🔐 Yida Terminal-QR-Code-Anmeldung',
554
- step_init: ' Step 1: Sitzung wird initialisiert...',
555
- step_get_qr: ' Step 2: QR-Code wird abgerufen...',
556
- scan_hint: ' 📱 Scannen Sie den QR-Code unten mit DingTalk:',
557
- browser_alternative: ' 💡 If this is not a cloud/remote machine, use browser login instead; if QR scan fails, try: {0}',
558
- qr_url_label: ' QR-Code-URL: {0}',
559
- waiting_scan: ' ⏳ Warten auf Scan (bis zu 2 Minuten)...',
560
- scanned_confirm: ' ✅ QR-Code gescannt! Bitte bestätigen Sie die Anmeldung auf Ihrem Telefon...',
561
- scan_success: ' ✅ Scan bestätigt!',
562
- step_exchange: ' Step 4: Anmeldedaten werden ausgetauscht...',
563
- step_get_corps: ' Step 5: Organisationsliste wird abgerufen...',
564
- step_switch_corp: ' Step 7: Zur ausgewählten Organisation wechseln...',
565
- only_one_corp: ' ✅ Eine Organisation erkannt: {0}, automatisch ausgewählt',
566
- select_corp_prompt: ' 🏢 Mehrere Organisationen gefunden, bitte wählen Sie eine:',
567
- select_corp_input: ' Nummer eingeben (1-{0}): ',
568
- select_corp_invalid: ' ❌ Ungültige Eingabe, bitte eine Zahl zwischen 1 und {0} eingeben',
569
- target_corp_not_found: 'Die angegebene corpId wurde in den zugänglichen Organisationen nicht gefunden: {0}',
570
- corp_selected: ' ✅ Organisation ausgewählt: {0}',
571
- login_success: '✅ Anmeldung erfolgreich!',
572
- qrcode_fallback: ' ⚠️ qrcode-Paket nicht installiert, besuchen Sie die URL unten manuell:',
573
- qrcode_render_failed: ' ⚠️ QR-Code-Rendering fehlgeschlagen ({0}), besuchen Sie die URL unten:',
574
- qr_expired: 'QR-Code abgelaufen, bitte erneut anmelden',
575
- poll_timeout: 'Scan-Timeout (2 Minuten), bitte erneut anmelden',
576
- no_corp_available: 'Keine zugänglichen Organisationen gefunden',
577
- no_csrf_in_cookie: 'Anmeldung erfolgreich, aber csrf_token nicht gefunden, bitte erneut versuchen',
578
- stdin_closed: 'Eingabestream geschlossen, Organisation kann nicht ausgewählt werden',
579
- },
580
-
581
- // ── scripts/postinstall.js ─────────────────────────
582
- postinstall: {
583
- welcome_title: ' 🎉 Willkommen bei OpenYida! ',
584
- install_success: ' ✅ Installation abgeschlossen! {0} Yida KI-Entwicklungstool ist bereit.',
585
- update_success: ' ✅ Update abgeschlossen! {0} OpenYida wurde auf die neueste Version aktualisiert.',
586
- ai_mode_title: ' 🚀 KI-Gesprächsmodus',
587
- ai_mode_desc: ' In Codex / Claude Code / Aone Copilot / Cursor direkt chatten:',
588
- prompt1: " 📋 'Erstelle mir ein Anwesenheitsverwaltungssystem mit Yida'",
589
- prompt2: " 💰 'Baue eine persönliche Gehaltsrechner-App'",
590
- prompt3: " 🏢 'Erstelle ein CRM-Kundenverwaltungssystem'",
591
- prompt4: " 🎂 'Mache eine Geburtstags-Mini-App'",
592
- steps_title: ' 📖 Erste Schritte',
593
- step1: ' {0}Step 1{1} KI-Coding-Tool öffnen (Codex / Claude Code / Cursor usw.)',
594
- step2: ' {0}Step 2{1} Gewünschte App in natürlicher Sprache beschreiben',
595
- step3: ' {0}Step 3{1} KI führt automatisch openyida-Befehle aus',
596
- step4: ' {0}Step 4{1} Yida-App-Link erhalten 🎉',
597
- commands_title: ' ⚡ Schnellbefehle',
598
- cmd_env: ' {0}openyida env{1} {2}# KI-Tool-Umgebung und Anmeldestatus erkennen{3}',
599
- cmd_login: ' {0}openyida login{1} {2}# Bei Yida anmelden{3}',
600
- cmd_help: ' {0}openyida --help{1} {2}# Alle Befehle anzeigen{3}',
601
- footer1: ' 📚 Dokumentation: https://github.com/openyida/openyida',
602
- footer2: ' 💬 Community: OpenYida-Community auf DingTalk beitreten',
603
- },
604
-
605
- // ── lib/cdn-*.js ───────────────────────────────────
606
- cdn: {
607
- config_load_error: 'CDN-Konfiguration konnte nicht geladen werden: {0}',
608
- config_saved: '✅ CDN-Konfiguration gespeichert in: {0}',
609
- config_usage: 'Verwendung: openyida cdn-config [Optionen]',
610
- config_file_path: '📄 Konfigurationsdatei: {0}',
611
- config_section_aliyun: '🔐 Alibaba Cloud-Anmeldedaten',
612
- config_section_cdn: '🌐 CDN-Konfiguration',
613
- config_section_oss: '📦 OSS-Konfiguration',
614
- config_section_upload: '📤 Upload-Konfiguration',
615
- config_cdn_domain: 'CDN-Domain',
616
- config_oss_region: 'OSS-Region',
617
- config_oss_bucket: 'OSS-Bucket',
618
- config_oss_endpoint: 'OSS-Endpunkt',
619
- config_upload_path: 'Upload-Pfad',
620
- config_compress: 'Bildkomprimierung',
621
- config_max_width: 'Maximale Breite',
622
- config_quality: 'Bildqualität',
623
- config_not_set: 'Nicht gesetzt',
624
- config_enabled: 'Aktiviert',
625
- config_disabled: 'Deaktiviert',
626
- config_status_valid: '✅ Konfiguration vollständig, einsatzbereit',
627
- config_status_invalid: '⚠️ Konfiguration unvollständig',
628
- config_missing: ' Fehlende Felder: {0}',
629
- config_updated: '✅ Konfiguration aktualisiert!',
630
- config_init_title: '🔧 CDN-Konfigurationsassistent',
631
- config_init_desc: 'Für CDN-Bild-Upload konfigurieren Sie Folgendes:',
632
- upload_no_files: '❌ Bitte Bilddateien zum Hochladen angeben',
633
- config_incomplete: '❌ CDN-Konfiguration unvollständig',
634
- missing_fields: ' Fehlende Felder: {0}',
635
- run_config_init: ' Bitte zuerst ausführen: openyida cdn-config --init',
636
- no_config: '❌ CDN-Konfiguration nicht gefunden',
637
- oss_sdk_required: '❌ ali-oss SDK fehlt',
638
- run_npm_install: ' Ausführen: npm install {0}',
639
- no_images_found: '❌ Keine unterstützten Bilddateien gefunden',
640
- uploading_images: '📤 {0} Bilder werden hochgeladen...',
641
- uploading_file: ' Hochladen: {0}',
642
- upload_success: ' ✅ {0}',
643
- upload_failed: ' ❌ {0} Upload fehlgeschlagen: {1}',
644
- upload_summary: '\n📊 Upload-Zusammenfassung',
645
- upload_success_count: ' Erfolgreich: {0}',
646
- upload_fail_count: ' Fehlgeschlagen: {0}',
647
- cdn_urls: '\n🔗 CDN-URLs:',
648
- upload_error: '❌ Upload fehlgeschlagen: {0}',
649
- refresh_no_targets: '❌ Bitte URLs oder Verzeichnisse zum Aktualisieren angeben',
650
- cdn_sdk_required: '❌ Alibaba Cloud CDN SDK fehlt',
651
- querying_quota: '📊 Aktualisierungskontingent wird abgefragt...',
652
- quota_info: ' URL-Aktualisierung: {0}/Tag, {1} verbleibend | Verzeichnisse: {2}/Tag, {3} verbleibend',
653
- refreshing_urls: '🔄 {0} URLs werden aktualisiert...',
654
- refreshing_paths: '🔄 {0} Verzeichnisse werden aktualisiert...',
655
- refresh_task_id: ' ✅ Aufgaben-ID: {0}',
656
- refresh_urls_failed: ' ❌ URL-Aktualisierung fehlgeschlagen: {0}',
657
- refresh_paths_failed: ' ❌ Verzeichnisaktualisierung fehlgeschlagen: {0}',
658
- refresh_summary: '\n📊 Aktualisierungszusammenfassung',
659
- url_refresh_success: ' ✅ URL-Aktualisierung erfolgreich, Aufgaben-ID: {0}',
660
- path_refresh_success: ' ✅ Verzeichnisaktualisierung erfolgreich, Aufgaben-ID: {0}',
661
- refresh_error: '❌ Aktualisierung fehlgeschlagen: {0}',
662
- file_not_found: '❌ Datei nicht gefunden: {0}',
663
- },
664
-
665
- // ── src/flash-note/flash-to-prd.ts ──────────────
666
- flashNote: {
667
- toPrd: {
668
- title: '📋 DingTalk Flash-Notiz zu PRD',
669
- help_usage: 'Verwendung: openyida flash-to-prd --file <Pfad> [--name <Projektname>]',
670
- help_usage2: ' openyida flash-to-prd --name <Projektname> (von stdin lesen)',
671
- help_args_title: 'Argumente:',
672
- help_arg_file: ' --file, -f <Pfad> Flash-Notiz-Dateipfad (.txt / .md)',
673
- help_arg_name: ' --name, -n <Name> Projektname (optional, automatisch extrahiert)',
674
- help_arg_max_tokens: ' --max-tokens <Anzahl> Max. AI-Ausgabe-Tokens (Standard 8000)',
675
- help_examples_title: 'Beispiele:',
676
- help_example1: ' openyida flash-to-prd --file ./meeting-notes.txt --name "Geraeteinspektion"',
677
- help_example2: ' cat meeting.txt | openyida flash-to-prd --name "Geraeteinspektion"',
678
- step_read: '[Schritt 1] Flash-Notiz-Inhalt wird gelesen...',
679
- file_not_found: 'Datei nicht gefunden: {0}',
680
- no_input: 'Kein Flash-Notiz-Inhalt angegeben. Verwenden Sie --file oder leiten Sie Inhalt ueber stdin weiter.',
681
- stdin_empty: 'Standardeingabe ist leer',
682
- read_success: '✅ Erfolgreich gelesen, {0} Zeichen',
683
- step_load_module: '[Schritt 2] Prompt-Builder-Modul wird geladen...',
684
- module_loaded_builtin: '✅ Integriertes Prompt-Modul geladen',
685
- module_loaded_local: '✅ Lokales Prompt-Modul geladen: {0}',
686
- module_not_found: '❌ build-flash-note-prompt.js Modul nicht gefunden',
687
- module_path_tried: ' Versuchter Pfad {0}: {1}',
688
- step_preprocess: '[Schritt 3] Vorverarbeitung + Meeting-Erkennung...',
689
- preprocess_result: ' Vorverarbeitung: {0} Zeichen -> {1} Zeichen',
690
- meeting_meta: ' Meeting-Metadaten: {0} Felder{1}',
691
- a1_sections: ' A1-Zusammenfassungsabschnitte: {0}{1}',
692
- speakers: ' Erkannte Sprecher: {0}{1}',
693
- speakers_with_role: ' (davon {0} mit Rollenangabe)',
694
- step_login: '[Schritt 4] Anmeldestatus wird geprueft...',
695
- no_login: ' Keine Anmeldesitzung gefunden, Anmeldung wird gestartet...',
696
- login_ready: '✅ Anmeldung bereit ({0})',
697
- step_ai: '[Schritt 5] AI wird aufgerufen um PRD zu generieren...',
698
- single_segment: ' Einzelsegment-Modus, Prompt-Laenge: {0} Zeichen',
699
- multi_segment: ' Mehrsegment-Modus, insgesamt {0} Segmente',
700
- extracting_segment: ' Segment {0}/{1} wird extrahiert ({2} Zeichen)...',
701
- merging_segments: ' Segmentergebnisse werden zusammengefuehrt...',
702
- ai_success: '✅ PRD erfolgreich generiert',
703
- ai_error: 'AI-API-Aufruf fehlgeschlagen: {0}',
704
- done: '✅ Flash-Notiz zu PRD Konvertierung abgeschlossen',
705
- done_project: ' Projektname: {0}',
706
- done_file: ' Ausgabedatei: {0}',
707
- done_size: ' Dateigroesse: {0} Zeichen',
708
- done_meeting: ' Meeting-Erkennung: {0} Metadaten, {1} A1-Abschnitte, {2} Sprecher',
709
- },
710
- },
711
- update_app: {
712
- layout_notice: 'Note: layoutDirection is consumed by the Yida app shell during creation/refresh. If the top action bar does not recover immediately after a backend switch, reopen the workbench or recreate the app with the target layout.',
713
- },
714
- aggregate_table: {
715
- usage: 'Usage: openyida aggregate-table <list|create-empty|inspect|preview|save|publish|status> <appType> ...',
716
- commands_title: 'Subcommands:',
717
- cmd_list: 'list <appType> [--keyword <text>] [--json] List aggregate tables in an app',
718
- cmd_create_empty: 'create-empty <appType> "<name>" [--open|--no-open] Create a blank aggregate table and return the designer URL',
719
- cmd_inspect: 'inspect <appType> <formUuid> [--json] Read aggregate table design config',
720
- cmd_preview: 'preview <appType> <formUuid> <design.json> [--json] Preview config without saving',
721
- cmd_save: 'save <appType> <formUuid> <design.json> [--json] Save an aggregate table draft',
722
- cmd_publish: 'publish <appType> <formUuid> <design.json> [--json] Publish aggregate table config',
723
- cmd_status: 'status <appType> <formUuid> [--json] Query aggregate table build status',
724
- examples_title: 'Examples:',
725
- example_list: 'openyida aggregate-table list APP_XXX',
726
- example_create_empty: 'openyida aggregate-table create-empty APP_XXX "Customer Contract Aggregate" --open',
727
- example_inspect: 'openyida aggregate-table inspect APP_XXX FORM_XXX --json',
728
- example_preview: 'openyida aggregate-table preview APP_XXX FORM_XXX .cache/openyida/aggregate/design.json',
729
- example_save: 'openyida aggregate-table save APP_XXX FORM_XXX .cache/openyida/aggregate/design.json',
730
- example_publish: 'openyida aggregate-table publish APP_XXX FORM_XXX .cache/openyida/aggregate/design.json',
731
- example_status: 'openyida aggregate-table status APP_XXX FORM_XXX',
732
- list_usage: 'Usage: openyida aggregate-table list <appType> [--keyword <text>] [--json]',
733
- create_empty_usage: 'Usage: openyida aggregate-table create-empty <appType> "<name>" [--locale zh_CN|en_US|ja_JP] [--open|--no-open]',
734
- inspect_usage: 'Usage: openyida aggregate-table inspect <appType> <formUuid> [--json]',
735
- preview_usage: 'Usage: openyida aggregate-table preview <appType> <formUuid> <design.json> [--json]',
736
- save_usage: 'Usage: openyida aggregate-table save <appType> <formUuid> <design.json> [--json]',
737
- publish_usage: 'Usage: openyida aggregate-table publish <appType> <formUuid> <design.json> [--json]',
738
- status_usage: 'Usage: openyida aggregate-table status <appType> <formUuid> [--json]',
739
- no_login: 'No login state found. Run openyida login first.',
740
- unsupported_locale: 'Unsupported locale: {0}',
741
- unknown_subcommand: 'Unknown aggregate-table subcommand: {0}',
742
- design_required: 'Missing aggregate table design JSON or file path',
743
- invalid_json: 'Aggregate table design config is not valid JSON: {0}',
744
- design_object_required: 'Aggregate table design config must be a JSON object',
745
- check_feature: 'Check aggregate table capability',
746
- feature_disabled: 'Aggregate table is not enabled for this app/org, or the edition quota has been reached',
747
- create_empty: 'Create blank aggregate table',
748
- inspect: 'Read aggregate table config',
749
- preview: 'Preview aggregate table config',
750
- save: 'Save aggregate table draft',
751
- publish: 'Publish aggregate table config',
752
- status: 'Query aggregate table build status',
753
- publish_requires_source: 'Publishing requires at least one data source. Configure relationForms first.',
754
- list_success: 'Aggregate table list',
755
- create_empty_success: 'Aggregate table created',
756
- inspect_success: 'Aggregate table config loaded',
757
- preview_success: 'Aggregate table preview succeeded',
758
- save_success: 'Aggregate table draft saved',
759
- publish_success: 'Aggregate table published',
760
- status_success: 'Aggregate table status loaded',
761
- },
762
- ai_form_setting: {
763
- usage: 'Usage: openyida ai-form-setting <get|fields|models|enable|disable|save> <appType> ...',
764
- commands_title: 'Subcommands:',
765
- cmd_get: 'get <appType> <formUuid> [--raw] [--json] Query AI approval prompt config',
766
- cmd_fields: 'fields <appType> <formUuid> [--type TEXT|IMAGE|ATTACHMENT] List insertable fields',
767
- cmd_models: 'models <appType> [--type TEXT|IMAGE|ATTACHMENT] List available models',
768
- cmd_enable: 'enable <appType> <formUuid> [--json] Enable AI approval prompts',
769
- cmd_disable: 'disable <appType> <formUuid> [--json] Disable AI approval prompts',
770
- cmd_save: 'save <appType> <formUuid> <config.json> [--enable] Save prompts and model config',
771
- examples_title: 'Examples:',
772
- example_get: 'openyida ai-form-setting get APP_XXX FORM_XXX --json',
773
- example_fields: 'openyida ai-form-setting fields APP_XXX FORM_XXX --type ATTACHMENT',
774
- example_models: 'openyida ai-form-setting models APP_XXX --type IMAGE',
775
- example_enable: 'openyida ai-form-setting enable APP_XXX FORM_XXX',
776
- example_save: 'openyida ai-form-setting save APP_XXX FORM_XXX .cache/openyida/ai-form-setting/config.json --enable',
777
- enable_disable_conflict: '--enable and --disable cannot be used together',
778
- invalid_type: 'Invalid prompt type: {0}. Valid values: {1}',
779
- invalid_status: 'Invalid AI approval prompt status: {0}',
780
- config_required: 'Missing AI approval prompt JSON config or file path',
781
- invalid_json: 'AI approval prompt config is not valid JSON: {0}',
782
- invalid_variable: 'Variable #{0} must be an object',
783
- variable_required: 'Variable #{0} must contain varName and fieldId',
784
- prompt_required: 'Prompt {0} is missing prompt/content',
785
- variables_array_required: 'variables must be an array',
786
- invalid_item: 'Prompt config #{0} must be an object',
787
- model_required: 'Prompt {0} is missing modelId',
788
- invalid_config_part: '{0} must be a JSON object or a valid JSON string',
789
- config_object_required: 'AI approval prompt config must be a JSON object or array',
790
- items_array_required: 'AI approval prompt config must contain an items array',
791
- too_many_items: 'AI approval prompts support up to {0} items',
792
- duplicate_item_id: 'Duplicate itemId: {0}',
793
- no_login: 'No login state found. Run openyida login first.',
794
- get_usage: 'Usage: openyida ai-form-setting get <appType> <formUuid> [--raw] [--json]',
795
- fields_usage: 'Usage: openyida ai-form-setting fields <appType> <formUuid> [--type TEXT|IMAGE|ATTACHMENT] [--json]',
796
- models_usage: 'Usage: openyida ai-form-setting models <appType> [--type TEXT|IMAGE|ATTACHMENT] [--json]',
797
- status_usage: 'Usage: openyida ai-form-setting <enable|disable> <appType> <formUuid> [--json]',
798
- save_usage: 'Usage: openyida ai-form-setting save <appType> <formUuid> <config.json> [--enable|--disable] [--json]',
799
- get_action: 'Query AI approval prompt config',
800
- fields_action: 'Query AI approval prompt fields',
801
- models_action: 'Query AI approval prompt models',
802
- status_action: 'Update AI approval prompt status',
803
- save_action: 'Save AI approval prompt config',
804
- get_success: 'AI approval prompt config',
805
- fields_success: 'AI approval prompt fields',
806
- models_success: 'AI approval prompt models',
807
- save_success: 'AI approval prompt config saved',
808
- enabled: 'AI approval prompts enabled',
809
- disabled: 'AI approval prompts disabled',
810
- unknown_subcommand: 'Unknown ai-form-setting subcommand: {0}',
811
- },
812
- safe_json: {
813
- hint_unquoted_key: 'A key looks unquoted (JSON requires all keys wrapped in double quotes, e.g. {"name":1})',
814
- hint_single_quote: 'Single quotes were likely used (JSON only allows double quotes ", not single quotes \')',
815
- hint_trailing_comma: 'There is likely a trailing comma (JSON does not allow a comma right before } or ])',
816
- hint_smart_quote: 'Smart / curly quotes were likely used (“ ” ‘ ’); replace them with standard ASCII double quotes "',
817
- hint_generic: 'Invalid JSON; please check it against the standard JSON syntax',
818
- label_cause: 'Likely cause: ',
819
- label_position: 'Error position: char ',
820
- label_raw: 'Raw error: ',
821
- label_suggestion: 'Suggestion: ',
822
- suggestion_file: 'For long or special-character content, pass it via a file path (--spec ./xxx.json / <file path>) to avoid shell-escaping issues',
823
- recovered_smart_quote: 'Detected smart / curly quotes; auto-normalized them to standard double quotes and parsed successfully. Prefer standard ASCII quotes at the source.',
824
- },
825
- codex_login: {
826
- title: ' openyida login {0} - {1} Login Mode',
827
- not_codex: 'Current environment is not detected as Codex / Qoder / Wukong; returning an in-app browser login handoff only.',
828
- no_playwright: '{0} mode does not require Playwright or a separate Chromium install.',
829
- using_browser: '{0} in-app Browser is only suitable for unauthenticated page previews; use openyida login for CLI auth.',
830
- browser_handoff_hint: '{0} in-app Browser is not used for CLI auth. Use openyida login.',
831
- handoff_message: '{0} in-app Browser cannot complete CLI token login. Run openyida login.',
832
- cache_available: 'Existing CLI token session cache is available; no browser login needed.',
833
- },
834
- };