yidaconnector 2026.6.11

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 (79) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +383 -0
  3. package/bin/yida.js +670 -0
  4. package/lib/app/form-navigation.js +58 -0
  5. package/lib/app/get-schema.js +538 -0
  6. package/lib/auth/auth.js +294 -0
  7. package/lib/auth/cdp-browser-login.js +390 -0
  8. package/lib/auth/codex-login.js +71 -0
  9. package/lib/auth/login.js +475 -0
  10. package/lib/auth/org.js +363 -0
  11. package/lib/auth/qr-login.js +1563 -0
  12. package/lib/core/chalk.js +384 -0
  13. package/lib/core/check-update.js +82 -0
  14. package/lib/core/cli-error.js +39 -0
  15. package/lib/core/command-manifest.js +106 -0
  16. package/lib/core/env-cmd.js +545 -0
  17. package/lib/core/env-manager.js +601 -0
  18. package/lib/core/env.js +287 -0
  19. package/lib/core/i18n.js +177 -0
  20. package/lib/core/locales/ar.js +805 -0
  21. package/lib/core/locales/de.js +805 -0
  22. package/lib/core/locales/en.js +1623 -0
  23. package/lib/core/locales/es.js +805 -0
  24. package/lib/core/locales/fr.js +805 -0
  25. package/lib/core/locales/hi.js +805 -0
  26. package/lib/core/locales/ja.js +1197 -0
  27. package/lib/core/locales/ko.js +807 -0
  28. package/lib/core/locales/pt.js +805 -0
  29. package/lib/core/locales/vi.js +805 -0
  30. package/lib/core/locales/zh-HK.js +1233 -0
  31. package/lib/core/locales/zh.js +1584 -0
  32. package/lib/core/query-data.js +781 -0
  33. package/lib/core/redact.js +100 -0
  34. package/lib/core/utils.js +799 -0
  35. package/lib/core/yida-client.js +117 -0
  36. package/package.json +94 -0
  37. package/project/config.json +4 -0
  38. package/project/pages/src/demo-birthday-game.oyd.jsx +832 -0
  39. package/project/pages/src/demo-chip-insight.oyd.jsx +983 -0
  40. package/project/pages/src/demo-compat-smoke.oyd.jsx +58 -0
  41. package/project/pages/src/demo-crm-batch-entry.oyd.jsx +805 -0
  42. package/project/pages/src/demo-crm-dashboard.oyd.jsx +677 -0
  43. package/project/pages/src/demo-future-vision-2026.oyd.jsx +1102 -0
  44. package/project/pages/src/demo-ppt.oyd.jsx +1192 -0
  45. package/project/pages/src/demo-salary-calculator.oyd.jsx +904 -0
  46. package/project/pages/src/yidaconnector-knowledge-doc.oyd.jsx +1714 -0
  47. package/project/prd/demo-birthday-game.md +39 -0
  48. package/project/prd/demo-crm.md +463 -0
  49. package/project/prd/demo-dingtalk-ai-solution-center.md +425 -0
  50. package/project/prd/demo-future-vision-2026.md +78 -0
  51. package/project/prd/demo-salary-calculator.md +101 -0
  52. package/scripts/build-skills-package.js +406 -0
  53. package/scripts/check-syntax.js +59 -0
  54. package/scripts/demo-dws.sh +106 -0
  55. package/scripts/e2e-real/cleanup.js +67 -0
  56. package/scripts/e2e-real/fixtures/form-fields.json +18 -0
  57. package/scripts/e2e-real/full-runner.js +1566 -0
  58. package/scripts/e2e-real/runner.js +293 -0
  59. package/scripts/e2e-real/skill-coverage.js +115 -0
  60. package/scripts/generate-command-docs.js +109 -0
  61. package/scripts/nightly-smoke.js +134 -0
  62. package/scripts/postinstall.js +545 -0
  63. package/scripts/solution-center-runner.js +368 -0
  64. package/scripts/validate-ci.sh +50 -0
  65. package/scripts/validate-command-manifest.js +119 -0
  66. package/scripts/validate-package-size.js +78 -0
  67. package/scripts/validate-skills.js +247 -0
  68. package/scripts/validate-structure.js +66 -0
  69. package/yida-skills/SKILL.md +163 -0
  70. package/yida-skills/references/yida-api.md +1309 -0
  71. package/yida-skills/skills/large-file-write/SKILL.md +91 -0
  72. package/yida-skills/skills/large-file-write/references/write-patterns.md +149 -0
  73. package/yida-skills/skills/large-file-write/scripts/write.js +157 -0
  74. package/yida-skills/skills/yida-data-management/SKILL.md +252 -0
  75. package/yida-skills/skills/yida-data-management/references/api-matrix.md +49 -0
  76. package/yida-skills/skills/yida-data-management/references/data-format-guide.md +159 -0
  77. package/yida-skills/skills/yida-data-management/references/verified-endpoints.md +62 -0
  78. package/yida-skills/skills/yida-login/SKILL.md +159 -0
  79. package/yida-skills/skills/yida-logout/SKILL.md +67 -0
@@ -0,0 +1,805 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * हिन्दी भाषा पैक (Hindi)
5
+ */
6
+ module.exports = {
7
+ // ── bin/yida.js printHelp() ────────────────────────
8
+ help: {
9
+ subtitle: 'Yida के लिए AI-संचालित लो-कोड विकास उपकरण',
10
+ usage: 'उपयोग:',
11
+ alias: 'उपनाम:',
12
+ group_auth: 'वातावरण & प्रमाणीकरण',
13
+ cmd_login: 'लॉगिन (पहले कैश, जरूरत हो तो --browser या --agent-qr)',
14
+ cmd_logout: 'लॉगआउट / खाता बदलें',
15
+ cmd_auth: 'लॉगिन स्थिति प्रबंधन',
16
+ cmd_org: 'संगठन प्रबंधन (सूची / बदलें)',
17
+ cmd_env: 'AI टूल वातावरण और लॉगिन स्थिति पहचानें',
18
+ cmd_env_management: 'Manage public/private environment profiles',
19
+ group_app: 'ऐप प्रबंधन',
20
+ cmd_app_list: 'मेरे Yida ऐप सूचीबद्ध करें',
21
+ cmd_corp_efficiency: 'एंटरप्राइज दक्षता अवलोकन और विवरण रिपोर्ट क्वेरी करें',
22
+ cmd_create_app: 'Yida ऐप बनाएं',
23
+ cmd_update_app: 'ऐप जानकारी अपडेट करें',
24
+ cmd_nav_group: 'ऐप साइडबार नेविगेशन समूह प्रबंधित करें',
25
+ cmd_app_permission: 'ऐप प्राथमिक, डेटा और डेवलपमेंट एडमिन प्रबंधित करें',
26
+ cmd_i18n: 'ऐप की बहुभाषी कॉपी और भाषा कॉन्फिग प्रबंधित करें',
27
+ cmd_export: 'ऐप निर्यात करें (माइग्रेशन पैकेज)',
28
+ cmd_import: 'माइग्रेशन पैकेज आयात करें, ऐप पुनर्निर्माण',
29
+ group_form: 'फॉर्म & पेज',
30
+ cmd_create_form: 'फॉर्म पेज बनाएं',
31
+ cmd_update_form: 'फॉर्म पेज अपडेट करें',
32
+ cmd_list_forms: 'List forms/pages in an app',
33
+ cmd_aggregate_table: 'Manage aggregate tables (virtualView)',
34
+ cmd_get_schema: 'फॉर्म Schema प्राप्त करें',
35
+ cmd_create_page: 'कस्टम डिस्प्ले पेज बनाएं',
36
+ cmd_generate_page: 'Generate page from curated template',
37
+ cmd_check_page: 'Check custom page standards',
38
+ cmd_compile: 'कस्टम पेज स्थानीय रूप से संकलित करें',
39
+ cmd_publish: 'कस्टम पेज कंपाइल और प्रकाशित करें',
40
+ cmd_update_form_config: 'फॉर्म कॉन्फ़िगरेशन अपडेट करें',
41
+ group_data: 'डेटा & अनुमतियां',
42
+ cmd_data: 'एकीकृत डेटा प्रबंधन (फॉर्म/प्रक्रिया/कार्य/उप-फॉर्म)',
43
+ cmd_task_center: 'वैश्विक कार्य केंद्र (लंबित/संसाधित/CC आदि)',
44
+ cmd_basic_info: 'संगठन की मूल जानकारी, क्षमता, कोटा और डोमेन देखें',
45
+ cmd_get_permission: 'फॉर्म अनुमति कॉन्फ़िगरेशन पूछें',
46
+ cmd_save_permission: 'फॉर्म अनुमति कॉन्फ़िगरेशन सहेजें',
47
+ cmd_corp_manager: 'प्लेटफ़ॉर्म अनुमतियां प्रबंधित करें',
48
+ cmd_agent_center: 'प्रक्रिया और प्रस्थान प्रतिनिधि प्रबंधित करें',
49
+ group_process: 'प्रक्रिया',
50
+ cmd_configure_process: 'प्रक्रिया नियम कॉन्फ़िगर और प्रकाशित करें',
51
+ cmd_create_process: 'प्रक्रिया फॉर्म बनाएं (एकीकृत)',
52
+ cmd_ai_form_setting: 'Manage process form AI approval prompts',
53
+ cmd_process_preview: 'प्रक्रिया इंस्टेंस पूर्वावलोकन (फ्लोचार्ट)',
54
+ group_share: 'पेज कॉन्फ़िगरेशन & शेयरिंग',
55
+ cmd_verify_url: 'शॉर्ट URL सत्यापित करें',
56
+ cmd_save_share: 'सार्वजनिक पहुंच / शेयर कॉन्फ़िगरेशन सहेजें',
57
+ cmd_get_page_config: 'पेज सार्वजनिक पहुंच कॉन्फ़िगरेशन पूछें',
58
+ cmd_externalize_form: 'Plan external access-safe mirror fields',
59
+ group_report: 'रिपोर्ट',
60
+ cmd_create_report: 'Yida रिपोर्ट बनाएं',
61
+ cmd_append_chart: 'मौजूदा रिपोर्ट में चार्ट जोड़ें',
62
+ group_connector: 'कनेक्टर',
63
+ cmd_connector_list: 'HTTP कनेक्टर सूचीबद्ध करें',
64
+ cmd_connector_create: 'कनेक्टर बनाएं',
65
+ cmd_connector_detail: 'कनेक्टर विवरण देखें',
66
+ cmd_connector_delete: 'कनेक्टर हटाएं',
67
+ cmd_connector_add_action: 'Add an action',
68
+ cmd_connector_list_actions: 'List actions',
69
+ cmd_connector_delete_action: 'Delete an action',
70
+ cmd_connector_test: 'Test an action',
71
+ cmd_connector_list_connections: 'List auth connections',
72
+ cmd_connector_create_connection: 'Create an auth connection',
73
+ cmd_connector_smart: 'स्मार्ट निर्माण (cURL से)',
74
+ cmd_connector_parse_api: 'Parse API information',
75
+ cmd_connector_gen_template: 'Generate API document template',
76
+ cmd_connector_more: 'अधिक उप-कमांड देखें',
77
+ group_integration: 'एकीकरण & DingTalk',
78
+ cmd_integration: 'एकीकरण स्वचालन फ्लो बनाएं',
79
+ cmd_integration_list: 'List integration automation flows',
80
+ cmd_integration_enable: 'Enable integration automation flow',
81
+ cmd_integration_disable: 'Disable integration automation flow',
82
+ cmd_integration_check: 'Check abnormal integration automation run logs',
83
+ cmd_dws: 'DingTalk CLI (संपर्क/कैलेंडर/कार्य/अनुमोदन आदि)',
84
+ cmd_dingtalk_link: 'DingTalk AppLink / legacy dingtalk:// पेज लिंक बनाएं',
85
+ group_utility: 'उपकरण',
86
+ cmd_commands: 'Output machine-readable command manifest',
87
+ cmd_a2a: 'Start local read-only A2A adapter or print Agent Card',
88
+ cmd_bridge: 'Start YidaConnector local web bridge service',
89
+ cmd_db_seq_fix: 'Detect and repair PostgreSQL sequence drift',
90
+ cmd_copy: 'project कार्य निर्देशिका कॉपी करें',
91
+ cmd_sample: 'कोड सैंपल/टेम्पलेट आउटपुट करें',
92
+ cmd_doctor: 'वातावरण निदान और स्वचालित मरम्मत',
93
+ cmd_update: 'नवीनतम संस्करण में अपडेट करें',
94
+ cmd_export_conversation: 'AI वार्तालाप रिकॉर्ड निर्यात करें',
95
+ cmd_feedback: 'Configure experience feedback form and local reminder state',
96
+ cmd_batch: 'Run YidaConnector commands in batch',
97
+ cmd_flash_to_prd: 'Convert flash notes or meeting notes to a PRD prompt',
98
+ cmd_ai: 'Call Yida AI text and image recognition APIs',
99
+ cmd_cdn: 'CDN छवि प्रबंधन (कॉन्फ़िग/अपलोड/रिफ्रेश)',
100
+ cmd_cdn_config: 'Configure CDN / OSS upload',
101
+ cmd_cdn_upload: 'Upload image to CDN',
102
+ cmd_cdn_refresh: 'Refresh CDN cache',
103
+ quickstart_title: 'त्वरित शुरुआत',
104
+ quickstart_app_name: 'उपस्थिति प्रबंधन',
105
+ quickstart_form_name: 'कर्मचारी जानकारी',
106
+ docs: '📚 दस्तावेज़:',
107
+ },
108
+
109
+ // ── bin/yida.js ────────────────────────────────────
110
+ cli: {
111
+ integration_help: 'उपयोग: yidaconnector integration <create|list|enable|disable> ...',
112
+ integration_unknown: 'अज्ञात integration उप-कमांड: {0}',
113
+ integration_help_hint: 'उपलब्ध उप-कमांड देखने के लिए yidaconnector integration --help चलाएं',
114
+ integration_list_usage: 'उपयोग: yidaconnector integration list <appType> [--form-uuid <uuid>] [--status y|n] [--key <kw>] [--page <n>] [--size <n>] [--json]',
115
+ integration_list_example: 'उदाहरण: yidaconnector integration list APP_XXX --form-uuid FORM-XXX --json',
116
+ integration_enable_usage: 'उपयोग: yidaconnector integration enable <appType> <formUuid> <processCode>',
117
+ integration_enable_example: 'उदाहरण: yidaconnector integration enable APP_XXX FORM-XXX LPROC-XXX',
118
+ integration_disable_usage: 'उपयोग: yidaconnector integration disable <appType> <formUuid> <processCode>',
119
+ integration_disable_example: 'उदाहरण: yidaconnector integration disable APP_XXX FORM-XXX LPROC-XXX',
120
+ compile_usage: 'उपयोग: yidaconnector compile <sourceFile>',
121
+ compile_example: 'उदाहरण: yidaconnector compile pages/src/home.oyd.jsx',
122
+ check_page_usage: 'Usage: yidaconnector check-page <sourceFile> [--compat] [--json]',
123
+ check_page_example: 'Example: yidaconnector check-page pages/src/home.oyd.jsx --json',
124
+ generate_page_usage: 'Usage: yidaconnector generate-page <template> --output pages/src/home.oyd.jsx [--spec .cache/yidaconnector/page-specs/home.json] [--compile]',
125
+ generate_page_example: 'Example: yidaconnector generate-page product-homepage --brand-name OpenKuma --brand-initials OK --output pages/src/home.oyd.jsx --compile',
126
+ },
127
+
128
+ // ── lib/integration/integration-check.js ─────────
129
+ integration_check: {
130
+ result_sheet: 'Result',
131
+ header_app: 'App',
132
+ header_form_title: 'Form name',
133
+ header_form_uuid: 'Form ID',
134
+ header_flow_name: 'Automation name',
135
+ header_process_code: 'Automation ID',
136
+ header_flow_status: 'Automation status',
137
+ header_event_name: 'Trigger event',
138
+ header_last_action: 'Last action',
139
+ header_modifier: 'Modifier',
140
+ header_modified_time: 'Modified time',
141
+ header_abnormal_log_count: 'Abnormal log count',
142
+ header_proc_inst_id: 'Run instance ID',
143
+ header_form_inst_id: 'Form instance ID',
144
+ header_execution_status: 'Execution status',
145
+ header_exception: 'Exception',
146
+ header_diagnosis: 'Diagnosis',
147
+ header_recommendation: 'Recommendation',
148
+ header_start_time: 'Start time',
149
+ header_finish_time: 'Finish time',
150
+ header_elapsed_ms: 'Elapsed (ms)',
151
+ no_abnormal: 'No abnormal execution logs found',
152
+ app_failed: 'App check failed: {0}',
153
+ summary: 'Check complete: {0} apps, {1} automations, {2} with abnormal logs',
154
+ apps_failed: '{0} app(s) failed to check. See JSON output or error summary for details.',
155
+ no_logs: 'No abnormal execution logs found.',
156
+ usage: 'yidaconnector integration check <appType...> [--json] [--output result.xlsx] [--no-progress] [--flow-types 1,2,3,5,6] [--log-page-size 10] [--max-log-pages 1]',
157
+ example: 'yidaconnector integration check APP_XXX --output project/output/automation-errors.xlsx',
158
+ missing_app: 'Missing appType. Usage: yidaconnector integration check <appType...>',
159
+ banner_title: 'Check integration automation abnormal logs',
160
+ status_filter: 'Execution status filter: {0}',
161
+ checking_app: 'Checking app: {0}',
162
+ progress: 'Progress {0}{1}',
163
+ current: ', current: {0}',
164
+ excel_exported: 'Excel exported: {0}',
165
+ },
166
+
167
+ // ── lib/env.js ─────────────────────────────────────
168
+ env: {
169
+ title: ' yidaconnector env - AI टूल वातावरण पहचान',
170
+ detecting: ' AI टूल वातावरण पहचाना जा रहा है...',
171
+ tool_label: ' AI टूल: {0}',
172
+ login_label: ' लॉगिन स्थिति: {0}',
173
+ logged_in: 'लॉग इन है',
174
+ not_logged_in: 'लॉग इन नहीं है',
175
+ corp_label: ' संगठन: {0}',
176
+ version_label: ' संस्करण: {0}',
177
+ },
178
+
179
+ // ── lib/login.js ────────────────────────────────────
180
+ login: {
181
+ title: '🔐 Yida लॉगिन',
182
+ cache_found: ' कैश्ड लॉगिन जानकारी मिली, सत्यापन हो रहा है...',
183
+ cache_valid: '✅ कैश्ड लॉगिन जानकारी वैध है!',
184
+ cache_invalid: ' कैश्ड लॉगिन जानकारी समाप्त हो गई है। पुनः लॉगिन आवश्यक है।',
185
+ starting_qr: ' QR कोड लॉगिन शुरू हो रहा है...',
186
+ success: '✅ लॉगिन सफल!',
187
+ failed: '❌ लॉगिन विफल: {0}',
188
+ usage: 'उपयोग: yidaconnector login',
189
+ },
190
+
191
+ // ── lib/logout.js ───────────────────────────────────
192
+ logout: {
193
+ title: '🚪 Yida लॉगआउट',
194
+ success: '✅ लॉगआउट सफल! लॉगिन जानकारी हटा दी गई।',
195
+ no_cache: ' कोई लॉगिन जानकारी नहीं मिली। पहले से लॉगआउट है।',
196
+ failed: '❌ लॉगआउट विफल: {0}',
197
+ },
198
+
199
+ // ── lib/create-app.js ───────────────────────────────
200
+ create_app: {
201
+ usage: 'उपयोग: yidaconnector create-app "<ऐप नाम>" या yidaconnector create-app --name "<ऐप नाम>" [--desc "..."] [--theme deepBlue]',
202
+ example: 'उदाहरण: yidaconnector create-app --name "मेरा ऐप" --desc "ऐप विवरण" --theme deepBlue',
203
+ title: ' create-app - Yida ऐप निर्माण टूल',
204
+ app_name: '\n ऐप नाम: {0}',
205
+ app_desc: ' विवरण: {0}',
206
+ app_icon: ' आइकॉन: {0} ({1})',
207
+ app_theme: ' थीम: colour={0} navTheme={1} layout={2}',
208
+ step_create: '\n🚀 ऐप बनाया जा रहा है...',
209
+ sending_request: ' createApp अनुरोध भेजा जा रहा है...',
210
+ success: ' ✅ ऐप सफलतापूर्वक बनाया गया!',
211
+ app_id: ' ऐप ID: {0}',
212
+ failed: ' ❌ निर्माण विफल: {0}',
213
+ error: '\n❌ निर्माण त्रुटि: {0}',
214
+ },
215
+
216
+ // ── lib/create-form.js ──────────────────────────────
217
+ create_form: {
218
+ usage: 'उपयोग: yidaconnector create-form <appType> <पेज नाम> [स्कीमा JSON]',
219
+ title: ' create-form - Yida फॉर्म पेज निर्माण/अपडेट टूल',
220
+ app_id: '\n ऐप ID: {0}',
221
+ page_name: ' पेज नाम: {0}',
222
+ step_create: '\n📝 फॉर्म पेज बनाया जा रहा है...',
223
+ sending_request: ' saveFormSchema अनुरोध भेजा जा रहा है...',
224
+ success: ' ✅ फॉर्म पेज सफलतापूर्वक बनाया गया!',
225
+ form_uuid: ' फॉर्म UUID: {0}',
226
+ failed: ' ❌ निर्माण विफल: {0}',
227
+ error: '\n❌ निर्माण त्रुटि: {0}',
228
+ step_check_data: '\n🔍 चरण {0}: जाँचें कि फॉर्म में मौजूदा डेटा है या नहीं',
229
+ data_exists_warning: ' ⚠️ इस फॉर्म में पहले से {0} रिकॉर्ड हैं! संरचना बदलने से हो सकता है:',
230
+ data_exists_impact: ' - ऐतिहासिक डेटा का नुकसान या भ्रष्टाचार\n - प्रक्रिया स्थिति में विसंगतियाँ\n - डेटा असंगति',
231
+ data_exists_abort: ' ❌ संशोधन रद्द। जारी रखने के लिए --force जोड़ें।',
232
+ data_exists_confirm_message: 'इस फॉर्म में {0} मौजूदा रिकॉर्ड हैं। संरचना बदलने से मौजूदा डेटा प्रभावित हो सकता है। पुष्टि के लिए --force जोड़ें।',
233
+ data_exists_force_hint: 'उपयोग: yidaconnector create-form update <appType> <formUuid> <changesJson> --force',
234
+ data_exists_force_proceed: ' ⚠️ --force मोड: पुष्टि छोड़ी गई, {0} मौजूदा रिकॉर्ड वाले फॉर्म की संरचना बलपूर्वक बदली जा रही है',
235
+ data_check_empty: ' ✅ फॉर्म में कोई डेटा नहीं है, सुरक्षित रूप से संशोधित किया जा सकता है',
236
+ data_check_failed: ' ⚠️ डेटा जाँच विफल, संशोधन जारी',
237
+ },
238
+
239
+ // ── lib/create-page.js ──────────────────────────────
240
+ create_page: {
241
+ usage: 'उपयोग: yidaconnector create-page <appType> <पेज नाम> [--mode dashboard]',
242
+ example: 'उदाहरण: yidaconnector create-page APP_XXX "Dashboard" --mode dashboard',
243
+ title: ' create-page - Yida कस्टम पेज निर्माण टूल',
244
+ app_id: '\n ऐप ID: {0}',
245
+ page_name: ' पेज नाम: {0}',
246
+ step_create: '\n📄 कस्टम पेज बनाया जा रहा है...',
247
+ success: ' ✅ कस्टम पेज सफलतापूर्वक बनाया गया!',
248
+ step_dashboard_config: '\n🖥️ Step 3: Configure dashboard fullscreen mode',
249
+ dashboard_config_ok: ' ✅ Dashboard mode configured: top nav hidden, chromeless custom URL enabled',
250
+ dashboard_config_failed: ' ⚠️ Dashboard mode config failed: {0}',
251
+ err_mode_invalid: 'Unsupported page mode: {0}',
252
+ mode_hint: 'Available modes: default, dashboard',
253
+ form_uuid: ' पेज UUID: {0}',
254
+ failed: ' ❌ निर्माण विफल: {0}',
255
+ error: '\n❌ निर्माण त्रुटि: {0}',
256
+ },
257
+
258
+ // ── lib/get-schema.js ───────────────────────────────
259
+ get_schema: {
260
+ usage: 'उपयोग: yidaconnector get-schema <appType> <formUuid>',
261
+ title: ' get-schema - Yida फॉर्म स्कीमा प्राप्ति टूल',
262
+ app_id: '\n ऐप ID: {0}',
263
+ form_uuid: ' फॉर्म UUID: {0}',
264
+ step_get: '\n📋 फॉर्म स्कीमा प्राप्त किया जा रहा है...',
265
+ success: ' ✅ स्कीमा सफलतापूर्वक प्राप्त हुआ!',
266
+ failed: ' ❌ प्राप्ति विफल: {0}',
267
+ error: '\n❌ प्राप्ति त्रुटि: {0}',
268
+ },
269
+
270
+ // ── lib/check-update.js ─────────────────────────────
271
+ check_update: {
272
+ new_version: '\n🎉 नया संस्करण उपलब्ध: {0} → {1}',
273
+ update_cmd: ' अपडेट करें: npm install -g yidaconnector',
274
+ check_failed: 'संस्करण जांच विफल: {0}',
275
+ },
276
+
277
+ // ── lib/update.js ──────────────────────────────────
278
+ update: {
279
+ checking: 'नवीनतम संस्करण की जांच हो रही है...',
280
+ fetch_failed: 'नवीनतम संस्करण प्राप्त करने में विफल। कृपया नेटवर्क कनेक्शन जांचें',
281
+ already_latest: 'पहले से नवीनतम संस्करण ({0}) है, अपडेट की आवश्यकता नहीं',
282
+ found_new_version: 'नया संस्करण मिला: {0} (वर्तमान: {1})',
283
+ installing: 'yidaconnector@latest इंस्टॉल हो रहा है...',
284
+ success: 'अपडेट सफल! वर्तमान संस्करण: {0}',
285
+ install_failed: 'अपडेट विफल: {0}',
286
+ manual_hint: 'कृपया मैन्युअल रूप से प्रयास करें: npm install -g yidaconnector@latest',
287
+ available: 'अपडेट उपलब्ध',
288
+ up_to_date: 'अद्यतित',
289
+ label_install: 'Install',
290
+ label_channel: 'Channel',
291
+ label_version: 'Version',
292
+ label_update: 'Update',
293
+ done: 'अपडेट पूर्ण!',
294
+ done_hint: 'नया संस्करण पुष्टि करने के लिए yidaconnector --version चलाएं',
295
+ },
296
+
297
+ // ── lib/export-app.js ───────────────────────────────
298
+ export_app: {
299
+ usage: 'उपयोग: yidaconnector export-app <appType>',
300
+ title: ' export-app - Yida ऐप निर्यात टूल',
301
+ app_id: '\n ऐप ID: {0}',
302
+ step_export: '\n📦 ऐप निर्यात किया जा रहा है...',
303
+ success: ' ✅ ऐप सफलतापूर्वक निर्यात हुआ!',
304
+ failed: ' ❌ निर्यात विफल: {0}',
305
+ error: '\n❌ निर्यात त्रुटि: {0}',
306
+ },
307
+
308
+ // ── lib/import-app.js ───────────────────────────────
309
+ import_app: {
310
+ usage: 'उपयोग: yidaconnector import-app <फ़ाइल पथ>',
311
+ title: ' import-app - Yida ऐप आयात टूल',
312
+ file_path: '\n फ़ाइल पथ: {0}',
313
+ step_import: '\n📥 ऐप आयात किया जा रहा है...',
314
+ success: ' ✅ ऐप सफलतापूर्वक आयात हुआ!',
315
+ failed: ' ❌ आयात विफल: {0}',
316
+ error: '\n❌ आयात त्रुटि: {0}',
317
+ },
318
+
319
+ // ── lib/get-page-config.js ──────────────────────────
320
+ get_page_config: {
321
+ usage: 'उपयोग: yidaconnector get-page-config <appType> <formUuid>',
322
+ title: ' get-page-config - Yida पेज कॉन्फ़िगरेशन प्राप्ति टूल',
323
+ app_id: '\n ऐप ID: {0}',
324
+ form_uuid: ' फॉर्म UUID: {0}',
325
+ step_get: '\n🔍 पेज कॉन्फ़िगरेशन प्राप्त किया जा रहा है...',
326
+ success: ' ✅ कॉन्फ़िगरेशन सफलतापूर्वक प्राप्त हुआ!',
327
+ failed: ' ❌ प्राप्ति विफल: {0}',
328
+ error: '\n❌ प्राप्ति त्रुटि: {0}',
329
+ },
330
+
331
+ // ── lib/save-share-config.js ────────────────────────
332
+ save_share_config: {
333
+ usage: 'उपयोग: yidaconnector save-share-config <appType> <formUuid> <openUrl> <isOpen> [openAuth]',
334
+ title: ' save-share-config - Yida सार्वजनिक पहुंच कॉन्फ़िगरेशन सहेजने का टूल',
335
+ app_id: '\n ऐप ID: {0}',
336
+ form_uuid: ' फॉर्म UUID: {0}',
337
+ open_url: ' सार्वजनिक URL: {0}',
338
+ is_open: ' सार्वजनिक पहुंच: {0}',
339
+ open_auth: ' प्रमाणीकरण आवश्यक: {0}',
340
+ step_validate: '\n📋 Step 0: पैरामीटर सत्यापन',
341
+ validate_ok: ' ✅ सत्यापन सफल',
342
+ validate_failed: ' ❌ सत्यापन विफल: {0}',
343
+ step_save: '\n💾 Step 2: सार्वजनिक पहुंच कॉन्फ़िगरेशन सहेजें',
344
+ sending_request: ' saveShareConfig अनुरोध भेजा जा रहा है...',
345
+ save_ok: ' ✅ कॉन्फ़िगरेशन सफलतापूर्वक सहेजा गया!',
346
+ save_ok_msg: 'सार्वजनिक पहुंच कॉन्फ़िगरेशन सहेजा गया',
347
+ save_failed: ' ❌ सहेजना विफल: {0}',
348
+ save_failed_msg: 'सहेजना विफल',
349
+ err_is_open_invalid: 'isOpen y या n होना चाहिए। वर्तमान मान: {0}',
350
+ err_open_auth_invalid: 'openAuth y या n होना चाहिए। वर्तमान मान: {0}',
351
+ err_open_url_required: 'सार्वजनिक पहुंच सक्षम करने के लिए openUrl आवश्यक है',
352
+ err_open_url_prefix: 'openUrl /o/ से शुरू होना चाहिए। वर्तमान मान: {0}',
353
+ err_open_url_chars: 'openUrl पथ केवल a-z A-Z 0-9 _ - और सेगमेंट विभाजक / का समर्थन करता है। वर्तमान मान: {0}',
354
+ err_open_url_empty: 'openUrl पथ खाली नहीं हो सकता: {0}',
355
+ },
356
+
357
+ // ── lib/update-form-config.js ──────────────────────
358
+ update_form_config: {
359
+ usage: 'उपयोग: yidaconnector update-form-config <appType> <formUuid> <isRenderNav> <title>',
360
+ title: ' update-form-config - Yida फॉर्म कॉन्फ़िगरेशन अपडेट टूल',
361
+ app_id: '\n ऐप ID: {0}',
362
+ form_uuid: ' फॉर्म UUID: {0}',
363
+ is_render_nav: ' नेविगेशन दिखाएं: {0}',
364
+ page_title: ' पेज शीर्षक: {0}',
365
+ step_update: '\n💾 Step 2: फॉर्म कॉन्फ़िगरेशन अपडेट करें',
366
+ sending_request: ' updateFormSchemaInfo अनुरोध भेजा जा रहा है...',
367
+ update_ok: ' ✅ कॉन्फ़िगरेशन सफलतापूर्वक अपडेट हुआ!',
368
+ nav_shown: 'शीर्ष नेविगेशन दिखाया गया',
369
+ nav_hidden: 'शीर्ष नेविगेशन छिपाया गया',
370
+ update_failed: ' ❌ अपडेट विफल: {0}',
371
+ update_failed_msg: 'अपडेट विफल',
372
+ },
373
+
374
+ // ── lib/verify-short-url.js ────────────────────────
375
+ verify_short_url: {
376
+ usage: 'उपयोग: yidaconnector verify-short-url <appType> <formUuid> <url>',
377
+ title: ' verify-short-url - Yida URL सत्यापन टूल',
378
+ app_id: '\n ऐप ID: {0}',
379
+ form_uuid: ' फॉर्म UUID: {0}',
380
+ step_validate: '\n📋 Step 0: URL प्रारूप सत्यापन',
381
+ validate_ok: ' ✅ प्रारूप सत्यापित',
382
+ validate_failed: ' ❌ सत्यापन विफल: {0}',
383
+ step_verify: '\n🔍 Step 2: URL सत्यापित करें',
384
+ sending_request: ' verifyShortUrl अनुरोध भेजा जा रहा है...',
385
+ url_available: ' ✅ URL उपलब्ध है!',
386
+ open_available_msg: 'यह सार्वजनिक पहुंच URL उपलब्ध है',
387
+ share_available_msg: 'यह आंतरिक साझाकरण URL उपलब्ध है',
388
+ url_taken: ' ❌ URL पहले से उपयोग में है',
389
+ url_taken_msg: 'यह शॉर्ट URL पहले से लिया गया है',
390
+ verify_failed: ' ❌ सत्यापन अनुरोध विफल',
391
+ err_url_prefix: 'URL /o/ या /s/ से शुरू होना चाहिए। वर्तमान मान: {0}',
392
+ err_url_chars: 'URL पथ केवल a-z A-Z 0-9 _ - और सेगमेंट विभाजक / का समर्थन करता है। वर्तमान मान: {0}',
393
+ err_url_empty: 'URL पथ खाली नहीं हो सकता: {0}',
394
+ },
395
+
396
+ // ── lib/copy.js ────────────────────────────────────
397
+ copy: {
398
+ title: ' yidaconnector copy - Yida कार्य निर्देशिका प्रारंभ करें',
399
+ package_root: '\n📦 पैकेज रूट: {0}',
400
+ dest_root: '🤖 लक्ष्य निर्देशिका: {0}',
401
+ dest_empty_flatten: '📂 लक्ष्य निर्देशिका खाली है, project/ की सामग्री सीधे कॉपी की जाएगी (project/ उपनिर्देशिका नहीं बनेगी)',
402
+ force_mode: '⚠️ --force मोड: कॉपी करने से पहले लक्ष्य निर्देशिका साफ की जाएगी',
403
+ no_package: '\n❌ yidaconnector पैकेज निर्देशिका नहीं मिली',
404
+ no_package_hint1: ' सुनिश्चित करें कि yidaconnector वैश्विक रूप से स्थापित है:',
405
+ no_package_hint2: ' npm install -g yidaconnector',
406
+ no_active_tool: '\n❌ कोई सक्रिय AI टूल वातावरण नहीं मिला',
407
+ supported_tools: ' समर्थित टूल: Wukong, Codex, OpenCode, Claude Code, Aone Copilot, Cursor, Qoder',
408
+ current_result: '\n वर्तमान पहचान परिणाम:',
409
+ force_hint: '\n वर्तमान निर्देशिका में जबरदस्ती कॉपी करने के लिए:\n yidaconnector copy --force',
410
+ force_cmd: ' yidaconnector copy --force',
411
+ copying_label: '\n📂 {0} कॉपी हो रहा है...',
412
+ creating_symlink: '\n📂 yida-skills/ सिम्बॉलिक लिंक बनाया जा रहा है...',
413
+ file_copied: ' कॉपी हुआ: {0}',
414
+ cleared: ' 🗑️ साफ हुआ: {0}',
415
+ symlink_removed: ' 🗑️ पुराना सिम्बॉलिक लिंक हटाया गया: {0}',
416
+ dir_deleted: ' 🗑️ निर्देशिका हटाई गई: {0}',
417
+ removed: ' 🗑️ हटाया गया: {0}',
418
+ symlink_created: ' 🔗 सिम्बॉलिक लिंक: {0} -> {1}',
419
+ symlink_label: 'सिम्बॉलिक लिंक',
420
+ done: '✅ पूर्ण!',
421
+ files_copied: ' कॉपी की गई फ़ाइलें: {0}',
422
+ files_count: '{0} फ़ाइलें',
423
+ symlinks_created: ' बनाए गए सिम्बॉलिक लिंक: {0}',
424
+ result_symlink: ' {0} → {1} (सिम्बॉलिक लिंक)',
425
+ result_copy: ' {0} → {1} ({2} फ़ाइलें)',
426
+ wukong_skills_cleanup: '\n🗑️ Wukong वातावरण: yida-skills/ सिम्बॉलिक लिंक साफ हो रहा है...',
427
+ wukong_skills_cleaned: 'साफ हुआ',
428
+ wukong_skills_not_found: ' ℹ️ yida-skills/ सिम्बॉलिक लिंक या निर्देशिका नहीं मिली: {0}',
429
+ remove_failed: ' ❌ हटाना विफल: {0} ({1})',
430
+ symlink_fallback_copy: ' ⚠️ Windows सिम्बॉलिक लिंक बनाना विफल (व्यवस्थापक अधिकार आवश्यक), निर्देशिका कॉपी का उपयोग: {0}',
431
+ symlink_failed: ' ❌ सिम्बॉलिक लिंक बनाना विफल: {0} ({1})',
432
+ },
433
+
434
+ // ── lib/publish.js ─────────────────────────────────
435
+ generate_page: {
436
+ spec_not_found: 'Spec file not found: {0}',
437
+ spec_invalid: 'Failed to parse spec JSON: {0}',
438
+ unknown_template: 'Unknown page template: {0}',
439
+ available_templates: 'Available templates: {0}',
440
+ template_not_found: 'Template file not found: {0}',
441
+ done: 'Page generated: {0}',
442
+ hint: 'Next run yidaconnector compile <file>, or pass --compile to compile immediately.',
443
+ success: 'Page generation complete',
444
+ },
445
+ page_size: {
446
+ large_source: 'बड़ा पेज सोर्स मिला: {0} ({1}, लगभग {2} पंक्तियां)',
447
+ long_line_hint: 'बहुत लंबी एकल पंक्ति मिली (लगभग {0} अक्षर), आमतौर पर minified vendor कोड या base64; इसे सोर्स से बाहर रखें।',
448
+ base64_hint: 'लंबा inline base64 मिला; इसे CDN/OSS पर अपलोड करके URL से संदर्भित करें।',
449
+ memory_hint: 'publish/compile source, build output, minified output और schema प्रतियां मेमोरी में रखता है; vendor/base64 अलग करें या this.utils.loadScript से लोड करें।',
450
+ windows_hint: 'Windows पर बड़े JSX को PowerShell Get-Content -Raw + ConvertTo-Json से न लिखें; Node fs.writeFileSync/appendFileSync को हिस्सों में उपयोग करें।',
451
+ },
452
+ publish: {
453
+ title: ' yida-publish - Yida पेज प्रकाशन टूल',
454
+ platform: ' प्लेटफ़ॉर्म: {0}',
455
+ app_id: ' ऐप ID: {0}',
456
+ form_uuid: ' फॉर्म ID: {0}',
457
+ source_file: ' स्रोत: {0}',
458
+ compiled_file: ' आउटपुट: {0}',
459
+ step_lint: '\n🔍 Step 0: यिदा कोडिंग मानक पूर्व-जांच\n',
460
+ lint_title: '⚠️ Yida page code check:',
461
+ lint_error_line: ' ❌ पंक्ति {0}: {1}',
462
+ lint_warning_line: ' ⚠️ पंक्ति {0}: {1}',
463
+ lint_event_function: 'इवेंट बाइंडिंग function का उपयोग करता है, एरो फंक्शन (e) => { this.xxx() } का उपयोग करें',
464
+ lint_missing_render_jsx: 'Missing export function renderJsx(); Yida custom pages must export renderJsx',
465
+ lint_import_require: 'Found import/require. Yida custom pages cannot import modules; load third-party scripts with this.utils.loadScript',
466
+ lint_react_hooks: 'Found React Hooks. Yida runtime uses React 16 class-component style and does not support useState/useEffect hooks',
467
+ lint_export_default: 'Found export default. Yida needs named exports such as export function renderJsx/didMount',
468
+ lint_jsx_extension: 'This .js file contains JSX; prefer .jsx for source files. The compiled output is still .js',
469
+ lint_event_direct_method: 'Event binding passes this.xxx directly and will lose this; use (e) => { this.xxx(e); }',
470
+ lint_event_bind_this: 'Event binding uses .bind(this); use (e) => { this.xxx(e); } instead',
471
+ lint_lifecycle_case: 'Detected lifecycle export {0}; Yida only recognizes {1} (case-sensitive)',
472
+ lint_react_lifecycle_method: 'Detected React lifecycle {0}; export {1} for Yida custom pages',
473
+ lint_event_lowercase: 'Detected lowercase event prop {0}; React/Yida will not bind it. Use {1}',
474
+ lint_event_call_result: 'Event binding invokes a function or is not an expression handler; use (e) => { self.xxx(e); }',
475
+ lint_event_noop_arrow: 'Event arrow function references a handler without calling it; use (e) => { self.xxx(e); }',
476
+ lint_button_missing_handler: 'Visible <button> has no onClick/onMouseDown/onKeyDown or disabled state; bind an event handler or use span/div for static labels',
477
+ lint_array_callback_function: '.{0}(function ...) may lose this in callbacks; use .{0}((item) => ...) instead',
478
+ lint_foreach_callback_function: '.forEach(function ...) may lose this in callbacks; prefer .forEach((item) => ...)',
479
+ lint_controlled_input: 'input uses controlled value mode. Yida pages should use defaultValue + onChange to update _customState',
480
+ lint_native_select_ui: 'Found a native select. User-facing custom page dropdowns should use a Tailwind-styled custom dropdown component for consistent visual quality',
481
+ lint_iframe_self_navigation: 'Yida custom pages run in an iframe. Use target="_top"/target="_blank" or window.top.location for Yida page navigation to avoid nested pages.',
482
+ lint_page_size_limit: 'pageSize={0} exceeds the Yida API limit of 100; use 100 or less',
483
+ lint_yida_api_catch: 'this.utils.yida API call has no detected .catch(); add error handling and toast the user',
484
+ lint_echarts_legacy_map_china: 'ECharts 5 no longer supports echarts/map/js/china.js. Load DataV GeoJSON and call echarts.registerMap("china", geoJson) instead',
485
+ lint_echarts_rich_label_formatter: 'ECharts label.formatter returning rich text templates is unstable in Yida custom pages; prefer plain formatter strings or precomputed label text',
486
+ lint_const_let: 'const/let घोषणा का उपयोग करता है, var में बदलने की सिफारिश है (यिदा रनटाइम संगतता)',
487
+ lint_computed_property: 'ES6 गणना संपत्ति नाम { [key]: value } का उपयोग करता है, यिदा JS इंजन द्वारा समर्थित नहीं है, मूक विफलता का कारण बनता है। var obj = {}; obj[key] = value; का उपयोग करें',
488
+ lint_pad_method: 'String.{0}() का उपयोग करता है, यिदा JS इंजन द्वारा समर्थित नहीं है, Promise कॉलबैक को मूक रूप से बाधित करता है। टर्नरी ऑपरेटर का उपयोग करें: x < 10 ? "0" + x : "" + x',
489
+ lint_large_then_callback: 'Promise .then() कॉलबैक बहुत बड़ा है ({0} पंक्तियाँ, अनुशंसित अधिकतम {1} पंक्तियाँ), मूक कटौती का कारण बन सकता है। तर्क को अलग export function में निकालें',
490
+ lint_fix_errors: '❌ कृपया प्रकाशन से पहले उपरोक्त त्रुटियों को ठीक करें',
491
+ lint_skip_hint: '💡 जांच छोड़ने के लिए --skip-lint पैरामीटर जोड़ें',
492
+ lint_passed: ' ✅ कोड जांच पास\n',
493
+ lint_skipped: '\n⏭️ कोड पूर्व-जांच छोड़ी गई (--skip-lint)\n',
494
+ duplicate_source_mismatch: ' ⚠️ Found another copy with the same file name but different content. Publishing: {0}; other copy: {1}',
495
+ data_source_fetching: ' Reading existing page data sources...',
496
+ data_source_preserved: ' ✅ Preserved existing page data sources: {0}',
497
+ data_source_none: ' No custom page data sources to preserve',
498
+ data_source_fetch_failed: 'Could not read the existing page Schema, so publishing stopped to avoid clearing existing data sources: {0}',
499
+ target_checking: ' Checking publish target type...',
500
+ target_check_forced: ' ⚠️ Skipped publish target type check (--force)',
501
+ target_check_ok: ' ✅ Publish target confirmed: {0} ({1})',
502
+ target_check_failed: 'Could not verify publish target: {0}',
503
+ target_not_found: 'Publish target was not found in app navigation: {0}',
504
+ target_type_invalid: 'Publish target is not a custom display page: {0} current type is {1}',
505
+ 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.',
506
+ target_list_hint: 'Run yidaconnector list-forms {0} --keyword <page name>, then choose a custom page formUuid with formType=display.',
507
+ 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.',
508
+ step_compile: '\n📦 Step 1: स्रोत संकलित करें और स्कीमा बनाएं\n',
509
+ reading_source: '[1/4] {0} स्रोत पढ़ा जा रहा है...',
510
+ compiling: '[2/4] Babel से {0} संकलित हो रहा है...',
511
+ compile_failed: ' ❌ संकलन विफल: {0}',
512
+ compile_location: '\n स्थान: पंक्ति {0}, स्तंभ {1}',
513
+ compile_error_code: ' त्रुटि कोड: {0}',
514
+ minifying: '[3/4] UglifyJS से {0} संपीड़ित हो रहा है...',
515
+ minify_failed: ' संपीड़न विफल: {0}',
516
+ compile_done: ' ✅ संकलन पूर्ण: {0}',
517
+ building_schema: '[4/4] स्कीमा बनाया जा रहा है...',
518
+ schema_built: ' ✅ स्कीमा सफलतापूर्वक बना!',
519
+ step_login: '\n🔑 Step 2: लॉगिन जानकारी पढ़ें',
520
+ step_publish: '\n📤 Step 3: स्कीमा प्रकाशित करें\n',
521
+ publish_failed: '\n❌ प्रकाशन विफल: {0}',
522
+ schema_published: ' ✅ स्कीमा सफलतापूर्वक प्रकाशित!',
523
+ step_config: '\n⚙️ Step 4: फॉर्म कॉन्फ़िगरेशन अपडेट करें\n',
524
+ success: ' ✅ सफलतापूर्वक प्रकाशित!',
525
+ config_failed: ' ⚠️ कॉन्फ़िगरेशन अपडेट विफल: {0}',
526
+ schema_ok_config_failed: 'Schema published, but config update failed',
527
+ step_health_check: '\n🩺 Step 5: Health check published page\n',
528
+ health_check_ok: ' ✅ Health check passed: HTTP {0}',
529
+ health_check_failed: ' ⚠️ Health check failed: HTTP {0} {1}',
530
+ exception: '\n❌ प्रकाशन त्रुटि: {0}',
531
+ source_not_found: '❌ स्रोत फ़ाइल नहीं मिली: {0}',
532
+ usage: 'उपयोग: yidaconnector publish <स्रोतफ़ाइल> <appType> <formUuid> [--health-check]',
533
+ example: 'उदाहरण: yidaconnector publish pages/src/xxx.js APP_XXX FORM-XXX --health-check',
534
+ },
535
+
536
+ // ── lib/qr-login.js ────────────────────────────────
537
+ qr_login: {
538
+ title: '🔐 Yida टर्मिनल QR कोड लॉगिन',
539
+ step_init: ' Step 1: सत्र प्रारंभ हो रहा है...',
540
+ step_get_qr: ' Step 2: QR कोड प्राप्त हो रहा है...',
541
+ scan_hint: ' 📱 कृपया DingTalk से नीचे दिए QR कोड को स्कैन करें:',
542
+ qr_url_label: ' QR कोड URL: {0}',
543
+ waiting_scan: ' ⏳ स्कैन की प्रतीक्षा (अधिकतम 2 मिनट)...',
544
+ scanned_confirm: ' ✅ QR कोड स्कैन हुआ! कृपया अपने फ़ोन पर लॉगिन की पुष्टि करें...',
545
+ scan_success: ' ✅ स्कैन की पुष्टि हुई!',
546
+ step_exchange: ' Step 4: लॉगिन क्रेडेंशियल का आदान-प्रदान हो रहा है...',
547
+ step_get_corps: ' Step 5: संगठन सूची प्राप्त हो रही है...',
548
+ step_switch_corp: ' Step 7: चुने गए संगठन पर स्विच हो रहा है...',
549
+ only_one_corp: ' ✅ एक संगठन मिला: {0}, स्वचालित रूप से चुना गया',
550
+ select_corp_prompt: ' 🏢 कई संगठन मिले, कृपया एक चुनें:',
551
+ select_corp_input: ' नंबर दर्ज करें (1-{0}): ',
552
+ select_corp_invalid: ' ❌ अमान्य इनपुट, कृपया 1 से {0} के बीच नंबर दर्ज करें',
553
+ target_corp_not_found: 'निर्दिष्ट corpId सुलभ संगठनों में नहीं मिला: {0}',
554
+ corp_selected: ' ✅ संगठन चुना गया: {0}',
555
+ login_success: '✅ लॉगिन सफल!',
556
+ qrcode_fallback: ' ⚠️ qrcode पैकेज स्थापित नहीं है, कृपया नीचे दिए URL पर मैन्युअल रूप से जाएं:',
557
+ qrcode_render_failed: ' ⚠️ QR कोड रेंडरिंग विफल ({0}), कृपया नीचे दिए URL पर जाएं:',
558
+ qr_expired: 'QR कोड समाप्त हो गया, कृपया पुनः लॉगिन करें',
559
+ poll_timeout: 'स्कैन टाइमआउट (2 मिनट), कृपया पुनः लॉगिन करें',
560
+ no_corp_available: 'कोई सुलभ संगठन नहीं मिला',
561
+ no_csrf_in_cookie: 'लॉगिन सफल लेकिन csrf_token नहीं मिला, कृपया पुनः प्रयास करें',
562
+ stdin_closed: 'इनपुट स्ट्रीम बंद है, संगठन चुनना संभव नहीं',
563
+ },
564
+
565
+ // ── scripts/postinstall.js ─────────────────────────
566
+ postinstall: {
567
+ welcome_title: ' 🎉 YidaConnector में आपका स्वागत है! ',
568
+ install_success: ' ✅ स्थापना पूर्ण! {0} Yida AI विकास टूल तैयार है।',
569
+ update_success: ' ✅ अपडेट पूर्ण! {0} YidaConnector नवीनतम संस्करण में अपग्रेड हुआ।',
570
+ ai_mode_title: ' 🚀 AI वार्तालाप मोड',
571
+ ai_mode_desc: ' Codex / Claude Code / Aone Copilot / Cursor में सीधे बात करें:',
572
+ prompt1: ' 📋 "Yida से मेरे लिए उपस्थिति प्रबंधन प्रणाली बनाएं"',
573
+ prompt2: ' 💰 "व्यक्तिगत वेतन कैलकुलेटर ऐप बनाएं"',
574
+ prompt3: ' 🏢 "CRM ग्राहक प्रबंधन प्रणाली बनाएं"',
575
+ prompt4: ' 🎂 "जन्मदिन शुभकामना मिनी-ऐप बनाएं"',
576
+ steps_title: ' 📖 शुरुआत करें',
577
+ step1: ' {0}Step 1{1} अपना AI कोडिंग टूल खोलें (Codex / Claude Code / Cursor आदि)',
578
+ step2: ' {0}Step 2{1} प्राकृतिक भाषा में अपना ऐप वर्णन करें',
579
+ step3: ' {0}Step 3{1} AI स्वचालित रूप से yidaconnector कमांड चलाता है',
580
+ step4: ' {0}Step 4{1} अपना Yida ऐप लिंक प्राप्त करें 🎉',
581
+ commands_title: ' ⚡ त्वरित कमांड',
582
+ cmd_env: ' {0}yidaconnector env{1} {2}# AI टूल वातावरण और लॉगिन स्थिति पहचानें{3}',
583
+ cmd_login: ' {0}yidaconnector login{1} {2}# Yida में लॉगिन करें{3}',
584
+ cmd_help: ' {0}yidaconnector --help{1} {2}# सभी कमांड देखें{3}',
585
+ footer1: ' 📚 दस्तावेज़: https://github.com/bunnyrui/yidaconnector',
586
+ footer2: ' 💬 समुदाय: DingTalk पर YidaConnector समुदाय में शामिल हों',
587
+ },
588
+
589
+ // ── lib/cdn-*.js ───────────────────────────────────
590
+ cdn: {
591
+ config_load_error: 'CDN कॉन्फ़िगरेशन लोड विफल: {0}',
592
+ config_saved: '✅ CDN कॉन्फ़िगरेशन सहेजा गया: {0}',
593
+ config_usage: 'उपयोग: yidaconnector cdn-config [विकल्प]',
594
+ config_file_path: '📄 कॉन्फ़िगरेशन फ़ाइल: {0}',
595
+ config_section_aliyun: '🔐 Alibaba Cloud क्रेडेंशियल',
596
+ config_section_cdn: '🌐 CDN कॉन्फ़िगरेशन',
597
+ config_section_oss: '📦 OSS कॉन्फ़िगरेशन',
598
+ config_section_upload: '📤 अपलोड कॉन्फ़िगरेशन',
599
+ config_cdn_domain: 'CDN डोमेन',
600
+ config_oss_region: 'OSS क्षेत्र',
601
+ config_oss_bucket: 'OSS बकेट',
602
+ config_oss_endpoint: 'OSS एंडपॉइंट',
603
+ config_upload_path: 'अपलोड पथ',
604
+ config_compress: 'छवि संपीड़न',
605
+ config_max_width: 'अधिकतम चौड़ाई',
606
+ config_quality: 'छवि गुणवत्ता',
607
+ config_not_set: 'सेट नहीं',
608
+ config_enabled: 'सक्षम',
609
+ config_disabled: 'अक्षम',
610
+ config_status_valid: '✅ कॉन्फ़िगरेशन पूर्ण, उपयोग के लिए तैयार',
611
+ config_status_invalid: '⚠️ कॉन्फ़िगरेशन अपूर्ण',
612
+ config_missing: ' अनुपस्थित फ़ील्ड: {0}',
613
+ config_updated: '✅ कॉन्फ़िगरेशन अपडेट हुआ!',
614
+ config_init_title: '🔧 CDN कॉन्फ़िगरेशन प्रारंभ सहायक',
615
+ config_init_desc: 'CDN छवि अपलोड उपयोग करने के लिए निम्नलिखित कॉन्फ़िगर करें:',
616
+ upload_no_files: '❌ कृपया अपलोड करने के लिए छवि फ़ाइलें निर्दिष्ट करें',
617
+ config_incomplete: '❌ CDN कॉन्फ़िगरेशन अपूर्ण है',
618
+ missing_fields: ' अनुपस्थित फ़ील्ड: {0}',
619
+ run_config_init: ' कृपया पहले चलाएं: yidaconnector cdn-config --init',
620
+ no_config: '❌ CDN कॉन्फ़िगरेशन नहीं मिला',
621
+ oss_sdk_required: '❌ ali-oss SDK अनुपस्थित है',
622
+ run_npm_install: ' चलाएं: npm install {0}',
623
+ no_images_found: '❌ कोई समर्थित छवि फ़ाइल नहीं मिली',
624
+ uploading_images: '📤 {0} छवियां अपलोड हो रही हैं...',
625
+ uploading_file: ' अपलोड हो रहा है: {0}',
626
+ upload_success: ' ✅ {0}',
627
+ upload_failed: ' ❌ {0} अपलोड विफल: {1}',
628
+ upload_summary: '\n📊 अपलोड सारांश',
629
+ upload_success_count: ' सफल: {0}',
630
+ upload_fail_count: ' विफल: {0}',
631
+ cdn_urls: '\n🔗 CDN URL सूची:',
632
+ upload_error: '❌ अपलोड विफल: {0}',
633
+ refresh_no_targets: '❌ कृपया ताज़ा करने के लिए URL या निर्देशिकाएं निर्दिष्ट करें',
634
+ cdn_sdk_required: '❌ Alibaba Cloud CDN SDK अनुपस्थित है',
635
+ querying_quota: '📊 ताज़ा कोटा की जांच हो रही है...',
636
+ quota_info: ' URL ताज़ा: {0}/दिन, {1} शेष | निर्देशिका: {2}/दिन, {3} शेष',
637
+ refreshing_urls: '🔄 {0} URL ताज़ा हो रहे हैं...',
638
+ refreshing_paths: '🔄 {0} निर्देशिकाएं ताज़ा हो रही हैं...',
639
+ refresh_task_id: ' ✅ कार्य ID: {0}',
640
+ refresh_urls_failed: ' ❌ URL ताज़ा विफल: {0}',
641
+ refresh_paths_failed: ' ❌ निर्देशिका ताज़ा विफल: {0}',
642
+ refresh_summary: '\n📊 ताज़ा सारांश',
643
+ url_refresh_success: ' ✅ URL ताज़ा सफल, कार्य ID: {0}',
644
+ path_refresh_success: ' ✅ निर्देशिका ताज़ा सफल, कार्य ID: {0}',
645
+ refresh_error: '❌ ताज़ा विफल: {0}',
646
+ file_not_found: '❌ फ़ाइल नहीं मिली: {0}',
647
+ },
648
+
649
+ // ── src/flash-note/flash-to-prd.ts ──────────────
650
+ flashNote: {
651
+ toPrd: {
652
+ title: '📋 DingTalk Flash Note se PRD',
653
+ help_usage: 'Upyog: yidaconnector flash-to-prd --file <path> [--name <project-name>]',
654
+ help_usage2: ' yidaconnector flash-to-prd --name <project-name> (stdin se padhen)',
655
+ help_args_title: 'Arguments:',
656
+ help_arg_file: ' --file, -f <path> Flash note file path (.txt / .md)',
657
+ help_arg_name: ' --name, -n <name> Project name (optional, auto-extracted)',
658
+ help_arg_max_tokens: ' --max-tokens <count> AI max output tokens (default 8000)',
659
+ help_examples_title: 'Examples:',
660
+ help_example1: ' yidaconnector flash-to-prd --file ./meeting-notes.txt --name "Equipment Inspection"',
661
+ help_example2: ' cat meeting.txt | yidaconnector flash-to-prd --name "Equipment Inspection"',
662
+ step_read: '[Step 1] Flash note content padh rahe hain...',
663
+ file_not_found: 'File nahi mili: {0}',
664
+ no_input: 'Koi flash note content nahi diya gaya. --file se file specify karein ya stdin se content bhejein.',
665
+ stdin_empty: 'Standard input khali hai',
666
+ read_success: '✅ Safaltapoorvak padha, {0} characters',
667
+ step_load_module: '[Step 2] Prompt builder module load ho raha hai...',
668
+ module_loaded_builtin: '✅ Built-in prompt module load kiya gaya',
669
+ module_loaded_local: '✅ Local prompt module load kiya gaya: {0}',
670
+ module_not_found: '❌ build-flash-note-prompt.js module nahi mila',
671
+ module_path_tried: ' Tried path {0}: {1}',
672
+ step_preprocess: '[Step 3] Pre-processing + meeting recognition...',
673
+ preprocess_result: ' Pre-processing: {0} chars -> {1} chars',
674
+ meeting_meta: ' Meeting metadata: {0} fields{1}',
675
+ a1_sections: ' A1 summary sections: {0}{1}',
676
+ speakers: ' Speakers identified: {0}{1}',
677
+ speakers_with_role: ' ({0} role annotations sahit)',
678
+ step_login: '[Step 4] Login status check kar rahe hain...',
679
+ no_login: ' Koi login session nahi mila, login shuru ho raha hai...',
680
+ login_ready: '✅ Login taiyar ({0})',
681
+ step_ai: '[Step 5] PRD banane ke liye AI ko call kar rahe hain...',
682
+ single_segment: ' Single segment mode, prompt length: {0} chars',
683
+ multi_segment: ' Multi-segment mode, total {0} segments',
684
+ extracting_segment: ' Segment {0}/{1} extract kar rahe hain ({2} chars)...',
685
+ merging_segments: ' Segment results merge kar rahe hain...',
686
+ ai_success: '✅ PRD safaltapoorvak banaya gaya',
687
+ ai_error: 'AI API call vifal: {0}',
688
+ done: '✅ Flash note se PRD conversion poorn',
689
+ done_project: ' Project name: {0}',
690
+ done_file: ' Output file: {0}',
691
+ done_size: ' File size: {0} characters',
692
+ done_meeting: ' Meeting recognition: {0} metadata, {1} A1 sections, {2} speakers',
693
+ },
694
+ },
695
+ update_app: {
696
+ 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.',
697
+ },
698
+ aggregate_table: {
699
+ usage: 'Usage: yidaconnector aggregate-table <list|create-empty|inspect|preview|save|publish|status> <appType> ...',
700
+ commands_title: 'Subcommands:',
701
+ cmd_list: 'list <appType> [--keyword <text>] [--json] List aggregate tables in an app',
702
+ cmd_create_empty: 'create-empty <appType> "<name>" [--open|--no-open] Create a blank aggregate table and return the designer URL',
703
+ cmd_inspect: 'inspect <appType> <formUuid> [--json] Read aggregate table design config',
704
+ cmd_preview: 'preview <appType> <formUuid> <design.json> [--json] Preview config without saving',
705
+ cmd_save: 'save <appType> <formUuid> <design.json> [--json] Save an aggregate table draft',
706
+ cmd_publish: 'publish <appType> <formUuid> <design.json> [--json] Publish aggregate table config',
707
+ cmd_status: 'status <appType> <formUuid> [--json] Query aggregate table build status',
708
+ examples_title: 'Examples:',
709
+ example_list: 'yidaconnector aggregate-table list APP_XXX',
710
+ example_create_empty: 'yidaconnector aggregate-table create-empty APP_XXX "Customer Contract Aggregate" --open',
711
+ example_inspect: 'yidaconnector aggregate-table inspect APP_XXX FORM_XXX --json',
712
+ example_preview: 'yidaconnector aggregate-table preview APP_XXX FORM_XXX .cache/yidaconnector/aggregate/design.json',
713
+ example_save: 'yidaconnector aggregate-table save APP_XXX FORM_XXX .cache/yidaconnector/aggregate/design.json',
714
+ example_publish: 'yidaconnector aggregate-table publish APP_XXX FORM_XXX .cache/yidaconnector/aggregate/design.json',
715
+ example_status: 'yidaconnector aggregate-table status APP_XXX FORM_XXX',
716
+ list_usage: 'Usage: yidaconnector aggregate-table list <appType> [--keyword <text>] [--json]',
717
+ create_empty_usage: 'Usage: yidaconnector aggregate-table create-empty <appType> "<name>" [--locale zh_CN|en_US|ja_JP] [--open|--no-open]',
718
+ inspect_usage: 'Usage: yidaconnector aggregate-table inspect <appType> <formUuid> [--json]',
719
+ preview_usage: 'Usage: yidaconnector aggregate-table preview <appType> <formUuid> <design.json> [--json]',
720
+ save_usage: 'Usage: yidaconnector aggregate-table save <appType> <formUuid> <design.json> [--json]',
721
+ publish_usage: 'Usage: yidaconnector aggregate-table publish <appType> <formUuid> <design.json> [--json]',
722
+ status_usage: 'Usage: yidaconnector aggregate-table status <appType> <formUuid> [--json]',
723
+ no_login: 'No login state found. Run yidaconnector login first.',
724
+ unsupported_locale: 'Unsupported locale: {0}',
725
+ unknown_subcommand: 'Unknown aggregate-table subcommand: {0}',
726
+ design_required: 'Missing aggregate table design JSON or file path',
727
+ invalid_json: 'Aggregate table design config is not valid JSON: {0}',
728
+ design_object_required: 'Aggregate table design config must be a JSON object',
729
+ check_feature: 'Check aggregate table capability',
730
+ feature_disabled: 'Aggregate table is not enabled for this app/org, or the edition quota has been reached',
731
+ create_empty: 'Create blank aggregate table',
732
+ inspect: 'Read aggregate table config',
733
+ preview: 'Preview aggregate table config',
734
+ save: 'Save aggregate table draft',
735
+ publish: 'Publish aggregate table config',
736
+ status: 'Query aggregate table build status',
737
+ publish_requires_source: 'Publishing requires at least one data source. Configure relationForms first.',
738
+ list_success: 'Aggregate table list',
739
+ create_empty_success: 'Aggregate table created',
740
+ inspect_success: 'Aggregate table config loaded',
741
+ preview_success: 'Aggregate table preview succeeded',
742
+ save_success: 'Aggregate table draft saved',
743
+ publish_success: 'Aggregate table published',
744
+ status_success: 'Aggregate table status loaded',
745
+ },
746
+ ai_form_setting: {
747
+ usage: 'Usage: yidaconnector ai-form-setting <get|fields|models|enable|disable|save> <appType> ...',
748
+ commands_title: 'Subcommands:',
749
+ cmd_get: 'get <appType> <formUuid> [--raw] [--json] Query AI approval prompt config',
750
+ cmd_fields: 'fields <appType> <formUuid> [--type TEXT|IMAGE|ATTACHMENT] List insertable fields',
751
+ cmd_models: 'models <appType> [--type TEXT|IMAGE|ATTACHMENT] List available models',
752
+ cmd_enable: 'enable <appType> <formUuid> [--json] Enable AI approval prompts',
753
+ cmd_disable: 'disable <appType> <formUuid> [--json] Disable AI approval prompts',
754
+ cmd_save: 'save <appType> <formUuid> <config.json> [--enable] Save prompts and model config',
755
+ examples_title: 'Examples:',
756
+ example_get: 'yidaconnector ai-form-setting get APP_XXX FORM_XXX --json',
757
+ example_fields: 'yidaconnector ai-form-setting fields APP_XXX FORM_XXX --type ATTACHMENT',
758
+ example_models: 'yidaconnector ai-form-setting models APP_XXX --type IMAGE',
759
+ example_enable: 'yidaconnector ai-form-setting enable APP_XXX FORM_XXX',
760
+ example_save: 'yidaconnector ai-form-setting save APP_XXX FORM_XXX .cache/yidaconnector/ai-form-setting/config.json --enable',
761
+ enable_disable_conflict: '--enable and --disable cannot be used together',
762
+ invalid_type: 'Invalid prompt type: {0}. Valid values: {1}',
763
+ invalid_status: 'Invalid AI approval prompt status: {0}',
764
+ config_required: 'Missing AI approval prompt JSON config or file path',
765
+ invalid_json: 'AI approval prompt config is not valid JSON: {0}',
766
+ invalid_variable: 'Variable #{0} must be an object',
767
+ variable_required: 'Variable #{0} must contain varName and fieldId',
768
+ prompt_required: 'Prompt {0} is missing prompt/content',
769
+ variables_array_required: 'variables must be an array',
770
+ invalid_item: 'Prompt config #{0} must be an object',
771
+ model_required: 'Prompt {0} is missing modelId',
772
+ invalid_config_part: '{0} must be a JSON object or a valid JSON string',
773
+ config_object_required: 'AI approval prompt config must be a JSON object or array',
774
+ items_array_required: 'AI approval prompt config must contain an items array',
775
+ too_many_items: 'AI approval prompts support up to {0} items',
776
+ duplicate_item_id: 'Duplicate itemId: {0}',
777
+ no_login: 'No login state found. Run yidaconnector login first.',
778
+ get_usage: 'Usage: yidaconnector ai-form-setting get <appType> <formUuid> [--raw] [--json]',
779
+ fields_usage: 'Usage: yidaconnector ai-form-setting fields <appType> <formUuid> [--type TEXT|IMAGE|ATTACHMENT] [--json]',
780
+ models_usage: 'Usage: yidaconnector ai-form-setting models <appType> [--type TEXT|IMAGE|ATTACHMENT] [--json]',
781
+ status_usage: 'Usage: yidaconnector ai-form-setting <enable|disable> <appType> <formUuid> [--json]',
782
+ save_usage: 'Usage: yidaconnector ai-form-setting save <appType> <formUuid> <config.json> [--enable|--disable] [--json]',
783
+ get_action: 'Query AI approval prompt config',
784
+ fields_action: 'Query AI approval prompt fields',
785
+ models_action: 'Query AI approval prompt models',
786
+ status_action: 'Update AI approval prompt status',
787
+ save_action: 'Save AI approval prompt config',
788
+ get_success: 'AI approval prompt config',
789
+ fields_success: 'AI approval prompt fields',
790
+ models_success: 'AI approval prompt models',
791
+ save_success: 'AI approval prompt config saved',
792
+ enabled: 'AI approval prompts enabled',
793
+ disabled: 'AI approval prompts disabled',
794
+ unknown_subcommand: 'Unknown ai-form-setting subcommand: {0}',
795
+ },
796
+ codex_login: {
797
+ title: ' yidaconnector login {0} - {1} Login Mode',
798
+ not_codex: 'Current environment is not detected as Codex / Qoder / Wukong; returning an in-app browser login handoff only.',
799
+ no_playwright: '{0} mode does not require Playwright or a separate Chromium install.',
800
+ using_browser: '{0} in-app Browser is only suitable for unauthenticated page previews; use yidaconnector login --browser for Yida login cookies.',
801
+ browser_handoff_hint: '{0} in-app Browser does not support authentication Cookie export. Use yidaconnector login --browser when CLI cookies are required.',
802
+ handoff_message: '{0} in-app Browser cannot export Yida login cookies. Run fallback_command when CLI cookies are required.',
803
+ cache_available: 'Existing CLI Cookie cache is available; no browser login needed.',
804
+ },
805
+ };