@succsoft/succapp 5.0.5 → 5.0.7

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.
@@ -1,11 +1,28 @@
1
1
  {
2
2
  "common.err.unexpected": "Unexpected error.",
3
- "err.workspace.required": "Please open a workspace before using SuccApp commands.",
3
+ "err.workspace.required": "No SuccApp workspace is available. Open an existing SuccApp workspace or initialize the current folder first.",
4
4
  "err.workspace.activeFileRequired": "Open a file before {actionName}.",
5
5
  "err.base.cancel": "Cancelled.",
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
+ "err.cluster.nodeUnavailable": "Cluster node {clusterNode} is unavailable.",
9
+ "err.cluster.nodeUnavailable.desc": "The node may not be running, may have left the current cluster, or may be unreachable. Check its status and network connection, then retry.",
10
+ "err.server.notReady": "Server is not ready",
11
+ "err.server.notReady.desc": "The server has not completed startup and initialization.",
12
+ "err.server.notReady.hint": "Wait a moment and retry. If this persists, check the server status and logs.",
13
+ "err.server.capabilityUnsupported": "Server {serverUrl} does not support capability {capability}.",
14
+ "err.server.capabilityUnsupported.desc": "Upgrade the server to a version that provides this Dev Tool capability, then retry.",
15
+ "err.server.clusterNodeNotFound": "Cluster node {nodeId} is not in the current snapshot.",
16
+ "err.server.clusterNodeNotFound.desc": "Run 'succapp server cluster list' first to confirm the node ID.",
17
+ "err.server.threadNotFound": "Thread {threadId} no longer exists.",
18
+ "err.server.threadNotFound.desc": "Run 'succapp server thread list' again to obtain a current thread snapshot.",
19
+ "err.server.threadTaskChanged": "The cancelable task on thread {threadId} has changed.",
20
+ "err.server.threadTaskChanged.desc": "Inspect the thread again and use its current cancel serial.",
21
+ "err.server.threadNotCancelable": "Thread {threadId} has no cancelable product task.",
8
22
  "err.login.notlogin": "Authentication failed, please log in again",
23
+ "err.login.notlogin.hint": "Log in again, then retry the command.",
24
+ "err.login.busy": "The system is busy. Please try later!",
25
+ "err.login.busy.desc": "Possible causes include license limits on sessions or users, or database connection/query failures.",
9
26
  "err.oauth2.tokenExpired": "OAuth2 access token expired.",
10
27
  "err.login.oauthTimeout": "OAuth2 authorization timed out.",
11
28
  "err.login.oauthTimeout.desc": "Restart login, complete authorization in the browser, or use PAT login in environments without a browser.",
@@ -37,9 +54,16 @@
37
54
  "err.net.invalidUrl": "Invalid URL: {url}",
38
55
  "err.meta.invalidPath": "Invalid metadata path",
39
56
  "err.meta.invalidPath.desc": "Use a valid absolute metadata path and try again.",
57
+ "err.meta.invalidPath.relativeSearchQuery": "Relative search paths are not supported: {path}",
58
+ "err.meta.invalidPath.relativeSearchQuery.hint": "Use an absolute path beginning with '/', or a file name without '/'.",
59
+ "err.meta.invalidPath.parentDirGlob": "Glob wildcards are not supported in --parent-dir: {path}",
60
+ "err.meta.invalidPath.parentDirGlob.hint": "--parent-dir already searches recursively. Use --path='/DIR/*' to match direct children or --path for another glob.",
61
+ "err.meta.invalidPath.parentProjectMismatch": "Parent directory {path} does not belong to project {projectName}.",
62
+ "err.meta.invalidPath.parentProjectMismatch.hint": "Use a parent directory whose first path segment matches --project.",
40
63
  "err.meta.projectExist": "A project with the same name already exists.",
41
64
  "err.meta.projectname.illegal": "Invalid project name. Use letters, numbers, and underscores only, and keep it within 16 characters.",
42
65
  "err.meta.projectname.reservedwords": "This project name is reserved by the system.",
66
+ "err.file.invalidPath": "Invalid or unsafe file path: {path}",
43
67
  "err.file.notFound": "Path does not exist: {path}",
44
68
  "err.file.notDirectory": "Path is not a directory: {path}",
45
69
  "err.workspace.sameServerUrl": "New server URL must be different from the current URL.",
@@ -61,10 +85,12 @@
61
85
  "err.workspace.issue.E402": "SuccApp .gitignore rules are missing",
62
86
  "err.workspace.issue.E403": "AI agent workspace files are missing",
63
87
  "err.workspace.issue.E404": "TypeScript support files are missing",
64
- "err.workspace.issue.E405": "JSON Schema support files are missing",
88
+ "err.workspace.issue.E405": "Metadata validation support files are missing",
89
+ "err.workspace.issue.E405.hint": "Run 'succapp workspace init --scope dev', then retry the command.",
65
90
  "err.workspace.issue.E407": "SuccApp docs skill files are missing",
66
91
  "err.lock.busy": "Cannot {attemptedCommand}: workspace scope {conflictScope} is held by another process.",
67
92
  "err.lock.busy.desc": "Stop the running process and retry; locks left by crashed processes are cleaned up automatically on the next attempt.",
93
+ "err.lock.busy.hint": "Wait for the running SuccApp process to finish, then retry.",
68
94
  "err.lock.compromised": "Workspace lock was taken over by another process; the current {attemptedCommand} has been aborted.",
69
95
  "err.lock.compromised.desc": "Run 'succapp workspace status' to verify consistency before retrying.",
70
96
  "err.workspace.activeConnectionRequired": "Cannot {actionName} without an active server connection.",
@@ -82,22 +108,30 @@
82
108
  "err.cli.unknownOption": "Unknown option: {option}",
83
109
  "err.cli.missingOptionValue": "Option requires a value: {option}",
84
110
  "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}.",
111
+ "err.cli.missingArgument": "Missing required argument: {argument}",
112
+ "err.cli.missingArgument.hint": "Usage: {usage}",
87
113
  "err.cli.tooManyArguments": "Too many arguments for {command}.",
88
114
  "err.cli.tooManyArguments.hint": "This command accepts at most {max} positional argument(s).",
115
+ "err.cli.tooManyValues": "Too many values for {input}: received {actualItems}.",
116
+ "err.cli.tooManyValues.hint": "Provide at most {maxItems} values.",
89
117
  "err.cli.missingInput": "Missing required input: {input}.",
90
118
  "err.cli.missingInput.hint": "Provide the required input and retry.",
91
119
  "err.cli.missingInput.hintWithSources": "Provide {sources} and retry.",
92
120
  "err.cli.conflictingInputs": "Conflicting inputs: {inputs}.",
93
121
  "err.cli.conflictingInputs.hint": "Use only one of these inputs and retry.",
122
+ "err.cli.conflictingInputs.tailCursorPair": "Use --from and --log-file together.",
123
+ "err.cli.conflictingInputs.tailCursorPair.hint": "Copy both fields from the previous one-shot 'succapp server tech-log tail --json' result.",
124
+ "err.cli.conflictingInputs.tailInterval": "--interval requires --follow.",
125
+ "err.cli.conflictingInputs.tailInterval.hint": "Add --follow, or remove --interval for a one-shot read.",
94
126
  "err.cli.invalidUrl": "Invalid URL for {input}: {value}.",
95
127
  "err.cli.invalidUrl.hint": "Provide a full http:// or https:// URL.",
96
128
  "err.cli.invalidPositiveInteger": "{input} must be a positive integer: {value}.",
97
129
  "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}.",
130
+ "err.cli.invalidNonNegativeIntegerRange": "{input} must be an integer from {min} to {max}: {value}.",
99
131
  "err.cli.invalidChoice": "Invalid value for {input}: {value}.",
100
132
  "err.cli.invalidChoice.hint": "Expected one of: {allowedValues}.",
133
+ "err.cli.invalidChoice.namedLogger": "Invalid logger name: {value}.",
134
+ "err.cli.invalidChoice.namedLogger.hint": "Use an exact named logger; root and wildcards are not allowed.",
101
135
  "err.cli.invalidKeyValue": "Invalid key=value for {input}: {value}.",
102
136
  "err.cli.invalidKeyValue.hint": "Use key=value.",
103
137
  "err.cli.invalidNonEmptyKeyValue": "Invalid key=value for {input}: {value}.",
@@ -111,6 +145,8 @@
111
145
  "err.cli.unconfiguredServer": "Server is not configured in the current workspace: {value}.",
112
146
  "err.cli.serverMismatch": "Server does not match the active workspace server: {value}.",
113
147
  "err.cli.serverMismatch.hint": "Expected active server: {expected}.",
148
+ "err.cli.serverCapabilityUnavailable": "The active server does not provide this capability: {capability}.",
149
+ "err.cli.serverCapabilityUnavailable.hint": "Upgrade the server to a compatible version, then retry.",
114
150
  "err.cli.unsupportedAuthFlow": "Authentication flow is not implemented yet: {authType}.",
115
151
  "err.cli.unsupportedAuthFlow.hint": "Use 'succapp auth login --pat <url>' and enter the PAT when prompted. Piped stdin is still supported for scripts.",
116
152
  "err.cli.invalidExtensionName": "Invalid extension name: {value}.",
@@ -127,6 +163,12 @@
127
163
  "err.cli.confirmationRequired.outputOverwrite": "The output file already exists and would be overwritten.",
128
164
  "err.cli.confirmationRequired.outputOverwrite.desc": "Output file: {path}",
129
165
  "err.cli.confirmationRequired.outputOverwrite.hint": "Confirm that overwriting this file is expected, then pass {flag}.",
166
+ "err.cli.confirmationRequired.threadTaskCancel": "Requesting task cancellation requires confirmation.",
167
+ "err.cli.confirmationRequired.threadTaskCancel.hint": "Inspect the current thread and cancel serial, then pass {flag}.",
168
+ "err.cli.confirmationRequired.logLevel": "Setting {logger} to {level} may produce excessive logs.",
169
+ "err.cli.confirmationRequired.logLevel.hint": "Review the target logger and impact, then pass {flag}.",
170
+ "err.cli.confirmationRequired.logCluster": "Applying the Logback configuration will replace the complete configuration on all reachable cluster nodes.",
171
+ "err.cli.confirmationRequired.logCluster.hint": "Review the source configuration and target cluster, then pass {flag}.",
130
172
  "err.cli.confirmationRequired.cloneOverwrite": "Cloning would overwrite existing local workspace project(s): {projectNames}.",
131
173
  "err.cli.confirmationRequired.cloneOverwrite.hint": "Confirm the local project can be overwritten, then pass {flag}.",
132
174
  "err.cli.confirmationRequired.projRemove": "Removing local workspace project(s) requires confirmation: {projectNames}.",
@@ -140,6 +182,9 @@
140
182
  "err.db.nonReadOnlySql.hint": "Review the SQL impact, then run 'succapp db exec {flag}'.",
141
183
  "err.net.httpStatusUnexpected": "Unexpected HTTP response status",
142
184
  "err.net.httpStatusUnexpected.desc": "The remote service returned an HTTP status that the caller cannot classify. Check the error details or contact the administrator.",
185
+ "err.permission.denied": "Permission denied",
186
+ "err.permission.denied.desc": "The current account does not have permission to perform this operation.",
187
+ "err.permission.denied.hint": "Ask an administrator to grant the required permission, or retry with an authorized account.",
143
188
  "workspace.compat.connectedServerAppears": "The connected server appears older than this workspace's recorded baseline. You may have connected to the wrong server.",
144
189
  "workspace.compat.serverVersion": "Server version: {0} < {1}",
145
190
  "workspace.extension.progress.create.done": "Created extension {0}.",
@@ -200,18 +245,17 @@
200
245
  "workspace.sync.progress.upgradeMeta.checked": "Checked {0} metadata file(s): {1} upgradeable.",
201
246
  "workspace.sync.progress.upgradeMeta.done": "Upgraded metadata files: {0} changed, {1} failed, {2} checked.",
202
247
  "workspace.sync.progress.upgradeMeta.scan": "Scanning metadata files",
203
- "workspace.validation.json.invalidJson": "Invalid JSON: {0}.",
204
- "workspace.validation.json.jsonFileEmpty": "JSON file is empty.",
205
248
  "cli.cmd.common.desc": "Common commands.",
206
249
  "cli.cmd.common.summary": "common commands",
207
250
  "cli.cmd.common.title": "Common",
208
251
  "cli.cmd.root.summary": "SuccApp command line interface.",
209
252
  "cli.host.localeFallback": "Locale {0} is not available; using default messages.",
210
253
  "cli.opt.help": "Show this help.",
211
- "cli.opt.json": "Write NDJSON for scripts; content output uses Base64.",
254
+ "cli.opt.json": "Write NDJSON for scripts; binary content results use Base64.",
212
255
  "cli.opt.locale": "Use the given locale for CLI messages.",
213
256
  "cli.opt.lockTimeout": "Wait for a workspace lock before failing.",
214
257
  "cli.opt.logLevel": "Set log level: trace, debug, info, warn, or error.",
258
+ "cli.opt.prettyJson": "Write formatted JSON for people; not intended for line-oriented scripts.",
215
259
  "cli.opt.quiet": "Suppress progress and informational output.",
216
260
  "cli.opt.server": "Use the specified server for commands that support it.",
217
261
  "cli.opt.verbose": "Enable debug logging.",
@@ -246,7 +290,13 @@
246
290
  "cli.cmd.db.summary": "inspect and operate server databases and data sources",
247
291
  "cli.cmd.db.desc": "Inspect and operate server databases and data sources.",
248
292
  "cli.cmd.db.dataSource": "Data source",
249
- "cli.cmd.db.defaultSchema": "Default schema",
293
+ "cli.cmd.db.connection": "Connection",
294
+ "cli.cmd.db.defaultSchema": "Logical default schema",
295
+ "cli.cmd.db.databaseProduct": "Database product",
296
+ "cli.cmd.db.databaseVersion": "Database version",
297
+ "cli.cmd.db.databaseFullVersion": "Full database version",
298
+ "cli.cmd.db.driver": "JDBC driver",
299
+ "cli.cmd.db.driverVersion": "Driver version",
250
300
  "cli.cmd.db.dryImport": "Dry run import",
251
301
  "cli.cmd.db.dsConfigMust": "Datasource config must be a JSON object: {0}",
252
302
  "cli.cmd.db.imported": "Imported",
@@ -268,27 +318,46 @@
268
318
  "cli.cmd.db.sqlExecutedSuccess": "SQL executed successfully.",
269
319
  "cli.cmd.db.sqlOrFileConflict": "Pass SQL either as <sql> or --file, not both.",
270
320
  "cli.cmd.db.sqlUpdateCount": "SQL update count: {0}",
321
+ "cli.cmd.db.query.empty": "Query succeeded; 0 rows returned.",
271
322
  "cli.cmd.db.tableOrQueryConflict": "Pass either <table> or --query/--query-file, not both.",
323
+ "cli.cmd.db.connector.title": "Database connector",
324
+ "cli.cmd.db.connector.summary": "discover available server database connectors",
325
+ "cli.cmd.db.connector.desc": "Discover the database connectors available on the active server and inspect their connector-specific configuration fields.",
326
+ "cli.cmd.db.connector.connector": "Connector",
327
+ "cli.cmd.db.connector.displayName": "Display name",
328
+ "cli.cmd.db.connector.dbKind": "Database kind",
329
+ "cli.cmd.db.connector.required": "Required",
330
+ "cli.cmd.db.connector.defaultValue": "Default",
331
+ "cli.cmd.db.connector.secret": "secret",
332
+ "cli.cmd.db.connector.list.summary": "List database connectors available on the server.",
333
+ "cli.cmd.db.connector.list.desc": "List the database connectors available for datasource creation on the active server.",
334
+ "cli.cmd.db.connector.show.summary": "Show the configuration fields supported by a database connector.",
335
+ "cli.cmd.db.connector.show.desc": "Show common and connector-specific datasource configuration fields, safe defaults, and the JDBC URL template reported by the active server.",
336
+ "cli.cmd.db.connector.show.connector": "Database connector ID reported by db connector list.",
272
337
  "cli.cmd.db.source.title": "Database source",
273
338
  "cli.cmd.db.source.summary": "inspect and manage database sources",
274
339
  "cli.cmd.db.source.desc": "Inspect and manage database sources.",
340
+ "cli.cmd.db.source.*.config": "Read datasource configuration JSON from a file, or use - for stdin.",
341
+ "cli.cmd.db.source.*.test": "Test the connection before saving.",
275
342
  "cli.cmd.db.source.list.summary": "List visible data sources.",
276
343
  "cli.cmd.db.source.list.desc": "List data sources visible to the active SuccApp server session.",
344
+ "cli.cmd.db.source.list.empty": "No data sources are available.",
277
345
  "cli.cmd.db.source.show.summary": "Show a datasource configuration.",
278
346
  "cli.cmd.db.source.show.desc": "Show a datasource configuration.",
279
- "cli.cmd.db.source.test.summary": "Test a datasource connection.",
280
- "cli.cmd.db.source.test.desc": "Test a datasource connection from a JSON configuration.",
281
- "cli.cmd.db.source.test.config": "Read datasource configuration JSON from a file, or use - for stdin.",
282
- "cli.cmd.db.source.test.testOk": "Datasource connection succeeded: {0}",
347
+ "cli.cmd.db.source.probe.summary": "Validate an existing datasource and show its logical schema, database, and driver details.",
348
+ "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.",
349
+ "cli.cmd.db.source.probe.datasource": "Name of the existing datasource to probe.",
350
+ "cli.cmd.db.source.test.summary": "Test connectivity for an existing datasource or an unsaved JSON configuration.",
351
+ "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.",
352
+ "cli.cmd.db.source.test.datasource": "Name of the existing datasource to test.",
353
+ "cli.cmd.db.source.template.summary": "Generate a safe datasource JSON template for a server connector.",
354
+ "cli.cmd.db.source.template.desc": "Generate a datasource configuration template for a connector on the active server. The template uses the connector's defaults and never contains a password or other secret value.",
355
+ "cli.cmd.db.source.template.connector": "Database connector ID reported by db connector list.",
283
356
  "cli.cmd.db.source.create.summary": "Create a datasource.",
284
- "cli.cmd.db.source.create.desc": "Create a datasource from a JSON configuration.",
285
- "cli.cmd.db.source.create.config": "Read datasource configuration JSON from a file, or use - for stdin.",
286
- "cli.cmd.db.source.create.test": "Test the connection before saving.",
357
+ "cli.cmd.db.source.create.desc": "Create a datasource from a JSON configuration. In a SuccApp workspace, AI agents should first read .agents/skills/succapp-docs/SKILL.md and follow its index to the datasource metadata and connector configuration documentation.",
287
358
  "cli.cmd.db.source.create.created": "Created data source: {0}",
288
359
  "cli.cmd.db.source.update.summary": "Update a datasource.",
289
360
  "cli.cmd.db.source.update.desc": "Update a datasource from a JSON configuration.",
290
- "cli.cmd.db.source.update.config": "Read datasource configuration JSON from a file, or use - for stdin.",
291
- "cli.cmd.db.source.update.test": "Test the connection before saving.",
292
361
  "cli.cmd.db.source.update.updated": "Updated data source: {0}",
293
362
  "cli.cmd.db.source.remove.summary": "Delete a datasource.",
294
363
  "cli.cmd.db.source.remove.desc": "Delete a datasource after explicit confirmation.",
@@ -301,28 +370,28 @@
301
370
  "cli.cmd.db.schema.list.summary": "List schemas for a data source.",
302
371
  "cli.cmd.db.schema.list.desc": "List schemas for a data source.",
303
372
  "cli.cmd.db.schema.list.catalog": "Catalog",
373
+ "cli.cmd.db.schema.list.empty": "No schemas found for data source '{0}'.",
304
374
  "cli.cmd.db.table.title": "Database table",
305
375
  "cli.cmd.db.table.summary": "inspect database tables",
306
376
  "cli.cmd.db.table.desc": "Inspect database tables.",
307
377
  "cli.cmd.db.table.list.summary": "List tables for a data source.",
308
378
  "cli.cmd.db.table.list.desc": "List tables for a data source.",
309
379
  "cli.cmd.db.table.list.tableNameContains": "Filter tables by name. Supports * and ? wildcards.",
380
+ "cli.cmd.db.table.list.empty": "No tables are available.",
381
+ "cli.cmd.db.table.list.noMatches": "No tables matched the current filters.",
310
382
  "cli.cmd.db.table.describe.summary": "Describe a database table.",
311
383
  "cli.cmd.db.table.describe.desc": "Describe columns and metadata for a database table.",
312
384
  "cli.cmd.db.table.describe.schema": "Schema name.",
385
+ "cli.cmd.db.*.file": "Read SQL from a file.",
386
+ "cli.cmd.db.*.schema": "SQL execution schema.",
387
+ "cli.cmd.db.*.timeout": "SQL timeout in seconds. Defaults to 30.",
313
388
  "cli.cmd.db.query.summary": "Execute a read-only SQL query.",
314
389
  "cli.cmd.db.query.desc": "Execute SQL through Dev Tool v2. SuccApp CLI only allows read-only queries.",
315
- "cli.cmd.db.query.file": "Read SQL from a file.",
316
- "cli.cmd.db.query.schema": "SQL execution schema.",
317
- "cli.cmd.db.query.timeout": "SQL timeout in seconds. Defaults to 30.",
318
390
  "cli.cmd.db.query.maxRows": "Maximum returned row count.",
319
391
  "cli.cmd.db.query.nonReadOnlySql": "db query only allows read-only SQL. Use db exec for write or schema changes; add --force only after confirming the impact.",
320
392
  "cli.cmd.db.query.sqlOrFileConflict": "Pass SQL either as <sql> or --file, not both.",
321
393
  "cli.cmd.db.exec.summary": "Execute any SQL.",
322
394
  "cli.cmd.db.exec.desc": "Execute SQL through Dev Tool v2. Write or schema changes require explicit confirmation.",
323
- "cli.cmd.db.exec.file": "Read SQL from a file.",
324
- "cli.cmd.db.exec.schema": "SQL execution schema.",
325
- "cli.cmd.db.exec.timeout": "SQL timeout in seconds. Defaults to 30.",
326
395
  "cli.cmd.db.exec.maxRows": "Limit returned rows for result sets.",
327
396
  "cli.cmd.db.exec.force": "Confirm SQL marked dangerous by safety analysis.",
328
397
  "cli.cmd.db.exec.dangerousSql": "Dangerous SQL was blocked. Review the impact before rerunning with --force.{0}",
@@ -335,13 +404,11 @@
335
404
  "cli.cmd.db.import.mode": "Import mode. Defaults to append; truncate and replace must be passed explicitly.",
336
405
  "cli.cmd.db.import.dryRun": "Validate import without writing rows.",
337
406
  "cli.cmd.db.import.schema": "Table schema.",
338
- "cli.cmd.db.import.timeout": "SQL timeout in seconds. Defaults to 30.",
339
407
  "cli.cmd.db.export.summary": "Export table data or a query result as CSV.",
340
408
  "cli.cmd.db.export.desc": "Export table data or a query result as CSV.",
341
409
  "cli.cmd.db.export.query": "Export a query result instead of table data.",
342
410
  "cli.cmd.db.export.queryFile": "Read export query SQL from a file.",
343
411
  "cli.cmd.db.export.schema": "Table schema or SQL execution schema.",
344
- "cli.cmd.db.export.timeout": "SQL timeout in seconds. Defaults to 30.",
345
412
  "cli.cmd.db.export.output": "Write CSV output to a local file.",
346
413
  "cli.cmd.db.export.force": "Overwrite the output file if it already exists.",
347
414
  "cli.cmd.db.export.exportedData": "Exported data to {0}",
@@ -360,14 +427,195 @@
360
427
  "cli.cmd.server.cache.title": "Server cache",
361
428
  "cli.cmd.server.cache.summary": "manage server cache",
362
429
  "cli.cmd.server.cache.desc": "Manage server cache.",
363
- "cli.cmd.server.cache.refresh.summary": "Refresh server cache.",
364
- "cli.cmd.server.cache.refresh.desc": "Refresh server-side Dev Tool metadata cache.",
365
- "cli.cmd.server.cache.refresh.refreshed": "Server cache refreshed: {0}",
430
+ "cli.cmd.server.cache.list.summary": "List server cache entries.",
431
+ "cli.cmd.server.cache.list.desc": "List server-side system cache entries (count, disk/memory usage, hit rate).",
432
+ "cli.cmd.server.cache.list.empty": "No server cache entries.",
433
+ "cli.cmd.server.cache.clean.summary": "Clean server cache.",
434
+ "cli.cmd.server.cache.clean.desc": "Clean a server-side system cache entry by <name>, or all caches with --all.",
435
+ "cli.cmd.server.cache.clean.all": "Clean all server cache entries.",
436
+ "cli.cmd.server.cache.clean.cleaned": "Server cache cleaned: {1} ({0})",
437
+ "cli.cmd.server.cluster.title": "Server cluster",
438
+ "cli.cmd.server.cluster.summary": "inspect server cluster nodes",
439
+ "cli.cmd.server.cluster.desc": "Inspect cluster membership, health, network state, and runtime diagnostics.",
440
+ "cli.cmd.server.cluster.list.summary": "List server cluster nodes.",
441
+ "cli.cmd.server.cluster.list.desc": "List the same cluster node data used by the server system-settings page.",
442
+ "cli.cmd.server.cluster.list.health": "Only include nodes with this health severity: ok, warning, error, or unknown.",
443
+ "cli.cmd.server.cluster.list.watch": "Continuously refresh the cluster status until interrupted.",
444
+ "cli.cmd.server.cluster.list.interval": "Set the watch refresh interval in milliseconds (3000 to 60000). Requires --watch.",
445
+ "cli.cmd.server.cluster.list.empty": "No cluster nodes match the current filter.",
446
+ "cli.cmd.server.cluster.list.updatedAt": "Updated: {0}",
447
+ "cli.cmd.server.cluster.show.summary": "Show one server cluster node.",
448
+ "cli.cmd.server.cluster.show.desc": "Show an exact cluster node by ID using the same scoped information layout as server info.",
449
+ "cli.cmd.server.cluster.show.scope": "Show only the selected human-output details. Repeat or use comma-separated values: product, sys, inspect, jvm, env, all.",
450
+ "cli.cmd.server.cluster.show.all": "Show all human-output detail scopes.",
451
+ "cli.cmd.server.cluster.out.name": "Name",
452
+ "cli.cmd.server.cluster.out.role": "Role",
453
+ "cli.cmd.server.cluster.out.health": "Health",
454
+ "cli.cmd.server.cluster.out.current": "Current",
455
+ "cli.cmd.server.cluster.out.master": "Master",
456
+ "cli.cmd.server.cluster.out.heartbeat": "Heartbeat age",
457
+ "cli.cmd.server.cluster.out.latency": "Latency",
458
+ "cli.cmd.server.cluster.out.sessions": "Sessions",
459
+ "cli.cmd.server.cluster.out.startedAt": "Started",
460
+ "cli.cmd.server.cluster.out.licensePermitted": "Cluster license permitted",
461
+ "cli.cmd.server.cluster.out.channelPort": "Channel port",
462
+ "cli.cmd.server.cluster.out.networkState": "Network state",
463
+ "cli.cmd.server.cluster.out.processId": "Process ID",
464
+ "cli.cmd.server.cluster.out.osUser": "OS user",
465
+ "cli.cmd.server.cluster.out.processors": "Processors",
466
+ "cli.cmd.server.cluster.out.jvmCpu": "JVM CPU",
467
+ "cli.cmd.server.cluster.out.systemCpu": "System CPU",
468
+ "cli.cmd.server.cluster.out.jvmMaxMemory": "JVM max memory",
469
+ "cli.cmd.server.cluster.out.physicalMemory": "Physical memory",
470
+ "cli.cmd.server.cluster.out.physicalFreeMemory": "Free physical memory",
471
+ "cli.cmd.server.cluster.out.diskTotal": "Disk total",
472
+ "cli.cmd.server.cluster.out.diskFree": "Disk free",
473
+ "cli.cmd.server.cluster.out.diskUsable": "Disk usable",
474
+ "cli.cmd.server.cluster.out.deployPath": "Deploy path",
475
+ "cli.cmd.server.cluster.out.lastReceivedAt": "Last received",
476
+ "cli.cmd.server.cluster.out.lastSentAt": "Last sent",
477
+ "cli.cmd.server.thread.title": "Server threads",
478
+ "cli.cmd.server.thread.summary": "inspect JVM threads",
479
+ "cli.cmd.server.thread.desc": "Inspect JVM thread snapshots and request cancellation of registered product tasks.",
480
+ "cli.cmd.server.thread.*.state": "Only include this JVM state: new, runnable, blocked, waiting, timed-waiting, or terminated.",
481
+ "cli.cmd.server.thread.*.working": "Only include threads that are currently doing work.",
482
+ "cli.cmd.server.thread.*.sql": "Only include threads that are currently executing SQL.",
483
+ "cli.cmd.server.thread.list.summary": "List JVM threads.",
484
+ "cli.cmd.server.thread.list.desc": "List JVM thread summaries without full stack traces.",
485
+ "cli.cmd.server.thread.list.cluster": "Run the query on one cluster node.",
486
+ "cli.cmd.server.thread.list.empty": "No JVM threads match the current filter.",
487
+ "cli.cmd.server.thread.dump.summary": "Capture a JVM thread dump.",
488
+ "cli.cmd.server.thread.dump.desc": "Capture matching JVM threads with untruncated stack traces.",
489
+ "cli.cmd.server.thread.dump.cluster": "Capture the thread dump from one cluster node.",
490
+ "cli.cmd.server.thread.dump.deadlocks.none": "Deadlocks: none",
491
+ "cli.cmd.server.thread.dump.deadlocks.found": "Deadlocks: {0}",
492
+ "cli.cmd.server.thread.dump.waitingLock": "waiting on {0}",
493
+ "cli.cmd.server.thread.dump.waitingLockOwned": "waiting on {0}, owned by thread #{1}",
494
+ "cli.cmd.server.thread.top.summary": "Sample JVM thread hotspots.",
495
+ "cli.cmd.server.thread.top.desc": "Poll raw CPU, thread, memory, and GC samples, then analyze them locally without retaining a server-side report.",
496
+ "cli.cmd.server.thread.top.cluster": "Sample one cluster node, or use all to poll every current member concurrently.",
497
+ "cli.cmd.server.thread.top.duration": "Set the client-side analysis window from 1s to 20s; use an ms or s suffix.",
498
+ "cli.cmd.server.thread.top.interval": "Set each server sampling window from 200ms to 2s; the analysis window must contain at least two samples.",
499
+ "cli.cmd.server.thread.top.refresh": "Set how often the live client-side report refreshes from 500ms to 5s.",
500
+ "cli.cmd.server.thread.top.limit": "Limit hotspot and stall-candidate rows from 1 to 50.",
501
+ "cli.cmd.server.thread.top.noProgress": "Suppress the live report and print only the final report.",
502
+ "cli.cmd.server.thread.top.nodeSummary": "Node {0}: sampled for {1}, {2} samples across {3} observed threads.",
503
+ "cli.cmd.server.thread.top.cpuSummary": "JVM process CPU: {0}; accounted Java-thread CPU: {1}.",
504
+ "cli.cmd.server.thread.top.memorySummary": "Memory: heap {0} (peak {1}, delta {2}); non-heap {3}; direct buffers {4}.",
505
+ "cli.cmd.server.thread.top.gcSummary": "GC time ratio over the sampling window: {0}.",
506
+ "cli.cmd.server.thread.top.clusterSummary": "Cluster nodes: {0}/{1} reported ({2}); client analysis window: {3}.",
507
+ "cli.cmd.server.thread.top.status.completed": "completed",
508
+ "cli.cmd.server.thread.top.status.partial": "partial",
509
+ "cli.cmd.server.thread.top.status.failed": "failed",
510
+ "cli.cmd.server.thread.top.reason.deadlock": "deadlock",
511
+ "cli.cmd.server.thread.top.reason.monitorBlocked": "monitor blocked",
512
+ "cli.cmd.server.thread.top.reason.sqlWait": "SQL wait",
513
+ "cli.cmd.server.thread.top.reason.ioWait": "I/O wait",
514
+ "cli.cmd.server.thread.top.reason.cpuIntensive": "CPU intensive",
515
+ "cli.cmd.server.thread.top.reason.hotLoop": "possible hot loop",
516
+ "cli.cmd.server.thread.top.warning.cpuUnavailable": "thread CPU time is unavailable",
517
+ "cli.cmd.server.thread.top.warning.threadLimit": "the client thread tracking limit was reached",
518
+ "cli.cmd.server.thread.top.warning.partialCluster": "some cluster samples are incomplete",
519
+ "cli.cmd.server.thread.top.warning.sampleFailed": "a sample failed: {0}",
520
+ "cli.cmd.server.thread.top.hotThreads": "Hot threads:",
521
+ "cli.cmd.server.thread.top.stallCandidates": "Long-running thread findings (diagnostic clues, not confirmed faults):",
522
+ "cli.cmd.server.thread.top.warnings": "Warnings: {0}",
523
+ "cli.cmd.server.thread.top.out.node": "Node",
524
+ "cli.cmd.server.thread.top.out.cpu": "CPU",
525
+ "cli.cmd.server.thread.top.out.processShare": "Process share",
526
+ "cli.cmd.server.thread.top.out.location": "Top frame",
527
+ "cli.cmd.server.thread.top.out.details": "Details",
528
+ "cli.cmd.server.thread.top.out.reason": "Reason",
529
+ "cli.cmd.server.thread.top.out.hits": "Hits",
530
+ "cli.cmd.server.thread.top.out.status": "Status",
531
+ "cli.cmd.server.thread.top.out.error": "Error",
532
+ "cli.cmd.server.thread.top.out.samples": "Samples",
533
+ "cli.cmd.server.thread.top.out.heap": "Heap",
534
+ "cli.cmd.server.thread.top.out.heapDelta": "Heap delta",
535
+ "cli.cmd.server.thread.top.out.collector": "Collector",
536
+ "cli.cmd.server.thread.top.out.gcCount": "Collections",
537
+ "cli.cmd.server.thread.top.out.gcTime": "GC time",
538
+ "cli.cmd.server.thread.show.summary": "Show one JVM thread.",
539
+ "cli.cmd.server.thread.show.desc": "Show the current thread snapshot, authorized SQL details, and full stack trace.",
540
+ "cli.cmd.server.thread.show.cluster": "Read the thread from one cluster node.",
541
+ "cli.cmd.server.thread.show.stack": "Stack:",
542
+ "cli.cmd.server.thread.show.stackEmpty": " (stack is no longer available)",
543
+ "cli.cmd.server.thread.cancel.summary": "Request cancellation of a JVM thread task.",
544
+ "cli.cmd.server.thread.cancel.desc": "Request cooperative cancellation of the registered product task that still matches the cancel serial.",
545
+ "cli.cmd.server.thread.cancel.cancelSerial": "Require the current cancel serial returned by thread list or show.",
546
+ "cli.cmd.server.thread.cancel.cluster": "Cancel the task on one cluster node.",
547
+ "cli.cmd.server.thread.cancel.force": "Confirm the cooperative cancellation request.",
548
+ "cli.cmd.server.thread.cancel.requested": "Cancellation requested for thread {0} on {1}.",
549
+ "cli.cmd.server.thread.out.id": "ID",
550
+ "cli.cmd.server.thread.out.working": "Working",
551
+ "cli.cmd.server.thread.out.state": "State",
552
+ "cli.cmd.server.thread.out.executingSql": "SQL",
553
+ "cli.cmd.server.thread.out.cancelable": "Cancelable",
554
+ "cli.cmd.server.thread.out.user": "User",
555
+ "cli.cmd.server.thread.out.elapsed": "Elapsed",
556
+ "cli.cmd.server.thread.out.name": "Name",
557
+ "cli.cmd.server.thread.out.description": "Description",
558
+ "cli.cmd.server.thread.out.taskSerial": "Task serial",
559
+ "cli.cmd.server.thread.out.cancelSerial": "Cancel serial",
560
+ "cli.cmd.server.thread.out.startedAt": "Started",
561
+ "cli.cmd.server.thread.out.datasource": "Datasource",
562
+ "cli.cmd.server.thread.out.logAvailable": "Log available",
563
+ "cli.cmd.server.techLog.title": "Server technical log",
564
+ "cli.cmd.server.techLog.summary": "inspect and manage server technical logs",
565
+ "cli.cmd.server.techLog.desc": "Inspect technical logs and manage runtime logger levels. These commands require access to the system-settings console.",
566
+ "cli.cmd.server.techLog.*.cluster": "Read from a named cluster node; omit for the current HTTP node. Find node names with 'succapp server cluster list'.",
567
+ "cli.cmd.server.techLog.list.summary": "List technical log files.",
568
+ "cli.cmd.server.techLog.list.desc": "List the same .log files shown by the server system-settings console. Requires console view permission.",
569
+ "cli.cmd.server.techLog.list.empty": "No technical log files are available on this node.",
570
+ "cli.cmd.server.techLog.tail.summary": "Read the technical log tail.",
571
+ "cli.cmd.server.techLog.tail.desc": "Read the active technical log using the system-settings cursor protocol. Requires console view permission. One-shot JSON keeps content as plain log text.",
572
+ "cli.cmd.server.techLog.tail.lines": "Keep this many lines from the initial log fragment (1 to 5000, default 200).",
573
+ "cli.cmd.server.techLog.tail.from": "Continue from a previous one-shot JSON result; requires --log-file.",
574
+ "cli.cmd.server.techLog.tail.logFile": "Use the log file from a previous one-shot JSON result; requires --from.",
575
+ "cli.cmd.server.techLog.tail.follow": "Continue polling and append new log content until interrupted with Ctrl+C.",
576
+ "cli.cmd.server.techLog.tail.interval": "Set the follow polling interval in milliseconds (500 to 60000). Requires --follow.",
577
+ "cli.cmd.server.techLog.tail.retry": "Temporary network error; retry {0} in {1} ms.",
578
+ "cli.cmd.server.techLog.download.summary": "Download a technical log file.",
579
+ "cli.cmd.server.techLog.download.desc": "Download a file returned by 'succapp server tech-log list'. Requires console log export permission.",
580
+ "cli.cmd.server.techLog.download.cluster": "Download from a named cluster node; omit for the current HTTP node. Find node names with 'succapp server cluster list'.",
581
+ "cli.cmd.server.techLog.download.file": "Use the exact file name returned by 'succapp server tech-log list'.",
582
+ "cli.cmd.server.techLog.download.output": "Write the log to this local file.",
583
+ "cli.cmd.server.techLog.download.force": "Overwrite the local output file if it exists.",
584
+ "cli.cmd.server.techLog.download.downloaded": "Downloaded technical log {0} to {1}",
585
+ "cli.cmd.server.techLog.level.title": "Technical log level",
586
+ "cli.cmd.server.techLog.level.summary": "inspect and manage logger levels",
587
+ "cli.cmd.server.techLog.level.desc": "Inspect, persist, hot-apply, and reset logger levels. These commands require system-settings console view permission.",
588
+ "cli.cmd.server.techLog.level.*.cluster": "Modify a named cluster node; omit for the current HTTP node. Find node names with 'succapp server cluster list'.",
589
+ "cli.cmd.server.techLog.level.list.summary": "List logger levels.",
590
+ "cli.cmd.server.techLog.level.list.desc": "List persisted and effective logger levels on the target node. Requires console view permission.",
591
+ "cli.cmd.server.techLog.level.list.cluster": "Read from a named cluster node; omit for the current HTTP node. Find node names with 'succapp server cluster list'.",
592
+ "cli.cmd.server.techLog.level.set.summary": "Set a logger level.",
593
+ "cli.cmd.server.techLog.level.set.desc": "Persist and hot-apply one logger level on the target node. Requires console view permission.",
594
+ "cli.cmd.server.techLog.level.set.force": "Confirm TRACE or DEBUG after reviewing the operational impact.",
595
+ "cli.cmd.server.techLog.level.set.logger": "Use an exact named logger; root and wildcards are not allowed.",
596
+ "cli.cmd.server.techLog.level.set.level": "Use TRACE, DEBUG, INFO, or ERROR. Values are case-sensitive.",
597
+ "cli.cmd.server.techLog.level.set.updated": "Updated logger {0} to {1}",
598
+ "cli.cmd.server.techLog.level.reset.summary": "Reset a named logger level.",
599
+ "cli.cmd.server.techLog.level.reset.desc": "Remove a logger's explicit level so it inherits from its parent. Requires console view permission.",
600
+ "cli.cmd.server.techLog.level.reset.logger": "Use an exact named logger; root and wildcards are not allowed.",
601
+ "cli.cmd.server.techLog.level.reset.reset": "Reset logger level: {0}",
602
+ "cli.cmd.server.techLog.level.apply.summary": "Apply logger levels to the cluster.",
603
+ "cli.cmd.server.techLog.level.apply.desc": "Submit the current HTTP node's complete Logback configuration to reachable peers. Requires console view permission. Success confirms submission only, not per-node completion.",
604
+ "cli.cmd.server.techLog.level.apply.force": "Confirm replacing the complete Logback configuration on reachable cluster peers.",
605
+ "cli.cmd.server.techLog.level.apply.applied": "The Logback configuration was submitted to the cluster.",
606
+ "cli.cmd.server.techLog.out.file": "File",
607
+ "cli.cmd.server.techLog.out.size": "Size",
608
+ "cli.cmd.server.techLog.out.modified": "Modified",
609
+ "cli.cmd.server.techLog.out.logger": "Logger",
610
+ "cli.cmd.server.techLog.out.level": "Level",
611
+ "cli.cmd.server.techLog.out.configuredLevel": "Configured",
612
+ "cli.cmd.server.techLog.out.effectiveLevel": "Effective",
366
613
  "cli.cmd.server.proj.title": "Server project",
367
614
  "cli.cmd.server.proj.summary": "inspect server projects",
368
615
  "cli.cmd.server.proj.desc": "Inspect server projects.",
369
616
  "cli.cmd.server.proj.list.summary": "List server projects.",
370
617
  "cli.cmd.server.proj.list.desc": "List projects visible on a server.",
618
+ "cli.cmd.server.proj.list.empty": "No visible projects found.",
371
619
  "cli.cmd.server.proj.create.summary": "Create a server project.",
372
620
  "cli.cmd.server.proj.create.desc": "Create a metadata project on a server.",
373
621
  "cli.cmd.server.proj.create.descOption": "Set the project description.",
@@ -375,6 +623,8 @@
375
623
  "cli.cmd.server.file.title": "Server file",
376
624
  "cli.cmd.server.file.summary": "inspect and operate server metadata files",
377
625
  "cli.cmd.server.file.desc": "Inspect and operate server metadata files.",
626
+ "cli.cmd.server.file.*.file": "Read content from a local file.",
627
+ "cli.cmd.server.file.*.stdin": "Read content from stdin.",
378
628
  "cli.cmd.server.file.badValue": "Invalid value for {0}: {1}",
379
629
  "cli.cmd.server.file.expectedRevRequired": "{0} requires --expected-revision=<n> unless --force is used.",
380
630
  "cli.cmd.server.file.fileOrStdinConflict": "Use either --file or --stdin, not both.",
@@ -387,19 +637,42 @@
387
637
  "cli.cmd.server.file.unknownServerFile": "Unknown server file error.",
388
638
  "cli.cmd.server.file.list.summary": "List server files.",
389
639
  "cli.cmd.server.file.list.desc": "List direct children of a server metadata directory.",
640
+ "cli.cmd.server.file.list.empty": "Directory is empty: {0}",
390
641
  "cli.cmd.server.file.search.summary": "Search server files.",
391
- "cli.cmd.server.file.search.desc": "Search readable server metadata files by query, path, name, type, and size.",
392
- "cli.cmd.server.file.search.path": "Search by full metadata path glob.",
393
- "cli.cmd.server.file.search.name": "Search by file name glob.",
394
- "cli.cmd.server.file.search.parentDir": "Search by parent directory glob.",
395
- "cli.cmd.server.file.search.project": "Limit search to one project.",
642
+ "cli.cmd.server.file.search.desc": "Search readable server metadata files by full path or by combinable project, parent-directory, and file-name filters.",
643
+ "cli.cmd.server.file.search.url": "Optional server URL. A lone non-URL argument is treated as <query>.",
644
+ "cli.cmd.server.file.search.query": "Starts with '/': full path or path glob. Contains '*' or '?': file name glob. Otherwise searches file metadata by keyword.",
645
+ "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.",
646
+ "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.",
647
+ "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.",
648
+ "cli.cmd.server.file.search.project": "Match one project name. Can be combined with --parent-dir and --name.",
396
649
  "cli.cmd.server.file.search.type": "Limit search to metadata type. Repeat or use comma-separated values.",
397
650
  "cli.cmd.server.file.search.subType": "Limit search to metadata subtype. Repeat or use comma-separated values.",
398
651
  "cli.cmd.server.file.search.minSize": "Minimum original content size in bytes.",
399
652
  "cli.cmd.server.file.search.maxSize": "Maximum original content size in bytes.",
400
- "cli.cmd.server.file.search.limit": "Limit the number of returned files. Defaults to 50; maximum is 200.",
401
- "cli.cmd.server.file.search.offset": "Skip this many matched files.",
653
+ "cli.cmd.server.file.search.limit": "Return at most this many most relevant files. Defaults to 50; maximum is 1000.",
402
654
  "cli.cmd.server.file.search.includeFolders": "Include folders in the result.",
655
+ "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.",
656
+ "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.",
657
+ "cli.cmd.server.file.search.empty": "No matching files.",
658
+ "cli.cmd.server.file.search.pathHint": "'{0}' is an exact metadata path. Use '{1}' to search recursively.",
659
+ "cli.cmd.server.file.search.nameHint": "File names match exactly without wildcards; wildcards are not added automatically.",
660
+ "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.",
661
+ "cli.cmd.server.file.search.warningDetails": "Content was not checked; use --json for full details.",
662
+ "cli.cmd.server.recyclebin.title": "Server recycle bin",
663
+ "cli.cmd.server.recyclebin.summary": "Search files in the server recycle bin",
664
+ "cli.cmd.server.recyclebin.desc": "Search and inspect deleted files that are visible in server project recycle bins.",
665
+ "cli.cmd.server.recyclebin.search.summary": "Search server recycle bin files.",
666
+ "cli.cmd.server.recyclebin.search.desc": "Search visible files in a project recycle bin by keyword, path, type, or delete time.",
667
+ "cli.cmd.server.recyclebin.search.url": "Optional server URL. A lone non-URL first argument is treated as <project>.",
668
+ "cli.cmd.server.recyclebin.search.project": "Project name whose recycle bin should be searched.",
669
+ "cli.cmd.server.recyclebin.search.query": "Search keyword, full metadata path, or path glob.",
670
+ "cli.cmd.server.recyclebin.search.type": "Limit search to metadata type. Repeat or use comma-separated values.",
671
+ "cli.cmd.server.recyclebin.search.deletedAfter": "Only return files deleted at or after this time. Accepts epoch millis or ISO-8601.",
672
+ "cli.cmd.server.recyclebin.search.deletedBefore": "Only return files deleted at or before this time. Accepts epoch millis or ISO-8601.",
673
+ "cli.cmd.server.recyclebin.search.limit": "Return at most this many files. Defaults to 50; maximum is 1000.",
674
+ "cli.cmd.server.recyclebin.search.empty": "No matching recycle bin files in project {0}.",
675
+ "cli.cmd.server.recyclebin.search.hasMore": "Only {0} recycle bin files are shown; add a type, delete time range, or more specific keyword to narrow the search.",
403
676
  "cli.cmd.server.file.locate.summary": "Locate a server file by metadata ID.",
404
677
  "cli.cmd.server.file.locate.desc": "Resolve a metadata ID to the current server file path.",
405
678
  "cli.cmd.server.file.locate.url": "Only print the server view or edit URL.",
@@ -419,8 +692,10 @@
419
692
  "cli.cmd.server.file.download.force": "Overwrite the local output file if it exists.",
420
693
  "cli.cmd.server.file.download.downloaded": "Downloaded {0} to {1}",
421
694
  "cli.cmd.server.file.open.summary": "Open the server file page.",
422
- "cli.cmd.server.file.open.desc": "Open the server view or edit page for a server file path.",
423
- "cli.cmd.server.file.open.edit": "Open the server edit page.",
695
+ "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.",
696
+ "cli.cmd.server.file.open.edit": "Open the server edit page instead of the view page.",
697
+ "cli.cmd.server.file.open.noOpen": "Return the page URL without launching the system browser.",
698
+ "cli.cmd.server.file.open.path": "Absolute server metadata path. The URL is constructed without checking whether the file exists.",
424
699
  "cli.cmd.server.file.open.openedEdit": "Opened server edit page: {0}",
425
700
  "cli.cmd.server.file.open.openedView": "Opened server view page: {0}",
426
701
  "cli.cmd.server.file.history.summary": "Show server file history.",
@@ -428,12 +703,8 @@
428
703
  "cli.cmd.server.file.history.limit": "Limit the number of history records.",
429
704
  "cli.cmd.server.file.create.summary": "Create a server file.",
430
705
  "cli.cmd.server.file.create.desc": "Create a server file and fail if it already exists.",
431
- "cli.cmd.server.file.create.file": "Read content from a local file.",
432
- "cli.cmd.server.file.create.stdin": "Read content from stdin.",
433
706
  "cli.cmd.server.file.update.summary": "Update a server file.",
434
707
  "cli.cmd.server.file.update.desc": "Update an existing server file with revision protection by default.",
435
- "cli.cmd.server.file.update.file": "Read content from a local file.",
436
- "cli.cmd.server.file.update.stdin": "Read content from stdin.",
437
708
  "cli.cmd.server.file.update.expectedRevision": "Only update when the server revision still matches.",
438
709
  "cli.cmd.server.file.update.force": "Overwrite the current server content without revision protection.",
439
710
  "cli.cmd.server.file.remove.summary": "Delete a server file.",
@@ -556,6 +827,7 @@
556
827
  "cli.cmd.workspace.proj.desc": "Manage workspace projects.",
557
828
  "cli.cmd.workspace.proj.list.summary": "List workspace projects.",
558
829
  "cli.cmd.workspace.proj.list.desc": "List workspace projects.",
830
+ "cli.cmd.workspace.proj.list.empty": "No projects are tracked in this workspace.",
559
831
  "cli.cmd.workspace.proj.clone.summary": "Clone server projects into the workspace.",
560
832
  "cli.cmd.workspace.proj.clone.desc": "Clone projects from the active server into the current workspace.",
561
833
  "cli.cmd.workspace.proj.clone.force": "Allow clone to overwrite existing local workspace projects.",
@@ -597,8 +869,10 @@
597
869
  "cli.cmd.workspace.file.resolve.remote": "Remote path: {0}",
598
870
  "cli.cmd.workspace.file.resolve.viewUrl": "View URL: {0}",
599
871
  "cli.cmd.workspace.file.open.summary": "Open the server file page.",
600
- "cli.cmd.workspace.file.open.desc": "Open the server view or edit page for a workspace file.",
601
- "cli.cmd.workspace.file.open.edit": "Open the server edit page.",
872
+ "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.",
873
+ "cli.cmd.workspace.file.open.edit": "Open the server edit page instead of the view page.",
874
+ "cli.cmd.workspace.file.open.noOpen": "Return the page URL without launching the system browser.",
875
+ "cli.cmd.workspace.file.open.path": "Workspace-relative file path or absolute server metadata path.",
602
876
  "cli.cmd.workspace.file.open.force": "Open the server page even when the local file has unpushed changes.",
603
877
  "cli.cmd.workspace.file.open.localChangedForce": "The local file has unpushed changes. The browser opens the server version of {0}.",
604
878
  "cli.cmd.workspace.file.open.openedEdit": "Opened server edit page: {0}",
@@ -611,19 +885,26 @@
611
885
  "cli.cmd.workspace.file.show.badSource": "Invalid value for --source: {0}",
612
886
  "cli.cmd.workspace.file.show.revSource": "--revision is only supported with --source=server.",
613
887
  "cli.cmd.workspace.file.diff.summary": "Show workspace diff against server.",
614
- "cli.cmd.workspace.file.diff.desc": "Show workspace diff against server.",
888
+ "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.",
615
889
  "cli.cmd.workspace.file.diff.source": "Compare against server content.",
616
890
  "cli.cmd.workspace.file.diff.badSource": "Invalid value for --source: {0}",
617
891
  "cli.cmd.workspace.file.history.summary": "Show server file history.",
618
892
  "cli.cmd.workspace.file.history.desc": "Show server-side file history for a workspace file.",
619
893
  "cli.cmd.workspace.file.history.limit": "Limit the number of history records.",
620
- "cli.cmd.workspace.file.compile.summary": "Compile workspace metadata content on the server.",
621
- "cli.cmd.workspace.file.compile.desc": "Send local workspace metadata content to the server for compile validation.",
894
+ "cli.cmd.workspace.file.compile.summary": "Validate workspace metadata files.",
895
+ "cli.cmd.workspace.file.compile.desc": "Validate local workspace metadata files. Inputs may be files, directories (recursively including all files), or globs.",
622
896
  "cli.cmd.workspace.file.compile.compiler": "Compiler",
897
+ "cli.cmd.workspace.file.compile.done": "Validated {0} workspace metadata file(s).",
623
898
  "cli.cmd.workspace.file.compile.failed": "Failed files: {0}",
624
- "cli.cmd.workspace.file.compile.result": "Metadata compile result: {0} file(s), {1} passed, {2} failed",
899
+ "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.",
900
+ "cli.cmd.workspace.file.compile.result": "Metadata validation result: {0} file(s), {1} passed, {2} failed",
901
+ "cli.cmd.workspace.file.compile.running": "Validating workspace metadata files",
902
+ "cli.cmd.workspace.file.compile.schemaFailed": "Metadata validation failed.",
903
+ "cli.cmd.workspace.file.compile.schemaFailedMsg": "Metadata validation failed: {0}",
904
+ "cli.cmd.workspace.file.compile.skipped": "Skipped files: {0}",
905
+ "cli.cmd.workspace.file.compile.upgradeRequired": "{0} file(s) require a metadata upgrade. Run `{1}` with the same pathspec, then validate again.",
625
906
  "cli.cmd.workspace.file.upgrade.summary": "Upgrade old SuccApp metadata files.",
626
- "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.",
907
+ "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.",
627
908
  "cli.cmd.workspace.file.upgrade.dryRun": "Preview upgrade candidates without changing files.",
628
909
  "cli.cmd.workspace.file.upgrade.cands": "Upgrade candidates: {0}",
629
910
  "cli.cmd.workspace.file.upgrade.dryRunRes": "Metadata upgrade dry-run: {0} checked, {1} candidate(s), {2} skipped, {3} failed",
@@ -639,6 +920,7 @@
639
920
  "cli.cmd.workspace.lock.list.summary": "List locked workspace scopes.",
640
921
  "cli.cmd.workspace.lock.list.desc": "List scopes currently locked in the SuccApp workspace.",
641
922
  "cli.cmd.workspace.lock.list.scope": "Scope",
923
+ "cli.cmd.workspace.lock.list.empty": "No active workspace locks.",
642
924
  "cli.cmd.workspace.lock.status.summary": "Show workspace lock holders.",
643
925
  "cli.cmd.workspace.lock.status.desc": "Workspace lock status",
644
926
  "cli.cmd.workspace.lock.status.heartbeat": "Last heartbeat",
@@ -657,6 +939,7 @@
657
939
  "cli.cmd.workspace.backup.cleared": "Merge backup clear: {0} cleared, {1} remaining.",
658
940
  "cli.cmd.workspace.backup.list.summary": "List saved merge backups.",
659
941
  "cli.cmd.workspace.backup.list.desc": "List local versions saved before pull conflict handling.",
942
+ "cli.cmd.workspace.backup.list.empty": "No merge backups found.",
660
943
  "cli.cmd.workspace.backup.clear.summary": "Clear saved merge backups.",
661
944
  "cli.cmd.workspace.backup.clear.desc": "Clear local versions saved before pull conflict handling.",
662
945
  "cli.cmd.workspace.ext.title": "Workspace extension",
@@ -678,6 +961,7 @@
678
961
  "cli.cmd.workspace.ext.push.force": "Allow local extension files to overwrite remote changes.",
679
962
  "cli.cmd.workspace.ext.push.needNamePath": "Pass an extension name or --path=<path>.",
680
963
  "cli.cmd.workspace.ext.push.onlyOne": "Use either <name> or --path=<path>, not both.",
964
+ "cli.out.search.score": "Score",
681
965
  "cli.out.common.active": "Active",
682
966
  "cli.out.common.api": "Dev Tool API",
683
967
  "cli.out.common.baseline": "Baseline",
@@ -686,6 +970,7 @@
686
970
  "cli.out.common.id": "ID",
687
971
  "cli.out.common.jvmInfo": "JVM properties",
688
972
  "cli.out.common.metaVersions": "Metadata versions",
973
+ "cli.out.common.noResults": "No results.",
689
974
  "cli.out.common.noServers": "No servers configured.",
690
975
  "cli.out.common.product": "Product",
691
976
  "cli.out.common.productInfo": "Product information",
@@ -728,18 +1013,47 @@
728
1013
  "cli.out.model.extractMode": "Extract mode",
729
1014
  "cli.out.model.fields": "Fields",
730
1015
  "cli.out.model.kind": "Kind",
1016
+ "cli.out.model.matchedFields": "Matched fields",
731
1017
  "cli.out.model.primary": "Primary",
732
1018
  "cli.out.model.primaryKeys": "Primary keys",
1019
+ "cli.out.model.profile": "Data profile",
1020
+ "cli.out.model.profile.profiledRowCount": "Rows",
1021
+ "cli.out.model.profile.sampled": "Sampled",
1022
+ "cli.out.model.profile.nullCount": "Nulls",
1023
+ "cli.out.model.profile.nullRate": "Null rate",
1024
+ "cli.out.model.profile.distinctCount": "Distinct",
1025
+ "cli.out.model.profile.minValue": "Min",
1026
+ "cli.out.model.profile.maxValue": "Max",
1027
+ "cli.out.model.profile.sum": "Sum",
1028
+ "cli.out.model.profile.avg": "Average",
1029
+ "cli.out.model.profile.median": "Median",
1030
+ "cli.out.model.profile.p90": "P90",
1031
+ "cli.out.model.profile.p95": "P95",
1032
+ "cli.out.model.profile.zeroCount": "Zeros",
1033
+ "cli.out.model.profile.negativeCount": "Negatives",
1034
+ "cli.out.model.profile.topValues": "Top values",
1035
+ "cli.out.model.profile.sampleValues": "Samples",
1036
+ "cli.out.model.profile.estimatedProperties": "Estimated",
1037
+ "cli.out.model.profile.unavailableProperties": "Unavailable",
1038
+ "cli.out.model.role": "Role",
1039
+ "cli.out.model.rowCount": "Row count",
733
1040
  "cli.out.model.targetTable": "Target table",
734
1041
  "cli.out.model.title": "Title",
735
1042
  "cli.out.model.type": "Model type",
736
1043
  "cli.out.model.unique": "Unique",
737
1044
  "cli.out.model.writable": "Writable",
738
1045
  "cli.out.header.action": "Action",
1046
+ "cli.out.header.cacheDisk": "Disk",
1047
+ "cli.out.header.cacheEntries": "Entries",
1048
+ "cli.out.header.cacheHitRate": "Hit rate",
1049
+ "cli.out.header.cacheMem": "Memory",
1050
+ "cli.out.header.cacheName": "Cache",
739
1051
  "cli.out.header.column": "Column",
740
1052
  "cli.out.header.command": "Command",
741
1053
  "cli.out.header.comment": "Comment",
742
1054
  "cli.out.header.default": "Default",
1055
+ "cli.out.header.deleted": "Deleted",
1056
+ "cli.out.header.deletedBy": "Deleted by",
743
1057
  "cli.out.header.description": "Description",
744
1058
  "cli.out.header.error": "Error",
745
1059
  "cli.out.header.extension": "Extension",
@@ -755,6 +1069,7 @@
755
1069
  "cli.out.header.null": "Null",
756
1070
  "cli.out.header.path": "Path",
757
1071
  "cli.out.header.project": "Project",
1072
+ "cli.out.header.recyclebinId": "Recycle bin ID",
758
1073
  "cli.out.header.remote": "Remote path",
759
1074
  "cli.out.header.revision": "Revision",
760
1075
  "cli.out.header.schema": "Schema",
@@ -769,8 +1084,16 @@
769
1084
  "cli.out.help.commandHelpRead": "Run 'succapp {0} <command> --help' to read about a specific command.",
770
1085
  "cli.out.help.commandHelpSee": "Run 'succapp <command> --help' to see command help.",
771
1086
  "cli.out.help.commands": "Commands",
1087
+ "cli.out.help.arguments": "arguments:",
772
1088
  "cli.out.help.examples": "examples:",
773
- "cli.out.help.options": "options:",
1089
+ "cli.out.help.group.content": "content options:",
1090
+ "cli.out.help.group.field": "field options:",
1091
+ "cli.out.help.group.global": "global options:",
1092
+ "cli.out.help.group.input": "input options:",
1093
+ "cli.out.help.group.options": "options:",
1094
+ "cli.out.help.group.output": "output options:",
1095
+ "cli.out.help.group.query": "query options:",
1096
+ "cli.out.help.group.search": "search options:",
774
1097
  "cli.out.help.usageHeader": "usage:",
775
1098
  "cli.out.help.usageLine": "usage: succapp {command} {usageArgs}",
776
1099
  "cli.out.human.error": "error: {0}",
@@ -832,6 +1155,7 @@
832
1155
  "cli.input.activeServer": "active server",
833
1156
  "cli.input.contentSource": "content source",
834
1157
  "cli.input.dataSourceConfig": "data source config",
1158
+ "cli.input.dataSourceTestTarget": "data source or data source config",
835
1159
  "cli.input.exportTarget": "export target",
836
1160
  "cli.input.extensionName": "extension name",
837
1161
  "cli.input.extensionNameOrPath": "extension name or path",
@@ -842,6 +1166,12 @@
842
1166
  "cli.input.password": "password",
843
1167
  "cli.input.projectName": "project name",
844
1168
  "cli.input.server": "server",
1169
+ "cli.input.clusterNode": "cluster node",
1170
+ "cli.input.threadId": "thread ID",
1171
+ "cli.input.cancelSerial": "cancel serial",
1172
+ "cli.input.techLogFile": "technical log file",
1173
+ "cli.input.logger": "logger",
1174
+ "cli.input.logLevel": "log level",
845
1175
  "cli.input.serverFilePath": "server file path",
846
1176
  "cli.input.settingsPatch": "settings patch",
847
1177
  "cli.input.settingsTarget": "settings target",
@@ -1092,9 +1422,9 @@
1092
1422
  "vs.ui.remote.remoteServerFiles": "Remote server files are read-only in the Servers view. Use sync commands to edit local workspace files.",
1093
1423
  "vs.ui.status.clickReconnectOr": "Click to reconnect or switch servers",
1094
1424
  "vs.ui.status.clickSwitchServers": "Click to switch servers",
1095
- "vs.ui.status.initializingSuccBi": "Initializing SuccBI connection state",
1096
- "vs.ui.status.succBiDisconnected": "SuccBI: Disconnected",
1097
- "vs.ui.status.succBiInitializing": "SuccBI: Initializing",
1425
+ "vs.ui.status.initializingSuccBi": "Initializing SuccApp connection state",
1426
+ "vs.ui.status.succBiDisconnected": "SuccApp: Disconnected",
1427
+ "vs.ui.status.succBiInitializing": "SuccApp: Initializing",
1098
1428
  "vs.ui.status.switchServer": "Switch Server",
1099
1429
  "vs.ui.vfs.remoteServerConnected": "Remote server is not connected: {0}.",
1100
1430
  "vs.ui.vfs.remoteServerFiles": "Remote server files are read-only: {0}. Clone the project and sync local changes instead.",
@@ -1111,45 +1441,65 @@
1111
1441
  "cli.cmd.model.title": "Model",
1112
1442
  "cli.cmd.model.summary": "inspect and query semantic data models",
1113
1443
  "cli.cmd.model.desc": "Inspect and query SuccApp semantic data models.",
1114
- "cli.cmd.model.list.summary": "List semantic models.",
1115
- "cli.cmd.model.list.desc": "List visible .tbl semantic models.",
1116
- "cli.cmd.model.list.project": "Filter models by project.",
1117
- "cli.cmd.model.list.type": "Filter models by model type.",
1118
- "cli.cmd.model.list.contains": "Filter models by text.",
1119
- "cli.cmd.model.list.limit": "Maximum returned model count.",
1444
+ "cli.cmd.model.search.summary": "Search semantic models.",
1445
+ "cli.cmd.model.search.desc": "Search visible .tbl semantic models by full path or by combinable location, model-property, and field-property filters.",
1446
+ "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.",
1447
+ "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.",
1448
+ "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.",
1449
+ "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.",
1450
+ "cli.cmd.model.search.project": "Match one project name. Can be combined with --parent-dir and --name.",
1451
+ "cli.cmd.model.search.type": "Match Table.tableType values. Repeat or use comma-separated values; values are ORed.",
1452
+ "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).",
1453
+ "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).",
1454
+ "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).",
1455
+ "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).",
1456
+ "cli.cmd.model.search.fieldMatch": "Limit field-text matching to dim, measure, or all fields. Defaults to all.",
1457
+ "cli.cmd.model.search.allFields": "Include hidden and extended fields in field-text matching.",
1458
+ "cli.cmd.model.search.fieldLimit": "Maximum matched fields returned per model. Defaults to 5; valid range is 1 to 50.",
1459
+ "cli.cmd.model.search.limit": "Return at most this many most relevant models. Defaults to 50; valid range is 1 to 200.",
1460
+ "cli.cmd.model.search.empty": "No matching models.",
1461
+ "cli.cmd.model.search.pathHint": "'{0}' is an exact model path. Use '{1}' to search recursively.",
1462
+ "cli.cmd.model.search.nameHint": "Model names match exactly without wildcards; wildcards and the .tbl suffix are not added automatically.",
1463
+ "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.",
1120
1464
  "cli.cmd.model.show.summary": "Show model metadata summary.",
1121
1465
  "cli.cmd.model.show.desc": "Show semantic model metadata summary.",
1122
- "cli.cmd.model.show.detail": "Show detailed model summary.",
1466
+ "cli.cmd.model.profile.summary": "Profile one semantic model.",
1467
+ "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.",
1468
+ "cli.cmd.model.fieldProfile.summary": "Profile selected model fields.",
1469
+ "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.",
1470
+ "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.",
1471
+ "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.",
1472
+ "cli.cmd.model.fieldProfile.noData": "Do not scan field data; return semantic and dimension information only. Cannot be combined with --data-property.",
1473
+ "cli.cmd.model.fieldProfile.topN": "Maximum topValues entries. Defaults to 20; valid range is 1 to 50.",
1474
+ "cli.cmd.model.fieldProfile.sampleLimit": "Maximum sampleValues entries. Defaults to 10; valid range is 1 to 50.",
1475
+ "cli.cmd.model.fieldProfile.dimensionAttributeDepth": "Dimension-attribute expansion depth. Defaults to 1; valid range is 0 to 3.",
1123
1476
  "cli.cmd.model.fields.summary": "List model fields.",
1124
1477
  "cli.cmd.model.fields.desc": "List semantic model fields.",
1125
1478
  "cli.cmd.model.fields.all": "Include hidden fields and extended properties.",
1126
- "cli.cmd.model.fields.contains": "Filter fields by name, title, or database field.",
1479
+ "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).",
1127
1480
  "cli.cmd.model.fields.dim": "Only list dimension-key fields.",
1128
1481
  "cli.cmd.model.fields.measure": "Only list measure fields.",
1482
+ "cli.cmd.model.fields.empty": "No matching fields found.",
1129
1483
  "cli.cmd.model.indexes.summary": "List model indexes.",
1130
1484
  "cli.cmd.model.indexes.desc": "List primary keys, business keys, and model indexes.",
1485
+ "cli.cmd.model.indexes.empty": "This model has no indexes.",
1486
+ "cli.cmd.model.*.select": "Select fields, separated by commas. Can be repeated.",
1487
+ "cli.cmd.model.*.maxRows": "Maximum preview row count.",
1488
+ "cli.cmd.model.*.query": "Query DSL JSON.",
1489
+ "cli.cmd.model.*.queryFile": "Read Query DSL JSON from a file.",
1490
+ "cli.cmd.model.*.stdin": "Read Query DSL JSON from stdin.",
1131
1491
  "cli.cmd.model.select.summary": "Select rows from one model.",
1132
1492
  "cli.cmd.model.select.desc": "Select rows from one .tbl model with SuccApp expression filters.",
1133
- "cli.cmd.model.select.select": "Select fields, separated by commas. Can be repeated.",
1134
1493
  "cli.cmd.model.select.where": "Filter expression, for example STATUS='ACTIVE'.",
1135
1494
  "cli.cmd.model.select.order": "Sort expression, for example CREATE_TIME desc.",
1136
1495
  "cli.cmd.model.select.limit": "Maximum returned row count.",
1137
- "cli.cmd.model.select.maxRows": "Maximum preview row count.",
1138
1496
  "cli.cmd.model.query.summary": "Query models with Query DSL.",
1139
1497
  "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",
1140
- "cli.cmd.model.query.query": "Query DSL JSON.",
1141
- "cli.cmd.model.query.queryFile": "Read Query DSL JSON from a file.",
1142
- "cli.cmd.model.query.stdin": "Read Query DSL JSON from stdin.",
1143
- "cli.cmd.model.query.maxRows": "Maximum preview row count.",
1144
- "cli.cmd.model.query.empty": "Query executed successfully.",
1498
+ "cli.cmd.model.query.empty": "Query succeeded; 0 rows returned.",
1145
1499
  "cli.cmd.model.export.summary": "Export model query results as CSV.",
1146
1500
  "cli.cmd.model.export.desc": "Export one model or Query DSL result as CSV.",
1147
- "cli.cmd.model.export.select": "Select fields, separated by commas. Can be repeated.",
1148
1501
  "cli.cmd.model.export.where": "Filter expression for single-model export.",
1149
1502
  "cli.cmd.model.export.order": "Sort expression for single-model export.",
1150
- "cli.cmd.model.export.query": "Query DSL JSON.",
1151
- "cli.cmd.model.export.queryFile": "Read Query DSL JSON from a file.",
1152
- "cli.cmd.model.export.stdin": "Read Query DSL JSON from stdin.",
1153
1503
  "cli.cmd.model.export.output": "Write CSV output to a local file.",
1154
1504
  "cli.cmd.model.export.force": "Overwrite the output file if it already exists.",
1155
1505
  "cli.cmd.model.export.exportedData": "Exported data to {0}",