@succsoft/succapp 5.0.3 → 5.0.6

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.
@@ -6,6 +6,8 @@
6
6
  "err.net.connectionFailed": "Cannot connect to server: {url}{causeMessage}",
7
7
  "err.net.connectionFailed.desc": "Check the server address and network connection, then retry or log in again.",
8
8
  "err.login.notlogin": "Authentication failed, please log in again",
9
+ "err.login.busy": "The system is busy. Please try later!",
10
+ "err.login.busy.desc": "Possible causes include license limits on sessions or users, or database connection/query failures.",
9
11
  "err.oauth2.tokenExpired": "OAuth2 access token expired.",
10
12
  "err.login.oauthTimeout": "OAuth2 authorization timed out.",
11
13
  "err.login.oauthTimeout.desc": "Restart login, complete authorization in the browser, or use PAT login in environments without a browser.",
@@ -37,6 +39,12 @@
37
39
  "err.net.invalidUrl": "Invalid URL: {url}",
38
40
  "err.meta.invalidPath": "Invalid metadata path",
39
41
  "err.meta.invalidPath.desc": "Use a valid absolute metadata path and try again.",
42
+ "err.meta.invalidPath.relativeSearchQuery": "Relative search paths are not supported: {path}",
43
+ "err.meta.invalidPath.relativeSearchQuery.hint": "Use an absolute path beginning with '/', or a file name without '/'.",
44
+ "err.meta.invalidPath.parentDirGlob": "Glob wildcards are not supported in --parent-dir: {path}",
45
+ "err.meta.invalidPath.parentDirGlob.hint": "--parent-dir already searches recursively. Use --path='/DIR/*' to match direct children or --path for another glob.",
46
+ "err.meta.invalidPath.parentProjectMismatch": "Parent directory {path} does not belong to project {projectName}.",
47
+ "err.meta.invalidPath.parentProjectMismatch.hint": "Use a parent directory whose first path segment matches --project.",
40
48
  "err.meta.projectExist": "A project with the same name already exists.",
41
49
  "err.meta.projectname.illegal": "Invalid project name. Use letters, numbers, and underscores only, and keep it within 16 characters.",
42
50
  "err.meta.projectname.reservedwords": "This project name is reserved by the system.",
@@ -61,7 +69,8 @@
61
69
  "err.workspace.issue.E402": "SuccApp .gitignore rules are missing",
62
70
  "err.workspace.issue.E403": "AI agent workspace files are missing",
63
71
  "err.workspace.issue.E404": "TypeScript support files are missing",
64
- "err.workspace.issue.E405": "JSON Schema support files are missing",
72
+ "err.workspace.issue.E405": "Metadata validation support files are missing",
73
+ "err.workspace.issue.E405.hint": "Run 'succapp workspace init --scope dev', then retry the command.",
65
74
  "err.workspace.issue.E407": "SuccApp docs skill files are missing",
66
75
  "err.lock.busy": "Cannot {attemptedCommand}: workspace scope {conflictScope} is held by another process.",
67
76
  "err.lock.busy.desc": "Stop the running process and retry; locks left by crashed processes are cleaned up automatically on the next attempt.",
@@ -82,10 +91,12 @@
82
91
  "err.cli.unknownOption": "Unknown option: {option}",
83
92
  "err.cli.missingOptionValue": "Option requires a value: {option}",
84
93
  "err.cli.unexpectedOptionValue": "Option does not take a value: {option}",
85
- "err.cli.missingArgument": "Missing required argument: {argument}.",
86
- "err.cli.missingArgument.hint": "Usage: {usage}.",
94
+ "err.cli.missingArgument": "Missing required argument: {argument}",
95
+ "err.cli.missingArgument.hint": "Usage: {usage}",
87
96
  "err.cli.tooManyArguments": "Too many arguments for {command}.",
88
97
  "err.cli.tooManyArguments.hint": "This command accepts at most {max} positional argument(s).",
98
+ "err.cli.tooManyValues": "Too many values for {input}: received {actualItems}.",
99
+ "err.cli.tooManyValues.hint": "Provide at most {maxItems} values.",
89
100
  "err.cli.missingInput": "Missing required input: {input}.",
90
101
  "err.cli.missingInput.hint": "Provide the required input and retry.",
91
102
  "err.cli.missingInput.hintWithSources": "Provide {sources} and retry.",
@@ -95,15 +106,14 @@
95
106
  "err.cli.invalidUrl.hint": "Provide a full http:// or https:// URL.",
96
107
  "err.cli.invalidPositiveInteger": "{input} must be a positive integer: {value}.",
97
108
  "err.cli.invalidNonNegativeInteger": "{input} must be a non-negative integer: {value}.",
98
- "err.cli.invalidNonNegativeIntegerRange": "{input} must be a non-negative integer no greater than {max}: {value}.",
109
+ "err.cli.invalidNonNegativeIntegerRange": "{input} must be an integer from {min} to {max}: {value}.",
99
110
  "err.cli.invalidChoice": "Invalid value for {input}: {value}.",
100
111
  "err.cli.invalidChoice.hint": "Expected one of: {allowedValues}.",
101
112
  "err.cli.invalidKeyValue": "Invalid key=value for {input}: {value}.",
102
113
  "err.cli.invalidKeyValue.hint": "Use key=value.",
103
114
  "err.cli.invalidNonEmptyKeyValue": "Invalid key=value for {input}: {value}.",
104
115
  "err.cli.invalidNonEmptyKeyValue.hint": "Use key=value and keep key non-empty.",
105
- "err.cli.invalidJson": "Invalid JSON for {input}: {source}.",
106
- "err.cli.invalidJsonObject": "{input} must be a JSON object: {source}.",
116
+ "err.cli.invalidJsonObject": "{input} must be a valid JSON object: {source}.",
107
117
  "err.cli.invalidReadableFile": "Input file is not readable: {source}.",
108
118
  "err.cli.invalidRegularFile": "Input path is not a regular file: {source}.",
109
119
  "err.cli.invalidWorkspace": "Not a SuccApp workspace: {source}.",
@@ -134,6 +144,9 @@
134
144
  "err.cli.confirmationRequired.projRemove.hint": "Confirm the local project files and mirror baselines can be removed, then pass {flag}.",
135
145
  "err.cli.confirmationRequired.discardAll": "Discarding all workspace changes requires confirmation.",
136
146
  "err.cli.confirmationRequired.discardAll.hint": "Confirm all local workspace changes can be discarded, then pass {flag}.",
147
+ "err.cli.confirmationRequired.openLocalChanged": "The local workspace file has unpushed changes: {path}.",
148
+ "err.cli.confirmationRequired.openLocalChanged.desc": "The browser opens the server version, so it may show old content or 404 for a new file.",
149
+ "err.cli.confirmationRequired.openLocalChanged.hint": "Run 'succapp workspace push {path}' first, or pass {flag} to open the server page anyway.",
137
150
  "err.db.nonReadOnlySql": "db query only runs read-only SQL. Use db exec for SQL that may change data or schema.",
138
151
  "err.db.nonReadOnlySql.hint": "Review the SQL impact, then run 'succapp db exec {flag}'.",
139
152
  "err.net.httpStatusUnexpected": "Unexpected HTTP response status",
@@ -198,28 +211,27 @@
198
211
  "workspace.sync.progress.upgradeMeta.checked": "Checked {0} metadata file(s): {1} upgradeable.",
199
212
  "workspace.sync.progress.upgradeMeta.done": "Upgraded metadata files: {0} changed, {1} failed, {2} checked.",
200
213
  "workspace.sync.progress.upgradeMeta.scan": "Scanning metadata files",
201
- "workspace.validation.json.invalidJson": "Invalid JSON: {0}.",
202
- "workspace.validation.json.jsonFileEmpty": "JSON file is empty.",
203
214
  "cli.cmd.common.desc": "Common commands.",
204
215
  "cli.cmd.common.summary": "common commands",
205
216
  "cli.cmd.common.title": "Common",
206
217
  "cli.cmd.root.summary": "SuccApp command line interface.",
207
218
  "cli.host.localeFallback": "Locale {0} is not available; using default messages.",
208
219
  "cli.opt.help": "Show this help.",
209
- "cli.opt.json": "Write newline-delimited JSON output.",
220
+ "cli.opt.json": "Write NDJSON for scripts; content output uses Base64.",
210
221
  "cli.opt.locale": "Use the given locale for CLI messages.",
211
222
  "cli.opt.lockTimeout": "Wait for a workspace lock before failing.",
212
223
  "cli.opt.logLevel": "Set log level: trace, debug, info, warn, or error.",
224
+ "cli.opt.prettyJson": "Write formatted JSON for people; not intended for line-oriented scripts.",
213
225
  "cli.opt.quiet": "Suppress progress and informational output.",
214
- "cli.opt.server": "Select a server for commands that support it.",
226
+ "cli.opt.server": "Use the specified server for commands that support it.",
215
227
  "cli.opt.verbose": "Enable debug logging.",
216
- "cli.opt.version": "Show version information.",
228
+ "cli.opt.version": "Show version information and check for SuccApp CLI updates.",
217
229
  "cli.opt.workspace": "Run as if SuccApp was started in the given workspace.",
218
230
  "cli.cmd.auth.title": "Auth",
219
231
  "cli.cmd.auth.summary": "login, logout, and inspect stored server auth",
220
232
  "cli.cmd.auth.desc": "Login, logout, and inspect stored server auth.",
221
233
  "cli.cmd.auth.login.summary": "Login to a server.",
222
- "cli.cmd.auth.login.desc": "Login to a SuccBI server with OAuth2 or PAT and save local auth state.",
234
+ "cli.cmd.auth.login.desc": "Login to a SuccApp server with OAuth2 or PAT and save local auth state.",
223
235
  "cli.cmd.auth.login.oauth": "Use OAuth2 login. This is the default.",
224
236
  "cli.cmd.auth.login.pat": "Use Personal Access Token login. Interactive terminals prompt for the token; piped input is read from stdin.",
225
237
  "cli.cmd.auth.login.patPrompt": "Personal Access Token: ",
@@ -244,7 +256,13 @@
244
256
  "cli.cmd.db.summary": "inspect and operate server databases and data sources",
245
257
  "cli.cmd.db.desc": "Inspect and operate server databases and data sources.",
246
258
  "cli.cmd.db.dataSource": "Data source",
247
- "cli.cmd.db.defaultSchema": "Default schema",
259
+ "cli.cmd.db.connection": "Connection",
260
+ "cli.cmd.db.defaultSchema": "Logical default schema",
261
+ "cli.cmd.db.databaseProduct": "Database product",
262
+ "cli.cmd.db.databaseVersion": "Database version",
263
+ "cli.cmd.db.databaseFullVersion": "Full database version",
264
+ "cli.cmd.db.driver": "JDBC driver",
265
+ "cli.cmd.db.driverVersion": "Driver version",
248
266
  "cli.cmd.db.dryImport": "Dry run import",
249
267
  "cli.cmd.db.dsConfigMust": "Datasource config must be a JSON object: {0}",
250
268
  "cli.cmd.db.imported": "Imported",
@@ -266,18 +284,23 @@
266
284
  "cli.cmd.db.sqlExecutedSuccess": "SQL executed successfully.",
267
285
  "cli.cmd.db.sqlOrFileConflict": "Pass SQL either as <sql> or --file, not both.",
268
286
  "cli.cmd.db.sqlUpdateCount": "SQL update count: {0}",
287
+ "cli.cmd.db.query.empty": "Query succeeded; 0 rows returned.",
269
288
  "cli.cmd.db.tableOrQueryConflict": "Pass either <table> or --query/--query-file, not both.",
270
289
  "cli.cmd.db.source.title": "Database source",
271
290
  "cli.cmd.db.source.summary": "inspect and manage database sources",
272
291
  "cli.cmd.db.source.desc": "Inspect and manage database sources.",
273
292
  "cli.cmd.db.source.list.summary": "List visible data sources.",
274
293
  "cli.cmd.db.source.list.desc": "List data sources visible to the active SuccApp server session.",
294
+ "cli.cmd.db.source.list.empty": "No data sources are available.",
275
295
  "cli.cmd.db.source.show.summary": "Show a datasource configuration.",
276
296
  "cli.cmd.db.source.show.desc": "Show a datasource configuration.",
277
- "cli.cmd.db.source.test.summary": "Test a datasource connection.",
278
- "cli.cmd.db.source.test.desc": "Test a datasource connection from a JSON configuration.",
297
+ "cli.cmd.db.source.probe.summary": "Validate an existing datasource and show its logical schema, database, and driver details.",
298
+ "cli.cmd.db.source.probe.desc": "Open and validate an existing datasource connection, then report its logical default schema, database product, normalized and full versions, and JDBC driver. JSON output also includes the sanitized datasource configuration.",
299
+ "cli.cmd.db.source.probe.datasource": "Name of the existing datasource to probe.",
300
+ "cli.cmd.db.source.test.summary": "Test connectivity for an existing datasource or an unsaved JSON configuration.",
301
+ "cli.cmd.db.source.test.desc": "Validate connectivity for an existing datasource, or for a JSON configuration without saving it. Both modes return the logical default schema, database versions, and JDBC driver details.",
302
+ "cli.cmd.db.source.test.datasource": "Name of the existing datasource to test.",
279
303
  "cli.cmd.db.source.test.config": "Read datasource configuration JSON from a file, or use - for stdin.",
280
- "cli.cmd.db.source.test.testOk": "Datasource connection succeeded: {0}",
281
304
  "cli.cmd.db.source.create.summary": "Create a datasource.",
282
305
  "cli.cmd.db.source.create.desc": "Create a datasource from a JSON configuration.",
283
306
  "cli.cmd.db.source.create.config": "Read datasource configuration JSON from a file, or use - for stdin.",
@@ -299,12 +322,15 @@
299
322
  "cli.cmd.db.schema.list.summary": "List schemas for a data source.",
300
323
  "cli.cmd.db.schema.list.desc": "List schemas for a data source.",
301
324
  "cli.cmd.db.schema.list.catalog": "Catalog",
325
+ "cli.cmd.db.schema.list.empty": "No schemas found for data source '{0}'.",
302
326
  "cli.cmd.db.table.title": "Database table",
303
327
  "cli.cmd.db.table.summary": "inspect database tables",
304
328
  "cli.cmd.db.table.desc": "Inspect database tables.",
305
329
  "cli.cmd.db.table.list.summary": "List tables for a data source.",
306
330
  "cli.cmd.db.table.list.desc": "List tables for a data source.",
307
331
  "cli.cmd.db.table.list.tableNameContains": "Filter tables by name. Supports * and ? wildcards.",
332
+ "cli.cmd.db.table.list.empty": "No tables are available.",
333
+ "cli.cmd.db.table.list.noMatches": "No tables matched the current filters.",
308
334
  "cli.cmd.db.table.describe.summary": "Describe a database table.",
309
335
  "cli.cmd.db.table.describe.desc": "Describe columns and metadata for a database table.",
310
336
  "cli.cmd.db.table.describe.schema": "Schema name.",
@@ -344,25 +370,33 @@
344
370
  "cli.cmd.db.export.force": "Overwrite the output file if it already exists.",
345
371
  "cli.cmd.db.export.exportedData": "Exported data to {0}",
346
372
  "cli.cmd.server.title": "Server",
347
- "cli.cmd.server.summary": "inspect and operate a SuccBI server",
348
- "cli.cmd.server.desc": "Inspect and operate a SuccBI server.",
373
+ "cli.cmd.server.summary": "inspect and operate the target SuccApp server",
374
+ "cli.cmd.server.desc": "Inspect and operate the target SuccApp server.",
349
375
  "cli.cmd.server.serverNotConfigured": "Server is not configured for this workspace: {0}",
350
376
  "cli.cmd.server.serverReachable": "Server reachable: {0}",
351
377
  "cli.cmd.server.ping.summary": "Check server reachability.",
352
378
  "cli.cmd.server.ping.desc": "Check whether the SuccApp Dev Tool v2 ping endpoint is reachable.",
353
379
  "cli.cmd.server.info.summary": "Show server information.",
354
380
  "cli.cmd.server.info.desc": "Show server information and metadata versions.",
381
+ "cli.cmd.server.info.scope": "Show only the selected scope. Repeat or use comma-separated values: product, sys, metadata, inspect, jvm, env, all.",
382
+ "cli.cmd.server.info.all": "Show all information scopes.",
383
+ "cli.cmd.server.info.raw": "Output the raw server detail response.",
355
384
  "cli.cmd.server.cache.title": "Server cache",
356
385
  "cli.cmd.server.cache.summary": "manage server cache",
357
386
  "cli.cmd.server.cache.desc": "Manage server cache.",
358
- "cli.cmd.server.cache.refresh.summary": "Refresh server cache.",
359
- "cli.cmd.server.cache.refresh.desc": "Refresh server-side Dev Tool metadata cache.",
360
- "cli.cmd.server.cache.refresh.refreshed": "Server cache refreshed: {0}",
387
+ "cli.cmd.server.cache.list.summary": "List server cache entries.",
388
+ "cli.cmd.server.cache.list.desc": "List server-side system cache entries (count, disk/memory usage, hit rate).",
389
+ "cli.cmd.server.cache.list.empty": "No server cache entries.",
390
+ "cli.cmd.server.cache.clean.summary": "Clean server cache.",
391
+ "cli.cmd.server.cache.clean.desc": "Clean a server-side system cache entry by <name>, or all caches with --all.",
392
+ "cli.cmd.server.cache.clean.all": "Clean all server cache entries.",
393
+ "cli.cmd.server.cache.clean.cleaned": "Server cache cleaned: {1} ({0})",
361
394
  "cli.cmd.server.proj.title": "Server project",
362
395
  "cli.cmd.server.proj.summary": "inspect server projects",
363
396
  "cli.cmd.server.proj.desc": "Inspect server projects.",
364
397
  "cli.cmd.server.proj.list.summary": "List server projects.",
365
398
  "cli.cmd.server.proj.list.desc": "List projects visible on a server.",
399
+ "cli.cmd.server.proj.list.empty": "No visible projects found.",
366
400
  "cli.cmd.server.proj.create.summary": "Create a server project.",
367
401
  "cli.cmd.server.proj.create.desc": "Create a metadata project on a server.",
368
402
  "cli.cmd.server.proj.create.descOption": "Set the project description.",
@@ -372,26 +406,47 @@
372
406
  "cli.cmd.server.file.desc": "Inspect and operate server metadata files.",
373
407
  "cli.cmd.server.file.badValue": "Invalid value for {0}: {1}",
374
408
  "cli.cmd.server.file.expectedRevRequired": "{0} requires --expected-revision=<n> unless --force is used.",
375
- "cli.cmd.server.file.file": "file",
376
409
  "cli.cmd.server.file.fileOrStdinConflict": "Use either --file or --stdin, not both.",
377
410
  "cli.cmd.server.file.files": "No files.",
378
- "cli.cmd.server.file.folder": "folder",
379
- "cli.cmd.server.file.id": "ID",
380
411
  "cli.cmd.server.file.inputPathRegular": "Input path is not a regular file: {0}",
381
412
  "cli.cmd.server.file.missingContentSource": "Missing content source. Use --file=<local-file> or --stdin.",
382
413
  "cli.cmd.server.file.missingServerFile": "Missing server file path.",
383
- "cli.cmd.server.file.modifyTime": "Modify time",
384
- "cli.cmd.server.file.name": "Name",
385
414
  "cli.cmd.server.file.revForceConflict": "{0} accepts either --expected-revision or --force, not both.",
386
- "cli.cmd.server.file.size": "Size",
387
415
  "cli.cmd.server.file.success": "{0} succeeded: {1}",
388
416
  "cli.cmd.server.file.unknownServerFile": "Unknown server file error.",
389
417
  "cli.cmd.server.file.list.summary": "List server files.",
390
418
  "cli.cmd.server.file.list.desc": "List direct children of a server metadata directory.",
419
+ "cli.cmd.server.file.list.empty": "Directory is empty: {0}",
420
+ "cli.cmd.server.file.search.summary": "Search server files.",
421
+ "cli.cmd.server.file.search.desc": "Search readable server metadata files by full path or by combinable project, parent-directory, and file-name filters.",
422
+ "cli.cmd.server.file.search.url": "Optional server URL. A lone non-URL argument is treated as <query>.",
423
+ "cli.cmd.server.file.search.query": "Starts with '/': full path or path glob. Contains '*' or '?': file name glob. Otherwise searches file metadata by keyword.",
424
+ "cli.cmd.server.file.search.path": "Search by an absolute metadata path glob; a project root searches recursively. Can be combined with a keyword <query>, but not with a path <query>, --project, --parent-dir, or --name.",
425
+ "cli.cmd.server.file.search.name": "Search by a file name glob; without wildcards, matches exactly. Can be combined with a keyword <query>, --project, and --parent-dir, but not with a glob <query> or --path.",
426
+ "cli.cmd.server.file.search.parentDir": "Search one absolute directory scope recursively. Glob wildcards are not supported; use --path='/DIR/*' for direct children. With --project, its first path segment must match the project name.",
427
+ "cli.cmd.server.file.search.project": "Match one project name. Can be combined with --parent-dir and --name.",
428
+ "cli.cmd.server.file.search.type": "Limit search to metadata type. Repeat or use comma-separated values.",
429
+ "cli.cmd.server.file.search.subType": "Limit search to metadata subtype. Repeat or use comma-separated values.",
430
+ "cli.cmd.server.file.search.minSize": "Minimum original content size in bytes.",
431
+ "cli.cmd.server.file.search.maxSize": "Maximum original content size in bytes.",
432
+ "cli.cmd.server.file.search.limit": "Return at most this many most relevant files. Defaults to 50; maximum is 1000.",
433
+ "cli.cmd.server.file.search.includeFolders": "Include folders in the result.",
434
+ "cli.cmd.server.file.search.contentContains": "Require every repeated plain-text or /pattern/flags expression in text-file content. Plain text uses case-insensitive literal contains; regex defaults to multiline without flags. Values are not split on commas.",
435
+ "cli.cmd.server.file.search.contentContainsAny": "Require at least one repeated plain-text or /pattern/flags expression in text-file content. Plain text uses case-insensitive literal contains; regex defaults to multiline without flags. Values are not split on commas.",
436
+ "cli.cmd.server.file.search.empty": "No matching files.",
437
+ "cli.cmd.server.file.search.pathHint": "'{0}' is an exact metadata path. Use '{1}' to search recursively.",
438
+ "cli.cmd.server.file.search.nameHint": "File names match exactly without wildcards; wildcards are not added automatically.",
439
+ "cli.cmd.server.file.search.hasMore": "Only the {0} most relevant files are shown; add a project, directory, type, or more specific keyword to narrow the search.",
440
+ "cli.cmd.server.file.search.warningDetails": "Content was not checked; use --json for full details.",
441
+ "cli.cmd.server.file.locate.summary": "Locate a server file by metadata ID.",
442
+ "cli.cmd.server.file.locate.desc": "Resolve a metadata ID to the current server file path.",
443
+ "cli.cmd.server.file.locate.url": "Only print the server view or edit URL.",
444
+ "cli.cmd.server.file.locate.viewUrl": "View URL: {0}",
445
+ "cli.cmd.server.file.locate.editUrl": "Edit URL: {0}",
391
446
  "cli.cmd.server.file.info.summary": "Show server file information.",
392
447
  "cli.cmd.server.file.info.desc": "Show server-side metadata for a file or directory.",
393
448
  "cli.cmd.server.file.show.summary": "Show server file content.",
394
- "cli.cmd.server.file.show.desc": "Write server file content to stdout.",
449
+ "cli.cmd.server.file.show.desc": "Write server file content to stdout. Omit --json to inspect readable text; --json wraps content as Base64 for scripts.",
395
450
  "cli.cmd.server.file.show.revision": "Read a server file revision.",
396
451
  "cli.cmd.server.file.show.upgradeContent": "Return upgraded metadata JSON content when supported.",
397
452
  "cli.cmd.server.file.download.summary": "Download server file content.",
@@ -402,8 +457,10 @@
402
457
  "cli.cmd.server.file.download.force": "Overwrite the local output file if it exists.",
403
458
  "cli.cmd.server.file.download.downloaded": "Downloaded {0} to {1}",
404
459
  "cli.cmd.server.file.open.summary": "Open the server file page.",
405
- "cli.cmd.server.file.open.desc": "Open the server view or edit page for a server file path.",
406
- "cli.cmd.server.file.open.edit": "Open the server edit page.",
460
+ "cli.cmd.server.file.open.desc": "Open the server view or edit page in the system browser, or return its URL without opening the browser.",
461
+ "cli.cmd.server.file.open.edit": "Open the server edit page instead of the view page.",
462
+ "cli.cmd.server.file.open.noOpen": "Return the page URL without launching the system browser.",
463
+ "cli.cmd.server.file.open.path": "Absolute server metadata path. The URL is constructed without checking whether the file exists.",
407
464
  "cli.cmd.server.file.open.openedEdit": "Opened server edit page: {0}",
408
465
  "cli.cmd.server.file.open.openedView": "Opened server view page: {0}",
409
466
  "cli.cmd.server.file.history.summary": "Show server file history.",
@@ -539,6 +596,7 @@
539
596
  "cli.cmd.workspace.proj.desc": "Manage workspace projects.",
540
597
  "cli.cmd.workspace.proj.list.summary": "List workspace projects.",
541
598
  "cli.cmd.workspace.proj.list.desc": "List workspace projects.",
599
+ "cli.cmd.workspace.proj.list.empty": "No projects are tracked in this workspace.",
542
600
  "cli.cmd.workspace.proj.clone.summary": "Clone server projects into the workspace.",
543
601
  "cli.cmd.workspace.proj.clone.desc": "Clone projects from the active server into the current workspace.",
544
602
  "cli.cmd.workspace.proj.clone.force": "Allow clone to overwrite existing local workspace projects.",
@@ -580,8 +638,12 @@
580
638
  "cli.cmd.workspace.file.resolve.remote": "Remote path: {0}",
581
639
  "cli.cmd.workspace.file.resolve.viewUrl": "View URL: {0}",
582
640
  "cli.cmd.workspace.file.open.summary": "Open the server file page.",
583
- "cli.cmd.workspace.file.open.desc": "Open the server view or edit page for a workspace file.",
584
- "cli.cmd.workspace.file.open.edit": "Open the server edit page.",
641
+ "cli.cmd.workspace.file.open.desc": "Open the server view or edit page for a workspace file, or return its URL without opening the browser.",
642
+ "cli.cmd.workspace.file.open.edit": "Open the server edit page instead of the view page.",
643
+ "cli.cmd.workspace.file.open.noOpen": "Return the page URL without launching the system browser.",
644
+ "cli.cmd.workspace.file.open.path": "Workspace-relative file path or absolute server metadata path.",
645
+ "cli.cmd.workspace.file.open.force": "Open the server page even when the local file has unpushed changes.",
646
+ "cli.cmd.workspace.file.open.localChangedForce": "The local file has unpushed changes. The browser opens the server version of {0}.",
585
647
  "cli.cmd.workspace.file.open.openedEdit": "Opened server edit page: {0}",
586
648
  "cli.cmd.workspace.file.open.openedView": "Opened server view page: {0}",
587
649
  "cli.cmd.workspace.file.show.summary": "Show file content.",
@@ -592,14 +654,26 @@
592
654
  "cli.cmd.workspace.file.show.badSource": "Invalid value for --source: {0}",
593
655
  "cli.cmd.workspace.file.show.revSource": "--revision is only supported with --source=server.",
594
656
  "cli.cmd.workspace.file.diff.summary": "Show workspace diff against server.",
595
- "cli.cmd.workspace.file.diff.desc": "Show workspace diff against server.",
657
+ "cli.cmd.workspace.file.diff.desc": "Compare local workspace metadata files with server content. Inputs may be files, directories (recursively including all files), or globs.",
596
658
  "cli.cmd.workspace.file.diff.source": "Compare against server content.",
597
659
  "cli.cmd.workspace.file.diff.badSource": "Invalid value for --source: {0}",
598
660
  "cli.cmd.workspace.file.history.summary": "Show server file history.",
599
661
  "cli.cmd.workspace.file.history.desc": "Show server-side file history for a workspace file.",
600
662
  "cli.cmd.workspace.file.history.limit": "Limit the number of history records.",
663
+ "cli.cmd.workspace.file.compile.summary": "Validate workspace metadata files.",
664
+ "cli.cmd.workspace.file.compile.desc": "Validate local workspace metadata files. Inputs may be files, directories (recursively including all files), or globs.",
665
+ "cli.cmd.workspace.file.compile.compiler": "Compiler",
666
+ "cli.cmd.workspace.file.compile.done": "Validated {0} workspace metadata file(s).",
667
+ "cli.cmd.workspace.file.compile.failed": "Failed files: {0}",
668
+ "cli.cmd.workspace.file.compile.newerVersion": "{0} file(s) are newer than the active server and were skipped. Connect to a matching server, then validate again.",
669
+ "cli.cmd.workspace.file.compile.result": "Metadata validation result: {0} file(s), {1} passed, {2} failed",
670
+ "cli.cmd.workspace.file.compile.running": "Validating workspace metadata files",
671
+ "cli.cmd.workspace.file.compile.schemaFailed": "Metadata validation failed.",
672
+ "cli.cmd.workspace.file.compile.schemaFailedMsg": "Metadata validation failed: {0}",
673
+ "cli.cmd.workspace.file.compile.skipped": "Skipped files: {0}",
674
+ "cli.cmd.workspace.file.compile.upgradeRequired": "{0} file(s) require a metadata upgrade. Run `{1}` with the same pathspec, then validate again.",
601
675
  "cli.cmd.workspace.file.upgrade.summary": "Upgrade old SuccApp metadata files.",
602
- "cli.cmd.workspace.file.upgrade.desc": "Preview or upgrade old SuccApp metadata files in local workspace projects. If no path is given, all local projects are processed.",
676
+ "cli.cmd.workspace.file.upgrade.desc": "Preview or upgrade old SuccApp metadata files in the local workspace. Inputs may be files, directories (recursively including all files), or globs; with no input, all local projects are processed.",
603
677
  "cli.cmd.workspace.file.upgrade.dryRun": "Preview upgrade candidates without changing files.",
604
678
  "cli.cmd.workspace.file.upgrade.cands": "Upgrade candidates: {0}",
605
679
  "cli.cmd.workspace.file.upgrade.dryRunRes": "Metadata upgrade dry-run: {0} checked, {1} candidate(s), {2} skipped, {3} failed",
@@ -615,6 +689,7 @@
615
689
  "cli.cmd.workspace.lock.list.summary": "List locked workspace scopes.",
616
690
  "cli.cmd.workspace.lock.list.desc": "List scopes currently locked in the SuccApp workspace.",
617
691
  "cli.cmd.workspace.lock.list.scope": "Scope",
692
+ "cli.cmd.workspace.lock.list.empty": "No active workspace locks.",
618
693
  "cli.cmd.workspace.lock.status.summary": "Show workspace lock holders.",
619
694
  "cli.cmd.workspace.lock.status.desc": "Workspace lock status",
620
695
  "cli.cmd.workspace.lock.status.heartbeat": "Last heartbeat",
@@ -631,9 +706,9 @@
631
706
  "cli.cmd.workspace.backup.desc": "Inspect and clear workspace backups.",
632
707
  "cli.cmd.workspace.backup.backupPath": "Backup path",
633
708
  "cli.cmd.workspace.backup.cleared": "Merge backup clear: {0} cleared, {1} remaining.",
634
- "cli.cmd.workspace.backup.size": "Size",
635
709
  "cli.cmd.workspace.backup.list.summary": "List saved merge backups.",
636
710
  "cli.cmd.workspace.backup.list.desc": "List local versions saved before pull conflict handling.",
711
+ "cli.cmd.workspace.backup.list.empty": "No merge backups found.",
637
712
  "cli.cmd.workspace.backup.clear.summary": "Clear saved merge backups.",
638
713
  "cli.cmd.workspace.backup.clear.desc": "Clear local versions saved before pull conflict handling.",
639
714
  "cli.cmd.workspace.ext.title": "Workspace extension",
@@ -655,6 +730,7 @@
655
730
  "cli.cmd.workspace.ext.push.force": "Allow local extension files to overwrite remote changes.",
656
731
  "cli.cmd.workspace.ext.push.needNamePath": "Pass an extension name or --path=<path>.",
657
732
  "cli.cmd.workspace.ext.push.onlyOne": "Use either <name> or --path=<path>, not both.",
733
+ "cli.out.search.score": "Score",
658
734
  "cli.out.common.active": "Active",
659
735
  "cli.out.common.api": "Dev Tool API",
660
736
  "cli.out.common.baseline": "Baseline",
@@ -663,17 +739,84 @@
663
739
  "cli.out.common.id": "ID",
664
740
  "cli.out.common.jvmInfo": "JVM properties",
665
741
  "cli.out.common.metaVersions": "Metadata versions",
742
+ "cli.out.common.noResults": "No results.",
666
743
  "cli.out.common.noServers": "No servers configured.",
667
744
  "cli.out.common.product": "Product",
668
745
  "cli.out.common.productInfo": "Product information",
669
746
  "cli.out.common.server": "Server",
747
+ "cli.out.common.sysInfo": "System information",
670
748
  "cli.out.common.sysInspectInfo": "System diagnostics",
671
749
  "cli.out.common.systemEnvirInfo": "Environment variables",
672
750
  "cli.out.common.targetVersion": "Target version",
673
751
  "cli.out.common.version": "Current version",
674
752
  "cli.out.common.workspace": "Workspace",
675
753
  "cli.out.db.exists": "Output file already exists: {0}. Use --force to overwrite.",
754
+ "cli.out.file.createTime": "Create time",
755
+ "cli.out.file.creator": "Creator",
756
+ "cli.out.file.description": "Description",
757
+ "cli.out.file.file": "file",
758
+ "cli.out.file.folder": "folder",
759
+ "cli.out.file.hash": "Hash",
760
+ "cli.out.file.hidden": "Hidden",
761
+ "cli.out.file.icon": "Icon",
762
+ "cli.out.file.id": "ID",
763
+ "cli.out.file.kind": "Kind",
764
+ "cli.out.file.labels": "Labels",
765
+ "cli.out.file.modifier": "Modifier",
766
+ "cli.out.file.modifyTime": "Modify time",
767
+ "cli.out.file.name": "Name",
768
+ "cli.out.file.order": "Order",
769
+ "cli.out.file.parentDir": "Parent dir",
770
+ "cli.out.file.path": "Path",
771
+ "cli.out.file.project": "Project",
772
+ "cli.out.file.revision": "Revision",
773
+ "cli.out.file.size": "Size",
774
+ "cli.out.file.subFileType": "Subfile type",
775
+ "cli.out.file.type": "Type",
776
+ "cli.out.model.businessKeys": "Business keys",
777
+ "cli.out.model.dataType": "Data type",
778
+ "cli.out.model.dbField": "DB field",
779
+ "cli.out.model.dim": "Dim",
780
+ "cli.out.model.enabled": "Enabled",
781
+ "cli.out.model.extracted": "Extracted",
782
+ "cli.out.model.extractMode": "Extract mode",
783
+ "cli.out.model.fields": "Fields",
784
+ "cli.out.model.kind": "Kind",
785
+ "cli.out.model.matchedFields": "Matched fields",
786
+ "cli.out.model.primary": "Primary",
787
+ "cli.out.model.primaryKeys": "Primary keys",
788
+ "cli.out.model.profile": "Data profile",
789
+ "cli.out.model.profile.profiledRowCount": "Rows",
790
+ "cli.out.model.profile.sampled": "Sampled",
791
+ "cli.out.model.profile.nullCount": "Nulls",
792
+ "cli.out.model.profile.nullRate": "Null rate",
793
+ "cli.out.model.profile.distinctCount": "Distinct",
794
+ "cli.out.model.profile.minValue": "Min",
795
+ "cli.out.model.profile.maxValue": "Max",
796
+ "cli.out.model.profile.sum": "Sum",
797
+ "cli.out.model.profile.avg": "Average",
798
+ "cli.out.model.profile.median": "Median",
799
+ "cli.out.model.profile.p90": "P90",
800
+ "cli.out.model.profile.p95": "P95",
801
+ "cli.out.model.profile.zeroCount": "Zeros",
802
+ "cli.out.model.profile.negativeCount": "Negatives",
803
+ "cli.out.model.profile.topValues": "Top values",
804
+ "cli.out.model.profile.sampleValues": "Samples",
805
+ "cli.out.model.profile.estimatedProperties": "Estimated",
806
+ "cli.out.model.profile.unavailableProperties": "Unavailable",
807
+ "cli.out.model.role": "Role",
808
+ "cli.out.model.rowCount": "Row count",
809
+ "cli.out.model.targetTable": "Target table",
810
+ "cli.out.model.title": "Title",
811
+ "cli.out.model.type": "Model type",
812
+ "cli.out.model.unique": "Unique",
813
+ "cli.out.model.writable": "Writable",
676
814
  "cli.out.header.action": "Action",
815
+ "cli.out.header.cacheDisk": "Disk",
816
+ "cli.out.header.cacheEntries": "Entries",
817
+ "cli.out.header.cacheHitRate": "Hit rate",
818
+ "cli.out.header.cacheMem": "Memory",
819
+ "cli.out.header.cacheName": "Cache",
677
820
  "cli.out.header.column": "Column",
678
821
  "cli.out.header.command": "Command",
679
822
  "cli.out.header.comment": "Comment",
@@ -684,6 +827,7 @@
684
827
  "cli.out.header.extra": "Extra",
685
828
  "cli.out.header.field": "Field",
686
829
  "cli.out.header.key": "Key",
830
+ "cli.out.header.kind": "Kind",
687
831
  "cli.out.header.latestVersion": "Latest version",
688
832
  "cli.out.header.message": "Message",
689
833
  "cli.out.header.metaType": "Metadata type",
@@ -706,8 +850,16 @@
706
850
  "cli.out.help.commandHelpRead": "Run 'succapp {0} <command> --help' to read about a specific command.",
707
851
  "cli.out.help.commandHelpSee": "Run 'succapp <command> --help' to see command help.",
708
852
  "cli.out.help.commands": "Commands",
853
+ "cli.out.help.arguments": "arguments:",
709
854
  "cli.out.help.examples": "examples:",
710
- "cli.out.help.options": "options:",
855
+ "cli.out.help.group.content": "content options:",
856
+ "cli.out.help.group.field": "field options:",
857
+ "cli.out.help.group.global": "global options:",
858
+ "cli.out.help.group.input": "input options:",
859
+ "cli.out.help.group.options": "options:",
860
+ "cli.out.help.group.output": "output options:",
861
+ "cli.out.help.group.query": "query options:",
862
+ "cli.out.help.group.search": "search options:",
711
863
  "cli.out.help.usageHeader": "usage:",
712
864
  "cli.out.help.usageLine": "usage: succapp {command} {usageArgs}",
713
865
  "cli.out.human.error": "error: {0}",
@@ -715,6 +867,12 @@
715
867
  "cli.out.human.info": "info: {0}",
716
868
  "cli.out.human.seeLogs": "See logs: {0}",
717
869
  "cli.out.human.warning": "warning: {0}",
870
+ "cli.out.version.checking": "Checking SuccApp CLI version...",
871
+ "cli.out.version.serverIncompatible": "SuccApp CLI {0} may not be compatible with server {1}. Recommended CLI version: {2}. Run `{3}` to install a compatible version.",
872
+ "cli.out.version.serverNoCompatible": "No compatible SuccApp CLI version was found for server {0}. Do not upgrade to npm latest unless the server is upgraded.",
873
+ "cli.out.version.serverUpdateAvailable": "A newer SuccApp CLI is recommended for server {0}: {1}. Run `{2}` to upgrade.",
874
+ "cli.out.version.updateAvailable": "A newer SuccApp CLI is available: {0}. Run `{1}` to upgrade.",
875
+ "cli.out.version.upToDate": "SuccApp CLI is up to date.",
718
876
  "cli.out.server.file.download.exists": "Output file already exists: {0}. Use --force to overwrite.",
719
877
  "cli.out.server.file.exists": "Output file already exists: {0}. Use --force to overwrite.",
720
878
  "cli.out.server.file.needOutput": "Missing required option: --output=<local-file>.",
@@ -763,6 +921,7 @@
763
921
  "cli.input.activeServer": "active server",
764
922
  "cli.input.contentSource": "content source",
765
923
  "cli.input.dataSourceConfig": "data source config",
924
+ "cli.input.dataSourceTestTarget": "data source or data source config",
766
925
  "cli.input.exportTarget": "export target",
767
926
  "cli.input.extensionName": "extension name",
768
927
  "cli.input.extensionNameOrPath": "extension name or path",
@@ -796,7 +955,7 @@
796
955
  "vs.cmd.misc.remoteFile.changeHaveRemote": "This change does not have a remote file to open.",
797
956
  "vs.cmd.misc.remoteFile.connectedServer": "Not connected to a server",
798
957
  "vs.cmd.misc.remoteFile.fileHaveRemote": "This file does not have a remote metadata record.",
799
- "vs.common.cannotAddingSucc": "Cannot {0} before adding a SuccBI server.",
958
+ "vs.common.cannotAddingSucc": "Cannot {0} before adding a SuccApp server.",
800
959
  "vs.common.connectContinue": "Connect to {0} to continue {1}.",
801
960
  "vs.common.createFolder": "Create Folder",
802
961
  "vs.common.createOrSelect": "Create or select a SuccApp workspace folder",
@@ -807,12 +966,12 @@
807
966
  "vs.common.showLogs": "Show Logs",
808
967
  "vs.common.succAppNeeds": "SuccApp needs a local workspace to save server configuration and cloned projects.",
809
968
  "vs.cmd.server.add.cloneProjects": "Clone Projects",
810
- "vs.cmd.server.add.enterSuccBi": "Enter SuccBI server URL",
969
+ "vs.cmd.server.add.enterSuccBi": "Enter SuccApp server URL",
811
970
  "vs.cmd.server.add.invalidUrl": "Please enter a valid URL",
812
971
  "vs.cmd.server.add.serverExists": "Server already exists",
813
972
  "vs.cmd.server.add.succAppAdd": "SuccApp: Add Server",
814
973
  "vs.cmd.server.changeUrl.action": "Change Server URL",
815
- "vs.cmd.server.changeUrl.enterNewSucc": "Enter new SuccBI server URL",
974
+ "vs.cmd.server.changeUrl.enterNewSucc": "Enter new SuccApp server URL",
816
975
  "vs.cmd.server.changeUrl.invalidUrl": "Please enter a valid URL",
817
976
  "vs.cmd.server.changeUrl.newServerUrl": "New server URL must be different from the current URL.",
818
977
  "vs.cmd.server.changeUrl.noServers": "No servers configured. Please add one first.",
@@ -1039,6 +1198,76 @@
1039
1198
  "vs.ui.workspaceProblem.showLogs": "Show Logs",
1040
1199
  "vs.ui.workspaceProblem.staleBaseline": "SuccApp detected a stale local sync baseline. See logs for details before changing the workspace.",
1041
1200
  "vs.ui.workspaceProblem.syncProblem": "SuccApp detected a workspace sync problem. See logs for details.",
1201
+ "cli.cmd.model.title": "Model",
1202
+ "cli.cmd.model.summary": "inspect and query semantic data models",
1203
+ "cli.cmd.model.desc": "Inspect and query SuccApp semantic data models.",
1204
+ "cli.cmd.model.search.summary": "Search semantic models.",
1205
+ "cli.cmd.model.search.desc": "Search visible .tbl semantic models by full path or by combinable location, model-property, and field-property filters.",
1206
+ "cli.cmd.model.search.query": "Starts with '/': full model path or path glob. Contains '*' or '?': model file name glob. Otherwise broadly searches model metadata or visible field metadata by keyword.",
1207
+ "cli.cmd.model.search.path": "Search by an absolute model metadata path glob; a project root searches recursively. Can be combined with a keyword <query>, but not with a path <query>, --project, --parent-dir, or --name.",
1208
+ "cli.cmd.model.search.name": "Search by a model file name glob; without wildcards, matches exactly. Can be combined with a keyword <query>, --project, and --parent-dir, but not with a glob <query> or --path.",
1209
+ "cli.cmd.model.search.parentDir": "Search one absolute directory scope recursively. Glob wildcards are not supported; use --path='/DIR/*' for direct children. With --project, its first path segment must match the project name.",
1210
+ "cli.cmd.model.search.project": "Match one project name. Can be combined with --parent-dir and --name.",
1211
+ "cli.cmd.model.search.type": "Match Table.tableType values. Repeat or use comma-separated values; values are ORed.",
1212
+ "cli.cmd.model.search.contains": "Require every value to match a model name, description, or physical table name (AND). Plain text uses case-insensitive contains; /pattern/flags uses regex with i (case-insensitive), m (multiline), and g (compatibility only; no effect).",
1213
+ "cli.cmd.model.search.containsAny": "Match when any value matches a model name, description, or physical table name (OR). Plain text uses case-insensitive contains; /pattern/flags uses regex with i, m, and g (compatibility only; no effect).",
1214
+ "cli.cmd.model.search.fieldContains": "Require every value to match a field name, description, physical name, or keyword (AND). Plain text uses case-insensitive contains; /pattern/flags uses regex with i (case-insensitive), m (multiline), and g (compatibility only; no effect).",
1215
+ "cli.cmd.model.search.fieldContainsAny": "Match when any value matches a field name, description, physical name, or keyword (OR). Plain text uses case-insensitive contains; /pattern/flags uses regex with i, m, and g (compatibility only; no effect).",
1216
+ "cli.cmd.model.search.fieldMatch": "Limit field-text matching to dim, measure, or all fields. Defaults to all.",
1217
+ "cli.cmd.model.search.allFields": "Include hidden and extended fields in field-text matching.",
1218
+ "cli.cmd.model.search.fieldLimit": "Maximum matched fields returned per model. Defaults to 5; valid range is 1 to 50.",
1219
+ "cli.cmd.model.search.limit": "Return at most this many most relevant models. Defaults to 50; valid range is 1 to 200.",
1220
+ "cli.cmd.model.search.empty": "No matching models.",
1221
+ "cli.cmd.model.search.pathHint": "'{0}' is an exact model path. Use '{1}' to search recursively.",
1222
+ "cli.cmd.model.search.nameHint": "Model names match exactly without wildcards; wildcards and the .tbl suffix are not added automatically.",
1223
+ "cli.cmd.model.search.hasMore": "Only the {0} most relevant models are shown; add a project, directory, type, or more specific keyword to narrow the search.",
1224
+ "cli.cmd.model.show.summary": "Show model metadata summary.",
1225
+ "cli.cmd.model.show.desc": "Show semantic model metadata summary.",
1226
+ "cli.cmd.model.profile.summary": "Profile one semantic model.",
1227
+ "cli.cmd.model.profile.desc": "Return the model summary, current full metadata, and physical table row count. Human output is concise; use --json for the full metadata.",
1228
+ "cli.cmd.model.fieldProfile.summary": "Profile selected model fields.",
1229
+ "cli.cmd.model.fieldProfile.desc": "Inspect selected fields, inferred analytical roles, dimension attributes, and optional data statistics. Select 1 to 20 fields; aliases resolving to the same fieldPath are deduplicated.\n\nCapability depends on field type, data source, data volume, permissions, and masking. nullCount/nullRate apply to queryable fields. Numeric fields can use distinctCount, minValue, maxValue, sum, avg, zeroCount, negativeCount, topValues, and sampleValues. String/date fields can use distinctCount, minValue, maxValue, topValues, and sampleValues; boolean fields can use distinctCount, topValues, and sampleValues. median, p90, and p95 are accepted for protocol compatibility but currently return unsupported. Check dataProfile.unavailableProperties for the actual result. For unknown-size models, distinctCount/topValues run only after the visible row count is confirmed at 100,000 or less; million-scale models return costLimit. JSON sum/avg values are decimal strings to preserve precision.",
1230
+ "cli.cmd.model.fieldProfile.field": "Field physical name, business name, or fieldPath. Repeat to select up to 20 fields; equivalent names are deduplicated by fieldPath.",
1231
+ "cli.cmd.model.fieldProfile.dataProperty": "Data statistic to calculate. Repeat or use comma-separated values. Values: nullCount, nullRate, distinctCount, minValue, maxValue, sum, avg, median, p90, p95, zeroCount, negativeCount, topValues, sampleValues. Without this option, calculates nullCount, nullRate, distinctCount, minValue, and maxValue.",
1232
+ "cli.cmd.model.fieldProfile.noData": "Do not scan field data; return semantic and dimension information only. Cannot be combined with --data-property.",
1233
+ "cli.cmd.model.fieldProfile.topN": "Maximum topValues entries. Defaults to 20; valid range is 1 to 50.",
1234
+ "cli.cmd.model.fieldProfile.sampleLimit": "Maximum sampleValues entries. Defaults to 10; valid range is 1 to 50.",
1235
+ "cli.cmd.model.fieldProfile.dimensionAttributeDepth": "Dimension-attribute expansion depth. Defaults to 1; valid range is 0 to 3.",
1236
+ "cli.cmd.model.fields.summary": "List model fields.",
1237
+ "cli.cmd.model.fields.desc": "List semantic model fields.",
1238
+ "cli.cmd.model.fields.all": "Include hidden fields and extended properties.",
1239
+ "cli.cmd.model.fields.contains": "Match fields by name, title, or database field. Plain text uses case-insensitive contains; /pattern/flags uses regex with i, m, and g (compatibility only; no effect).",
1240
+ "cli.cmd.model.fields.dim": "Only list dimension-key fields.",
1241
+ "cli.cmd.model.fields.measure": "Only list measure fields.",
1242
+ "cli.cmd.model.fields.empty": "No matching fields found.",
1243
+ "cli.cmd.model.indexes.summary": "List model indexes.",
1244
+ "cli.cmd.model.indexes.desc": "List primary keys, business keys, and model indexes.",
1245
+ "cli.cmd.model.indexes.empty": "This model has no indexes.",
1246
+ "cli.cmd.model.select.summary": "Select rows from one model.",
1247
+ "cli.cmd.model.select.desc": "Select rows from one .tbl model with SuccApp expression filters.",
1248
+ "cli.cmd.model.select.select": "Select fields, separated by commas. Can be repeated.",
1249
+ "cli.cmd.model.select.where": "Filter expression, for example STATUS='ACTIVE'.",
1250
+ "cli.cmd.model.select.order": "Sort expression, for example CREATE_TIME desc.",
1251
+ "cli.cmd.model.select.limit": "Maximum returned row count.",
1252
+ "cli.cmd.model.select.maxRows": "Maximum preview row count.",
1253
+ "cli.cmd.model.query.summary": "Query models with Query DSL.",
1254
+ "cli.cmd.model.query.desc": "Query one or more .tbl models with Query DSL JSON.\n\nJSON type: succ.meta.dw.Query in query.d.ts.\nOnline DTS: https://docs.succapp.com/dev-types/types/meta/file-types/query.d.ts\nWorkspace DTS: .agents/skills/succapp-docs/dev-types/types/meta/file-types/query.d.ts",
1255
+ "cli.cmd.model.query.query": "Query DSL JSON.",
1256
+ "cli.cmd.model.query.queryFile": "Read Query DSL JSON from a file.",
1257
+ "cli.cmd.model.query.stdin": "Read Query DSL JSON from stdin.",
1258
+ "cli.cmd.model.query.maxRows": "Maximum preview row count.",
1259
+ "cli.cmd.model.query.empty": "Query succeeded; 0 rows returned.",
1260
+ "cli.cmd.model.export.summary": "Export model query results as CSV.",
1261
+ "cli.cmd.model.export.desc": "Export one model or Query DSL result as CSV.",
1262
+ "cli.cmd.model.export.select": "Select fields, separated by commas. Can be repeated.",
1263
+ "cli.cmd.model.export.where": "Filter expression for single-model export.",
1264
+ "cli.cmd.model.export.order": "Sort expression for single-model export.",
1265
+ "cli.cmd.model.export.query": "Query DSL JSON.",
1266
+ "cli.cmd.model.export.queryFile": "Read Query DSL JSON from a file.",
1267
+ "cli.cmd.model.export.stdin": "Read Query DSL JSON from stdin.",
1268
+ "cli.cmd.model.export.output": "Write CSV output to a local file.",
1269
+ "cli.cmd.model.export.force": "Overwrite the output file if it already exists.",
1270
+ "cli.cmd.model.export.exportedData": "Exported data to {0}",
1042
1271
  "vs.cmd.title.addServer": "Add Server",
1043
1272
  "vs.cmd.title.useServer": "Use Server",
1044
1273
  "vs.cmd.title.loginServer": "Login Server",