@succsoft/succapp 5.0.7 → 5.0.8

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.
@@ -99,6 +99,7 @@
99
99
  "err.net.invalidResponse": "Invalid remote response format",
100
100
  "err.net.invalidResponse.desc": "The remote response does not match the current protocol requirements. Check the service version or contact the administrator.",
101
101
  "err.net.invalidResponse.dbTableDescribeEmpty.hint": "Check whether data source {dataSource} and table {tableName} exist.",
102
+ "err.db.connectorNotFound": "Database connector is not available: {name}.",
102
103
  "err.db.tableNotFound": "Database table does not exist: {tableName}",
103
104
  "err.cli.unknownCommand": "Unknown command: {commandName}",
104
105
  "err.cli.unknownCommand.hint": "Run '{helpCommand}' to view available commands.",
@@ -245,27 +246,29 @@
245
246
  "workspace.sync.progress.upgradeMeta.checked": "Checked {0} metadata file(s): {1} upgradeable.",
246
247
  "workspace.sync.progress.upgradeMeta.done": "Upgraded metadata files: {0} changed, {1} failed, {2} checked.",
247
248
  "workspace.sync.progress.upgradeMeta.scan": "Scanning metadata files",
249
+ "workspace.sync.push.upgradeRequired": "Metadata file {0} must be upgraded before pushing. Run succapp workspace file upgrade or use Upgrade File in VS Code.",
248
250
  "cli.cmd.common.desc": "Common commands.",
249
251
  "cli.cmd.common.summary": "common commands",
250
252
  "cli.cmd.common.title": "Common",
251
253
  "cli.cmd.root.summary": "SuccApp command line interface.",
252
254
  "cli.host.localeFallback": "Locale {0} is not available; using default messages.",
253
255
  "cli.opt.help": "Show this help.",
254
- "cli.opt.json": "Write NDJSON for scripts; binary content results use Base64.",
256
+ "cli.opt.json": "Write NDJSON for scripts; file content, including text, uses Base64. Diagnostics go to stderr.",
255
257
  "cli.opt.locale": "Use the given locale for CLI messages.",
256
258
  "cli.opt.lockTimeout": "Wait for a workspace lock before failing.",
257
259
  "cli.opt.logLevel": "Set log level: trace, debug, info, warn, or error.",
258
260
  "cli.opt.prettyJson": "Write formatted JSON for people; not intended for line-oriented scripts.",
259
261
  "cli.opt.quiet": "Suppress progress and informational output.",
260
- "cli.opt.server": "Use the specified server for commands that support it.",
262
+ "cli.opt.server": "Direct target (below a positional URL, above the active server and SUCCAPP_SERVER); workspace synchronization requires the active server to match.",
261
263
  "cli.opt.verbose": "Enable debug logging.",
262
264
  "cli.opt.version": "Show version information and check for SuccApp CLI updates.",
263
- "cli.opt.workspace": "Run as if SuccApp was started in the given workspace.",
265
+ "cli.opt.workspace": "Select the workspace without changing the process working directory; local input/output files remain relative to the launch directory.",
266
+ "cli.cmd.root.desc": "SuccApp CLI manages local workspaces, accesses servers, queries models, and operates databases.\n\nChoose a command group below, then run succapp <command> --help to continue one level at a time. Before executing a command, check its arguments, input rules, and effects.\n\nScripts and AI agents can use --json for structured help; use --pretty-json when reading JSON manually.\n\nFor first-time use or help choosing a command, read the CLI guide below. Check that it applies to your CLI and server versions; when offline, use an available matching manual.\n\nCheck both exit status and business results; kind=result can still contain conflicts, skipped items or truncation. --json does not cancel side effects such as opening a browser or writing data. See the guide below for output and exit-code conventions.\n\nDocumentation: CLI guide\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/basics/cli.md\nWeb: https://docs.succapp.com/ai-building/basics/cli",
264
267
  "cli.cmd.auth.title": "Auth",
265
268
  "cli.cmd.auth.summary": "login, logout, and inspect stored server auth",
266
- "cli.cmd.auth.desc": "Login, logout, and inspect stored server auth.",
269
+ "cli.cmd.auth.desc": "Login, logout, and inspect stored server auth.\n\nUse login to establish and save authentication, status to inspect local records, and logout to remove them. Specify a server URL explicitly or use the active workspace server. CLI and IDE share these credentials.\n\nFor the full workflow, consult the guide below and confirm it applies to your CLI and server version.\n\nGuide: Configure authentication\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/workspace/configure-auth.md\nWeb: https://docs.succapp.com/ai-building/workspace/configure-auth",
267
270
  "cli.cmd.auth.login.summary": "Login to a server.",
268
- "cli.cmd.auth.login.desc": "Login to a SuccApp server with OAuth2 or PAT and save local auth state.",
271
+ "cli.cmd.auth.login.desc": "Login to a SuccApp server with OAuth2 or PAT and save local auth state.\n\nOAuth2 opens a browser by default. In scripts without a browser, use --pat and supply the token through standard input. --oauth and --pat are mutually exclusive. Successful login stores credentials for subsequent commands.\n\nFor the full workflow, consult the guide below and confirm it applies to your CLI and server version.\n\nGuide: Configure authentication\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/workspace/configure-auth.md\nWeb: https://docs.succapp.com/ai-building/workspace/configure-auth",
269
272
  "cli.cmd.auth.login.oauth": "Use OAuth2 login. This is the default.",
270
273
  "cli.cmd.auth.login.pat": "Use Personal Access Token login. Interactive terminals prompt for the token; piped input is read from stdin.",
271
274
  "cli.cmd.auth.login.patPrompt": "Personal Access Token: ",
@@ -276,19 +279,20 @@
276
279
  "cli.cmd.auth.login.loggedIn": "Logged in to {0}",
277
280
  "cli.cmd.auth.login.loggedInAs": "Logged in to {0} as {1}",
278
281
  "cli.cmd.auth.logout.summary": "Remove stored auth.",
279
- "cli.cmd.auth.logout.desc": "Remove stored authentication information from the local auth settings.",
282
+ "cli.cmd.auth.logout.desc": "Remove stored authentication information from the local auth settings.\n\nWithout an explicit target, use the current server. --all removes local credentials for every server and cannot be combined with a positional URL. This does not revoke a server-issued PAT or remove workspace server configuration.",
280
283
  "cli.cmd.auth.logout.all": "Remove stored auth for all servers.",
281
284
  "cli.cmd.auth.logout.removedAllAuth": "Removed stored auth for all servers: {0}",
282
285
  "cli.cmd.auth.logout.removedAuth": "Removed stored auth for {0}",
283
286
  "cli.cmd.auth.logout.serverUrlTogether": "Do not pass a server URL together with --all.",
284
287
  "cli.cmd.auth.logout.storedAuth": "No stored auth for {0}",
285
288
  "cli.cmd.auth.status.summary": "Show stored auth status.",
286
- "cli.cmd.auth.status.desc": "Show local stored authentication information for a server.",
289
+ "cli.cmd.auth.status.desc": "Show local stored authentication information for a server.\n\nThis reads saved local credentials without asking the server to validate them. token and refreshToken indicate presence, not secret values. If a subsequent request fails, check the server URL and sign in again.",
287
290
  "cli.cmd.auth.status.noStoredOutput": "Server: {server}\nStored auth: {storedAuth}",
288
291
  "cli.cmd.auth.status.output": "Server: {server}\nStored auth: {storedAuth}\nAuth type: {authType}\nUsername: {username}\nUser ID: {userId}\nToken: {token}\nRefresh token: {refreshToken}\nExpires at: {expiresAt}\nLast login at: {lastLoginAt}\nUpdated at: {updatedAt}",
292
+ "cli.cmd.auth.*.url": "Target server URL; takes precedence over --server, the active workspace server and SUCCAPP_SERVER.",
289
293
  "cli.cmd.db.title": "Database",
290
294
  "cli.cmd.db.summary": "inspect and operate server databases and data sources",
291
- "cli.cmd.db.desc": "Inspect and operate server databases and data sources.",
295
+ "cli.cmd.db.desc": "Inspect and operate server databases and data sources.\n\nTo connect data, choose a connector under connector, then prepare and manage data sources under source. Use schema and table to inspect database structure. Each group lists only its direct children; run succapp db <group> --help to continue.\n\nUse query for physical tables and export to export data. For semantic model queries, see succapp model --help.\n\nexec, import, and data source write commands can modify server configuration or database data. Read the specific command's help and confirm the server, data source, and effects before executing it.\n\nRead the guide below when preparing a connection, and check that it applies to your server version.\n\nDocumentation: Connect data\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/data/connect-data.md\nWeb: https://docs.succapp.com/ai-building/data/connect-data",
292
296
  "cli.cmd.db.dataSource": "Data source",
293
297
  "cli.cmd.db.connection": "Connection",
294
298
  "cli.cmd.db.defaultSchema": "Logical default schema",
@@ -321,8 +325,8 @@
321
325
  "cli.cmd.db.query.empty": "Query succeeded; 0 rows returned.",
322
326
  "cli.cmd.db.tableOrQueryConflict": "Pass either <table> or --query/--query-file, not both.",
323
327
  "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.",
328
+ "cli.cmd.db.connector.summary": "Inspect database connectors and their configuration fields.",
329
+ "cli.cmd.db.connector.desc": "Discover the database connectors available on the active server and inspect their connector-specific configuration fields.\n\nStart with list to obtain a connector ID, then use show to inspect its fields. Available connectors depend on the target server. Continue with succapp db source template to prepare a data source configuration.\n\nFor the full workflow, consult the guide below and confirm it applies to your CLI and server version.\n\nGuide: Connect data sources\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/data/connect-data.md\nWeb: https://docs.succapp.com/ai-building/data/connect-data",
326
330
  "cli.cmd.db.connector.connector": "Connector",
327
331
  "cli.cmd.db.connector.displayName": "Display name",
328
332
  "cli.cmd.db.connector.dbKind": "Database kind",
@@ -330,68 +334,68 @@
330
334
  "cli.cmd.db.connector.defaultValue": "Default",
331
335
  "cli.cmd.db.connector.secret": "secret",
332
336
  "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.",
337
+ "cli.cmd.db.connector.list.desc": "List the database connectors available for datasource creation on the active server.\n\nUse a returned connector ID with db connector show or db source template. Availability of a connector does not mean a data source has been configured or a database connection has been verified.",
334
338
  "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.",
339
+ "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.\n\nUse an ID returned by list for <connector>. Prepare values according to field types, required fields and secret fields. Replace template examples with real values and verify connectivity with db source test.",
336
340
  "cli.cmd.db.connector.show.connector": "Database connector ID reported by db connector list.",
337
341
  "cli.cmd.db.source.title": "Database source",
338
- "cli.cmd.db.source.summary": "inspect and manage database sources",
339
- "cli.cmd.db.source.desc": "Inspect and manage database sources.",
342
+ "cli.cmd.db.source.summary": "Inspect, test, and manage data sources.",
343
+ "cli.cmd.db.source.desc": "Inspect, test, and manage data sources on the server.\n\nUse list/show to inspect existing data sources and probe to verify connectivity and inspect the default schema. test accepts an existing data source or an unsaved configuration. Before creating a data source, obtain a template with template and read the input requirements for create.\n\ncreate, update, and remove change server data source configuration. test/probe attempt a real database connection. Read the specific command's help and confirm the target server and data source first.\n\nRead the guide below when preparing a connection, and check that it applies to your server version.\n\nDocumentation: Connect data\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/data/connect-data.md\nWeb: https://docs.succapp.com/ai-building/data/connect-data",
340
344
  "cli.cmd.db.source.*.config": "Read datasource configuration JSON from a file, or use - for stdin.",
341
345
  "cli.cmd.db.source.*.test": "Test the connection before saving.",
342
346
  "cli.cmd.db.source.list.summary": "List visible data sources.",
343
- "cli.cmd.db.source.list.desc": "List data sources visible to the active SuccApp server session.",
347
+ "cli.cmd.db.source.list.desc": "List data sources visible to the active SuccApp server session.\n\nUse the returned data source identifiers with show, probe, schema, table and SQL commands. An empty list only means that the current server session returned no visible data sources.",
344
348
  "cli.cmd.db.source.list.empty": "No data sources are available.",
345
349
  "cli.cmd.db.source.show.summary": "Show a datasource configuration.",
346
- "cli.cmd.db.source.show.desc": "Show a datasource configuration.",
350
+ "cli.cmd.db.source.show.desc": "Show a datasource configuration.\n\nUse an identifier returned by list for <datasource>. The JSON config field contains the configuration; password may be removed. Do not submit the entire result envelope or assume sanitized values form a complete update. This command does not test connectivity.",
347
351
  "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.",
352
+ "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.\n\nUse list to identify the data source first. Probing actually connects to the database. Success verifies this connection attempt, not permissions for subsequent queries or correctness of model configuration.",
349
353
  "cli.cmd.db.source.probe.datasource": "Name of the existing datasource to probe.",
350
354
  "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.",
355
+ "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.\n\nChoose exactly one of <datasource> and --config. --config reads a JSON file, or standard input when set to -. Submit the configuration object, not a CLI result envelope. Testing does not save configuration; use create or update to save it afterwards.",
352
356
  "cli.cmd.db.source.test.datasource": "Name of the existing datasource to test.",
353
357
  "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.",
358
+ "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.\n\nUse a connector ID returned by db connector list. Human output is the configuration JSON itself; --json places it in config. Fill in real connection details, then test and create. This command does not create a data source.",
355
359
  "cli.cmd.db.source.template.connector": "Database connector ID reported by db connector list.",
356
360
  "cli.cmd.db.source.create.summary": "Create a datasource.",
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.",
361
+ "cli.cmd.db.source.create.desc": "Create a data source from JSON configuration on the selected server, saving the server's data source configuration.\n\nFirst use succapp db connector list/show to choose a connector and inspect its fields, then obtain a template with succapp db source template. Extract only config from the result, fill in the actual connection parameters, and submit it with --config. The entire result envelope is not valid creation input.\n\n--config is required and accepts a JSON file or - for stdin. --test checks connectivity before saving; it does not prove that later model queries or data permissions are valid.\n\nAfter saving, verify with succapp db source show on the same server and configuration name. An interrupted response does not prove that creation did not occur: inspect the current state before retrying. Returned configuration may omit password.\n\nRead the guide below before preparing a connection. In a SuccApp workspace, you can also read .agents/skills/succapp-docs/SKILL.md to find an applicable offline manual. Check that the documentation matches your server version.\n\nDocumentation: Connect data\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/data/connect-data.md\nWeb: https://docs.succapp.com/ai-building/data/connect-data",
358
362
  "cli.cmd.db.source.create.created": "Created data source: {0}",
359
363
  "cli.cmd.db.source.update.summary": "Update a datasource.",
360
- "cli.cmd.db.source.update.desc": "Update a datasource from a JSON configuration.",
364
+ "cli.cmd.db.source.update.desc": "Update a datasource from a JSON configuration.\n\nInspect the current configuration with show, then submit a configuration object through the required --config (file or - for standard input). Returned values may be sanitized, so check how secret fields must be supplied. --test tests the connection before saving. Updates affect the server directly; verify with show/probe, and inspect current state before retrying an interrupted request.\n\nFor the full workflow, consult the guide below and confirm it applies to your CLI and server version.\n\nSubmit the complete intended configuration, not a field patch. The accompanying server preserves a missing or empty password on update, but other omitted fields are not guaranteed to survive. Do not write a masked placeholder back as a new password.\n\nGuide: Connect data sources\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/data/connect-data.md\nWeb: https://docs.succapp.com/ai-building/data/connect-data",
361
365
  "cli.cmd.db.source.update.updated": "Updated data source: {0}",
362
366
  "cli.cmd.db.source.remove.summary": "Delete a datasource.",
363
- "cli.cmd.db.source.remove.desc": "Delete a datasource after explicit confirmation.",
367
+ "cli.cmd.db.source.remove.desc": "Delete a datasource after explicit confirmation.\n\n--force is required to confirm removal of the server data source configuration. Check dependent models and tasks first. Removing the configuration does not delete physical database tables, but access depending on it may fail.",
364
368
  "cli.cmd.db.source.remove.force": "Confirm datasource deletion.",
365
369
  "cli.cmd.db.source.remove.dbSourceRemove": "Deleting a data source requires --force.",
366
370
  "cli.cmd.db.source.remove.deleted": "Deleted data source: {0}",
367
371
  "cli.cmd.db.schema.title": "Database schema",
368
- "cli.cmd.db.schema.summary": "inspect database schemas",
369
- "cli.cmd.db.schema.desc": "Inspect database schemas.",
372
+ "cli.cmd.db.schema.summary": "Inspect schemas in a data source.",
373
+ "cli.cmd.db.schema.desc": "Inspect database schemas.\n\nUse list to inspect schemas for a data source obtained from db source list. Continue with succapp db table --help for physical tables and columns.\n\nFor the full workflow, consult the guide below and confirm it applies to your CLI and server version.\n\nGuide: Explore database data\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/data/explore-database-data.md\nWeb: https://docs.succapp.com/ai-building/data/explore-database-data",
370
374
  "cli.cmd.db.schema.list.summary": "List schemas for a data source.",
371
- "cli.cmd.db.schema.list.desc": "List schemas for a data source.",
375
+ "cli.cmd.db.schema.list.desc": "List schemas for a data source.\n\nUse a data source identifier from db source list; --catalog narrows the catalog. Use returned schema names for subsequent table inspection. Visibility depends on the connection and its permissions.",
372
376
  "cli.cmd.db.schema.list.catalog": "Catalog",
373
377
  "cli.cmd.db.schema.list.empty": "No schemas found for data source '{0}'.",
374
378
  "cli.cmd.db.table.title": "Database table",
375
- "cli.cmd.db.table.summary": "inspect database tables",
376
- "cli.cmd.db.table.desc": "Inspect database tables.",
379
+ "cli.cmd.db.table.summary": "Inspect database tables and their structure.",
380
+ "cli.cmd.db.table.desc": "Inspect database tables.\n\nUse list to find physical tables and describe to inspect columns and table metadata. Identify the data source and schema first. These physical tables differ from the .tbl semantic models used by model commands.\n\nFor the full workflow, consult the guide below and confirm it applies to your CLI and server version.\n\nGuide: Explore database data\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/data/explore-database-data.md\nWeb: https://docs.succapp.com/ai-building/data/explore-database-data",
377
381
  "cli.cmd.db.table.list.summary": "List tables for a data source.",
378
- "cli.cmd.db.table.list.desc": "List tables for a data source.",
382
+ "cli.cmd.db.table.list.desc": "List tables for a data source.\n\nIdentify the scope with db source list and db schema list, then filter table names with --table-name-contains. Before querying data, use describe to inspect column names and types.",
379
383
  "cli.cmd.db.table.list.tableNameContains": "Filter tables by name. Supports * and ? wildcards.",
380
384
  "cli.cmd.db.table.list.empty": "No tables are available.",
381
385
  "cli.cmd.db.table.list.noMatches": "No tables matched the current filters.",
382
386
  "cli.cmd.db.table.describe.summary": "Describe a database table.",
383
- "cli.cmd.db.table.describe.desc": "Describe columns and metadata for a database table.",
387
+ "cli.cmd.db.table.describe.desc": "Describe columns and metadata for a database table.\n\nUse a table name returned by table list and specify --schema when needed. This reads structure rather than table rows; use db query to preview data.\n\nA table can be written as schema.table. With explicit --schema, <table> is used as the complete table name; supply an unqualified name to avoid double qualification.",
384
388
  "cli.cmd.db.table.describe.schema": "Schema name.",
385
389
  "cli.cmd.db.*.file": "Read SQL from a file.",
386
390
  "cli.cmd.db.*.schema": "SQL execution schema.",
387
391
  "cli.cmd.db.*.timeout": "SQL timeout in seconds. Defaults to 30.",
388
392
  "cli.cmd.db.query.summary": "Execute a read-only SQL query.",
389
- "cli.cmd.db.query.desc": "Execute SQL through Dev Tool v2. SuccApp CLI only allows read-only queries.",
393
+ "cli.cmd.db.query.desc": "Execute a read-only SQL query on the specified data source. Use succapp db source list to obtain a visible data source identifier, and succapp db table list/describe to inspect tables.\n\nProvide at most one of the <sql> positional argument and --file. When both are omitted, read SQL from stdin. --timeout is in seconds and defaults to 30.\n\nQueries are for preview: a limited result must not be assumed to contain all data. For a full export, see succapp db export --help.\n\nThis command is not used for data writes. Before writing data, read succapp db exec --help and confirm its effects.\n\nThe accompanying server defaults to a 100-row preview with a 1000-row cap. Actual behavior depends on the target server and returned truncation information. Use the corresponding export command for full data.\n\n--max-rows=0 uses the server default; it does not mean unlimited rows.",
390
394
  "cli.cmd.db.query.maxRows": "Maximum returned row count.",
391
395
  "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.",
392
396
  "cli.cmd.db.query.sqlOrFileConflict": "Pass SQL either as <sql> or --file, not both.",
393
397
  "cli.cmd.db.exec.summary": "Execute any SQL.",
394
- "cli.cmd.db.exec.desc": "Execute SQL through Dev Tool v2. Write or schema changes require explicit confirmation.",
398
+ "cli.cmd.db.exec.desc": "Execute SQL and return result sets or update counts; this may change database data or structure.\n\nChoose at most one of positional <sql> and --file; if neither is supplied, read standard input. The default timeout is 30 seconds. SQL classified as dangerous by the server requires --force. Absence of that requirement does not mean a statement is read-only. Confirm write effects first and inspect database state before retrying after timeout or disconnection.\n\nThe accompanying server defaults to a 100-row preview with a 1000-row cap. Actual behavior depends on the target server and returned truncation information. Use the corresponding export command for full data.\n\n--max-rows=0 uses the server default; it does not mean unlimited rows.\n\nFor the full workflow, consult the guide below and confirm it applies to your CLI and server version.\n\nGuide: Modify database data\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/data/modify-database-data.md\nWeb: https://docs.succapp.com/ai-building/data/modify-database-data",
395
399
  "cli.cmd.db.exec.maxRows": "Limit returned rows for result sets.",
396
400
  "cli.cmd.db.exec.force": "Confirm SQL marked dangerous by safety analysis.",
397
401
  "cli.cmd.db.exec.dangerousSql": "Dangerous SQL was blocked. Review the impact before rerunning with --force.{0}",
@@ -399,53 +403,61 @@
399
403
  "cli.cmd.db.exec.fullTableData": "full-table data mutation",
400
404
  "cli.cmd.db.exec.schemaMutation": "schema mutation",
401
405
  "cli.cmd.db.import.summary": "Import CSV data into a table.",
402
- "cli.cmd.db.import.desc": "Import CSV data into a database table.",
406
+ "cli.cmd.db.import.desc": "Import CSV data into a database table.\n\nUse --input for a UTF-8 CSV file or - for standard input, with column names in the first row. append is the default. Both truncate and replace currently clear the target table before importing; they are not primary-key upserts.\n\n--dry-run only parses and counts CSV rows; it does not validate database constraints or perform writes. importedRows counts CSV data rows rather than independently verified inserted rows. Import changes the database; check database state after interruption before appending again.\n\nA table can be written as schema.table. With explicit --schema, <table> is used as the complete table name; supply an unqualified name to avoid double qualification.\n\nFor the full workflow, consult the guide below and confirm it applies to your CLI and server version.\n\nGuide: Import and export data\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/data/import-export-data.md\nWeb: https://docs.succapp.com/ai-building/data/import-export-data",
403
407
  "cli.cmd.db.import.input": "Read table data CSV from a file, or use - for stdin.",
404
408
  "cli.cmd.db.import.mode": "Import mode. Defaults to append; truncate and replace must be passed explicitly.",
405
- "cli.cmd.db.import.dryRun": "Validate import without writing rows.",
409
+ "cli.cmd.db.import.dryRun": "Parse and count CSV rows without writing or validating actual database constraints.",
406
410
  "cli.cmd.db.import.schema": "Table schema.",
407
411
  "cli.cmd.db.export.summary": "Export table data or a query result as CSV.",
408
- "cli.cmd.db.export.desc": "Export table data or a query result as CSV.",
412
+ "cli.cmd.db.export.desc": "Export table data or a query result as CSV.\n\nChoose exactly one of <table>, --query and --query-file, and specify a local CSV file with --output. Overwriting an existing file requires --force. Query conditions and server permissions still apply; check the output file and reported size after completion.\n\nA table can be written as schema.table. With explicit --schema, <table> is used as the complete table name; supply an unqualified name to avoid double qualification.\n\nFor the full workflow, consult the guide below and confirm it applies to your CLI and server version.\n\nGuide: Import and export data\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/data/import-export-data.md\nWeb: https://docs.succapp.com/ai-building/data/import-export-data",
409
413
  "cli.cmd.db.export.query": "Export a query result instead of table data.",
410
414
  "cli.cmd.db.export.queryFile": "Read export query SQL from a file.",
411
415
  "cli.cmd.db.export.schema": "Table schema or SQL execution schema.",
412
416
  "cli.cmd.db.export.output": "Write CSV output to a local file.",
413
417
  "cli.cmd.db.export.force": "Overwrite the output file if it already exists.",
414
418
  "cli.cmd.db.export.exportedData": "Exported data to {0}",
419
+ "cli.cmd.db.*.datasource": "A data source identifier returned by db source list, not a connector ID.",
420
+ "cli.cmd.db.*.sql": "SQL text; mutually exclusive with --file. If both are omitted, read standard input.",
421
+ "cli.cmd.db.*.table": "A table name returned by db table list; schema.table is supported when --schema is omitted.",
422
+ "cli.cmd.db.source.*.datasource": "A data source identifier returned by db source list, not a connector ID.",
423
+ "cli.cmd.db.schema.*.datasource": "A data source identifier returned by db source list, not a connector ID.",
424
+ "cli.cmd.db.table.*.datasource": "A data source identifier returned by db source list, not a connector ID.",
425
+ "cli.cmd.db.table.*.schema": "A schema returned by db schema list; omitted scope is resolved by the data source.",
426
+ "cli.cmd.db.table.*.table": "A table name returned by db table list; schema.table is supported when --schema is omitted.",
415
427
  "cli.cmd.server.title": "Server",
416
428
  "cli.cmd.server.summary": "inspect and operate the target SuccApp server",
417
- "cli.cmd.server.desc": "Inspect and operate the target SuccApp server.",
429
+ "cli.cmd.server.desc": "Inspect and operate the target SuccApp server.\n\nThese commands access the target server directly without cloning a project. Select the target with --server or the active workspace server, and authenticate with auth login. File, settings, script and administrative writes affect the server directly.\n\nConsult the guide below for related instructions and confirm it applies to your CLI and server version.\n\nGuide: System diagnostics\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/troubleshoot/system-diagnostics.md\nWeb: https://docs.succapp.com/ai-building/troubleshoot/system-diagnostics",
418
430
  "cli.cmd.server.serverNotConfigured": "Server is not configured for this workspace: {0}",
419
431
  "cli.cmd.server.serverReachable": "Server reachable: {0}",
420
432
  "cli.cmd.server.ping.summary": "Check server reachability.",
421
- "cli.cmd.server.ping.desc": "Check whether the SuccApp Dev Tool v2 ping endpoint is reachable.",
433
+ "cli.cmd.server.ping.desc": "Check whether the SuccApp Dev Tool v2 ping endpoint is reachable.\n\nA server URL may be supplied directly. Success means the ping endpoint is reachable, not that authentication, business permissions or database access are valid. Continue with server info for diagnostics.",
422
434
  "cli.cmd.server.info.summary": "Show server information.",
423
- "cli.cmd.server.info.desc": "Show server information and metadata versions.",
435
+ "cli.cmd.server.info.desc": "Show server information and metadata versions.\n\nShows main information by default. Select sections with --scope or expand with --all. This confirms the environment and version without upgrading it. Use --json for structured fields in scripts.",
424
436
  "cli.cmd.server.info.scope": "Show only the selected scope. Repeat or use comma-separated values: product, sys, metadata, inspect, jvm, env, all.",
425
437
  "cli.cmd.server.info.all": "Show all information scopes.",
426
438
  "cli.cmd.server.info.raw": "Output the raw server detail response.",
427
439
  "cli.cmd.server.cache.title": "Server cache",
428
440
  "cli.cmd.server.cache.summary": "manage server cache",
429
- "cli.cmd.server.cache.desc": "Manage server cache.",
441
+ "cli.cmd.server.cache.desc": "Manage server cache.\n\nInspect names and usage with list before cleaning individual entries with clean. Cleaning affects running server caches; --all covers all system caches.",
430
442
  "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).",
443
+ "cli.cmd.server.cache.list.desc": "List server-side system cache entries (count, disk/memory usage, hit rate).\n\nValues reflect cache state at query time; hit rates and other statistics change during operation. Use returned names when cleaning rather than guessing identifiers.",
432
444
  "cli.cmd.server.cache.list.empty": "No server cache entries.",
433
445
  "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.",
446
+ "cli.cmd.server.cache.clean.desc": "Clean a server-side system cache entry by <name>, or all caches with --all.\n\nChoose exactly one of <name> and --all; no additional --force is required. Cleaning invalidates caches and subsequent access may reload data. Inspect list before and after the operation.",
435
447
  "cli.cmd.server.cache.clean.all": "Clean all server cache entries.",
436
448
  "cli.cmd.server.cache.clean.cleaned": "Server cache cleaned: {1} ({0})",
437
449
  "cli.cmd.server.cluster.title": "Server cluster",
438
450
  "cli.cmd.server.cluster.summary": "inspect server cluster nodes",
439
- "cli.cmd.server.cluster.desc": "Inspect cluster membership, health, network state, and runtime diagnostics.",
451
+ "cli.cmd.server.cluster.desc": "Inspect cluster membership, health, network state, and runtime diagnostics.\n\nObtain node IDs with list, then inspect a node with show. Membership and diagnostic samples can change as nodes join or leave.",
440
452
  "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.",
453
+ "cli.cmd.server.cluster.list.desc": "List the same cluster node data used by the server system-settings page.\n\nUse returned node IDs with cluster show. Check availability and health before further diagnostics; an unreachable listed node is not a healthy node.\n\n--watch refreshes continuously until Ctrl+C; --interval requires --watch. --watch does not support --json; scripts should repeat one-shot JSON queries.",
442
454
  "cli.cmd.server.cluster.list.health": "Only include nodes with this health severity: ok, warning, error, or unknown.",
443
455
  "cli.cmd.server.cluster.list.watch": "Continuously refresh the cluster status until interrupted.",
444
456
  "cli.cmd.server.cluster.list.interval": "Set the watch refresh interval in milliseconds (3000 to 60000). Requires --watch.",
445
457
  "cli.cmd.server.cluster.list.empty": "No cluster nodes match the current filter.",
446
458
  "cli.cmd.server.cluster.list.updatedAt": "Updated: {0}",
447
459
  "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.",
460
+ "cli.cmd.server.cluster.show.desc": "Show an exact cluster node by ID using the same scoped information layout as server info.\n\nUse a node ID returned by cluster list. --scope or --all expands the information requested. A node can go offline between requests; refresh the node list after a failure.",
449
461
  "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
462
  "cli.cmd.server.cluster.show.all": "Show all human-output detail scopes.",
451
463
  "cli.cmd.server.cluster.out.name": "Name",
@@ -476,23 +488,23 @@
476
488
  "cli.cmd.server.cluster.out.lastSentAt": "Last sent",
477
489
  "cli.cmd.server.thread.title": "Server threads",
478
490
  "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.",
491
+ "cli.cmd.server.thread.desc": "Inspect JVM thread snapshots and request cancellation of registered product tasks.\n\nUse list for a quick filter, show for one thread, dump for full stacks, and top for sampled analysis. cancel only requests cooperative cancellation of registered product tasks; it cannot terminate arbitrary JVM threads.\n\nConsult the guide below for related instructions and confirm it applies to your CLI and server version.\n\nGuide: System diagnostics\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/troubleshoot/system-diagnostics.md\nWeb: https://docs.succapp.com/ai-building/troubleshoot/system-diagnostics",
480
492
  "cli.cmd.server.thread.*.state": "Only include this JVM state: new, runnable, blocked, waiting, timed-waiting, or terminated.",
481
493
  "cli.cmd.server.thread.*.working": "Only include threads that are currently doing work.",
482
494
  "cli.cmd.server.thread.*.sql": "Only include threads that are currently executing SQL.",
483
495
  "cli.cmd.server.thread.list.summary": "List JVM threads.",
484
- "cli.cmd.server.thread.list.desc": "List JVM thread summaries without full stack traces.",
496
+ "cli.cmd.server.thread.list.desc": "List JVM thread summaries without full stack traces.\n\nFilter by state, registered work or SQL execution, and select a node with --cluster. Thread IDs are meaningful only for the corresponding node and time. Use show or dump for full context.",
485
497
  "cli.cmd.server.thread.list.cluster": "Run the query on one cluster node.",
486
498
  "cli.cmd.server.thread.list.empty": "No JVM threads match the current filter.",
487
499
  "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.",
500
+ "cli.cmd.server.thread.dump.desc": "Capture matching JVM threads with untruncated stack traces.\n\nNarrow the scope with --state, --working or --sql, and select a node with --cluster. Output is a single snapshot. Use top or compare multiple snapshots to investigate sustained activity.",
489
501
  "cli.cmd.server.thread.dump.cluster": "Capture the thread dump from one cluster node.",
490
502
  "cli.cmd.server.thread.dump.deadlocks.none": "Deadlocks: none",
491
503
  "cli.cmd.server.thread.dump.deadlocks.found": "Deadlocks: {0}",
492
504
  "cli.cmd.server.thread.dump.waitingLock": "waiting on {0}",
493
505
  "cli.cmd.server.thread.dump.waitingLockOwned": "waiting on {0}, owned by thread #{1}",
494
506
  "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.",
507
+ "cli.cmd.server.thread.top.desc": "Poll raw CPU, thread, memory, and GC samples, then analyze them locally without retaining a server-side report.\n\n--duration controls total time, --interval the sampling interval, and --refresh progress refresh. Analysis covers only the observation window. Check failed nodes and sample completeness; missing samples are not zero load.",
496
508
  "cli.cmd.server.thread.top.cluster": "Sample one cluster node, or use all to poll every current member concurrently.",
497
509
  "cli.cmd.server.thread.top.duration": "Set the client-side analysis window from 1s to 20s; use an ms or s suffix.",
498
510
  "cli.cmd.server.thread.top.interval": "Set each server sampling window from 200ms to 2s; the analysis window must contain at least two samples.",
@@ -536,12 +548,12 @@
536
548
  "cli.cmd.server.thread.top.out.gcCount": "Collections",
537
549
  "cli.cmd.server.thread.top.out.gcTime": "GC time",
538
550
  "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.",
551
+ "cli.cmd.server.thread.show.desc": "Show the current thread snapshot, authorized SQL details, and full stack trace.\n\nObtain the thread ID from list and keep the same --cluster target. The thread may already have ended or changed tasks. For cancellation, read cancelSerial from a fresh snapshot and check cancel requirements.",
540
552
  "cli.cmd.server.thread.show.cluster": "Read the thread from one cluster node.",
541
553
  "cli.cmd.server.thread.show.stack": "Stack:",
542
554
  "cli.cmd.server.thread.show.stackEmpty": " (stack is no longer available)",
543
555
  "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.",
556
+ "cli.cmd.server.thread.cancel.desc": "Request cooperative cancellation of the registered product task that still matches the cancel serial.\n\nProvide a fresh --cancel-serial and --force, targeting the same node used by show. Success means cancellation was requested, not that the task ended immediately. Recheck state afterwards; do not blindly retry against a new task if the serial changes.",
545
557
  "cli.cmd.server.thread.cancel.cancelSerial": "Require the current cancel serial returned by thread list or show.",
546
558
  "cli.cmd.server.thread.cancel.cluster": "Cancel the task on one cluster node.",
547
559
  "cli.cmd.server.thread.cancel.force": "Confirm the cooperative cancellation request.",
@@ -562,13 +574,13 @@
562
574
  "cli.cmd.server.thread.out.logAvailable": "Log available",
563
575
  "cli.cmd.server.techLog.title": "Server technical log",
564
576
  "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.",
577
+ "cli.cmd.server.techLog.desc": "Inspect technical logs and manage runtime logger levels. These commands require access to the system-settings console.\n\nBefore using examples, set NODE to a node ID from server cluster list and LOG_FILE to a file name from tech-log list for that node. Keep variables double-quoted so spaces and shell metacharacters remain part of the argument.\n\nUse list for log files, tail to read or follow the current log, download to save a file, and level to manage logging levels. Select the intended node in a cluster and limit reads to the diagnostic context needed.\n\nConsult the guide below for related instructions and confirm it applies to your CLI and server version.\n\nGuide: System diagnostics\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/troubleshoot/system-diagnostics.md\nWeb: https://docs.succapp.com/ai-building/troubleshoot/system-diagnostics",
566
578
  "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
579
  "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.",
580
+ "cli.cmd.server.techLog.list.desc": "List the same .log files shown by the server system-settings console. Requires console view permission.\n\nBefore using examples, set NODE to a node ID from server cluster list and LOG_FILE to a file name from tech-log list for that node. Keep variables double-quoted so spaces and shell metacharacters remain part of the argument.\n\nUse returned filenames with download and keep the same node. This lists server logs, not local CLI logs.",
569
581
  "cli.cmd.server.techLog.list.empty": "No technical log files are available on this node.",
570
582
  "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.",
583
+ "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.\n\nSet POSITION and CURSOR_FILE from position and logFile in the same tail response and keep the same target node; these are not arbitrary line numbers or file names.\n\nBefore using examples, set NODE to a node ID from server cluster list and LOG_FILE to a file name from tech-log list for that node. Keep variables double-quoted so spaces and shell metacharacters remain part of the argument.\n\nReads once by default; --follow polls until stopped with Ctrl+C. To resume, pass --from and --log-file from the previous result together. Do not reuse a cursor for another node or a rotated file.\n\n--from and --log-file must be paired and cannot be combined with explicit --lines. --interval requires --follow. --follow does not support --json; scripts can resume using one-shot JSON results.",
572
584
  "cli.cmd.server.techLog.tail.lines": "Keep this many lines from the initial log fragment (1 to 5000, default 200).",
573
585
  "cli.cmd.server.techLog.tail.from": "Continue from a previous one-shot JSON result; requires --log-file.",
574
586
  "cli.cmd.server.techLog.tail.logFile": "Use the log file from a previous one-shot JSON result; requires --from.",
@@ -576,7 +588,7 @@
576
588
  "cli.cmd.server.techLog.tail.interval": "Set the follow polling interval in milliseconds (500 to 60000). Requires --follow.",
577
589
  "cli.cmd.server.techLog.tail.retry": "Temporary network error; retry {0} in {1} ms.",
578
590
  "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.",
591
+ "cli.cmd.server.techLog.download.desc": "Download a file returned by 'succapp server tech-log list'. Requires console log export permission.\n\nBefore using examples, set NODE to a node ID from server cluster list and LOG_FILE to a file name from tech-log list for that node. Keep variables double-quoted so spaces and shell metacharacters remain part of the argument.\n\nUse a filename from tech-log list on the same node. --output specifies the local file; overwriting requires --force. Downloading does not clear or rotate server logs.",
580
592
  "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
593
  "cli.cmd.server.techLog.download.file": "Use the exact file name returned by 'succapp server tech-log list'.",
582
594
  "cli.cmd.server.techLog.download.output": "Write the log to this local file.",
@@ -584,23 +596,23 @@
584
596
  "cli.cmd.server.techLog.download.downloaded": "Downloaded technical log {0} to {1}",
585
597
  "cli.cmd.server.techLog.level.title": "Technical log level",
586
598
  "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.",
599
+ "cli.cmd.server.techLog.level.desc": "Inspect, persist, hot-apply, and reset logger levels. These commands require system-settings console view permission.\n\nUse list to compare saved and effective levels, set to change a logger, reset to restore inheritance, and apply-to-cluster to distribute the full configuration. Restore appropriate levels after temporary diagnostics.",
588
600
  "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
601
  "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.",
602
+ "cli.cmd.server.techLog.level.list.desc": "List persisted and effective logger levels on the target node. Requires console view permission.\n\nBefore using examples, set NODE to a node ID from server cluster list and LOG_FILE to a file name from tech-log list for that node. Keep variables double-quoted so spaces and shell metacharacters remain part of the argument.\n\nCompare explicit configuration with effective levels to understand inheritance. Confirm the target node in a cluster; one node does not establish consistency across the cluster.",
591
603
  "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
604
  "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.",
605
+ "cli.cmd.server.techLog.level.set.desc": "Persist and hot-apply one logger level on the target node. Requires console view permission.\n\nBefore using examples, set NODE to a node ID from server cluster list and LOG_FILE to a file name from tech-log list for that node. Keep variables double-quoted so spaces and shell metacharacters remain part of the argument.\n\nTRACE and DEBUG require --force and may increase log volume and runtime overhead. Verify with level list afterwards. Use reset to restore inheritance; cluster distribution is a separate apply-to-cluster operation.",
594
606
  "cli.cmd.server.techLog.level.set.force": "Confirm TRACE or DEBUG after reviewing the operational impact.",
595
607
  "cli.cmd.server.techLog.level.set.logger": "Use an exact named logger; root and wildcards are not allowed.",
596
608
  "cli.cmd.server.techLog.level.set.level": "Use TRACE, DEBUG, INFO, or ERROR. Values are case-sensitive.",
597
609
  "cli.cmd.server.techLog.level.set.updated": "Updated logger {0} to {1}",
598
610
  "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.",
611
+ "cli.cmd.server.techLog.level.reset.desc": "Remove a logger's explicit level so it inherits from its parent. Requires console view permission.\n\nBefore using examples, set NODE to a node ID from server cluster list and LOG_FILE to a file name from tech-log list for that node. Keep variables double-quoted so spaces and shell metacharacters remain part of the argument.\n\nRemove explicit configuration by logger name. The effective level depends on its parent, so reset does not mean disabling logs. Inspect level list afterwards.",
600
612
  "cli.cmd.server.techLog.level.reset.logger": "Use an exact named logger; root and wildcards are not allowed.",
601
613
  "cli.cmd.server.techLog.level.reset.reset": "Reset logger level: {0}",
602
614
  "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.",
615
+ "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.\n\n--force is required. This distributes the current HTTP node's complete Logback configuration, not just the last modified logger. Inspect the source configuration first, then check effective levels on each node after submission.",
604
616
  "cli.cmd.server.techLog.level.apply.force": "Confirm replacing the complete Logback configuration on reachable cluster peers.",
605
617
  "cli.cmd.server.techLog.level.apply.applied": "The Logback configuration was submitted to the cluster.",
606
618
  "cli.cmd.server.techLog.out.file": "File",
@@ -612,17 +624,17 @@
612
624
  "cli.cmd.server.techLog.out.effectiveLevel": "Effective",
613
625
  "cli.cmd.server.proj.title": "Server project",
614
626
  "cli.cmd.server.proj.summary": "inspect server projects",
615
- "cli.cmd.server.proj.desc": "Inspect server projects.",
627
+ "cli.cmd.server.proj.desc": "Inspect server projects.\n\nUse list to discover visible projects and create to create a server project. Download one locally with workspace project clone.",
616
628
  "cli.cmd.server.proj.list.summary": "List server projects.",
617
- "cli.cmd.server.proj.list.desc": "List projects visible on a server.",
629
+ "cli.cmd.server.proj.list.desc": "List projects visible on a server.\n\nUse returned project names to locate files or clone a project. Visibility depends on the current user; an absent entry does not necessarily mean the project does not exist.",
618
630
  "cli.cmd.server.proj.list.empty": "No visible projects found.",
619
631
  "cli.cmd.server.proj.create.summary": "Create a server project.",
620
- "cli.cmd.server.proj.create.desc": "Create a metadata project on a server.",
632
+ "cli.cmd.server.proj.create.desc": "Create a metadata project on a server.\n\nProvide a new project name and optionally --desc. Creation affects the server directly. Verify with project list, then clone for local development. After an interrupted response, check whether the project was already created.",
621
633
  "cli.cmd.server.proj.create.descOption": "Set the project description.",
622
634
  "cli.cmd.server.proj.create.created": "Created server project: {0}",
623
635
  "cli.cmd.server.file.title": "Server file",
624
636
  "cli.cmd.server.file.summary": "inspect and operate server metadata files",
625
- "cli.cmd.server.file.desc": "Inspect and operate server metadata files.",
637
+ "cli.cmd.server.file.desc": "Inspect and operate server metadata files.\n\nLocate paths with list/search/locate, then inspect them with info/show/history. create/update/remove change remote metadata directly without updating a local workspace. Obtain the revision before updates or deletion and verify afterwards.\n\nConsult the guide below for related instructions and confirm it applies to your CLI and server version.\n\nGuide: Find metadata files\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/project/find-metafile.md\nWeb: https://docs.succapp.com/ai-building/project/find-metafile",
626
638
  "cli.cmd.server.file.*.file": "Read content from a local file.",
627
639
  "cli.cmd.server.file.*.stdin": "Read content from stdin.",
628
640
  "cli.cmd.server.file.badValue": "Invalid value for {0}: {1}",
@@ -636,10 +648,10 @@
636
648
  "cli.cmd.server.file.success": "{0} succeeded: {1}",
637
649
  "cli.cmd.server.file.unknownServerFile": "Unknown server file error.",
638
650
  "cli.cmd.server.file.list.summary": "List server files.",
639
- "cli.cmd.server.file.list.desc": "List direct children of a server metadata directory.",
651
+ "cli.cmd.server.file.list.desc": "List direct children of a server metadata directory.\n\nUse a server metadata directory path; results contain direct children. Use file search for recursive discovery or name filtering. Quote paths containing spaces.",
640
652
  "cli.cmd.server.file.list.empty": "Directory is empty: {0}",
641
653
  "cli.cmd.server.file.search.summary": "Search server files.",
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.",
654
+ "cli.cmd.server.file.search.desc": "Search readable server metadata files by full path or by combinable project, parent-directory, and file-name filters.\n\nUse returned full paths with info/show/download. Combining filters narrows the scope, and --limit bounds results. Refine filters when results are empty or reach the limit rather than concluding a resource does not exist.",
643
655
  "cli.cmd.server.file.search.url": "Optional server URL. A lone non-URL argument is treated as <query>.",
644
656
  "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
657
  "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.",
@@ -661,9 +673,9 @@
661
673
  "cli.cmd.server.file.search.warningDetails": "Content was not checked; use --json for full details.",
662
674
  "cli.cmd.server.recyclebin.title": "Server recycle bin",
663
675
  "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.",
676
+ "cli.cmd.server.recyclebin.desc": "Search and inspect deleted files that are visible in server project recycle bins.\n\nUse search within a project to inspect deleted resources, paths and deletion times. This group queries the recycle bin; it does not restore or permanently purge resources.",
665
677
  "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.",
678
+ "cli.cmd.server.recyclebin.search.desc": "Search visible files in a project recycle bin by keyword, path, type, or delete time.\n\nSpecify a project, combine filters as needed, and use --limit to bound results. These are recycle-bin records; their paths do not prove that live files exist. Use the product restoration workflow when recovery is needed.",
667
679
  "cli.cmd.server.recyclebin.search.url": "Optional server URL. A lone non-URL first argument is treated as <project>.",
668
680
  "cli.cmd.server.recyclebin.search.project": "Project name whose recycle bin should be searched.",
669
681
  "cli.cmd.server.recyclebin.search.query": "Search keyword, full metadata path, or path glob.",
@@ -674,86 +686,129 @@
674
686
  "cli.cmd.server.recyclebin.search.empty": "No matching recycle bin files in project {0}.",
675
687
  "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.",
676
688
  "cli.cmd.server.file.locate.summary": "Locate a server file by metadata ID.",
677
- "cli.cmd.server.file.locate.desc": "Resolve a metadata ID to the current server file path.",
689
+ "cli.cmd.server.file.locate.desc": "Resolve a metadata ID to the current server file path.\n\n<id> is a server metadata ID, not a filename or local path. --url returns a view or edit page address. Use the resolved path with info/show afterwards.",
678
690
  "cli.cmd.server.file.locate.url": "Only print the server view or edit URL.",
679
691
  "cli.cmd.server.file.locate.viewUrl": "View URL: {0}",
680
692
  "cli.cmd.server.file.locate.editUrl": "Edit URL: {0}",
681
693
  "cli.cmd.server.file.info.summary": "Show server file information.",
682
- "cli.cmd.server.file.info.desc": "Show server-side metadata for a file or directory.",
694
+ "cli.cmd.server.file.info.desc": "Show server-side metadata for a file or directory.\n\nUse a server metadata path. The returned revision can be passed as --expected-revision to update/remove. Prepare changes from current content; reread and compare after a revision conflict.",
683
695
  "cli.cmd.server.file.show.summary": "Show server file content.",
684
- "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.",
696
+ "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.\n\nReads current content by default; --revision reads a historical version. --upgrade-content requests upgraded response content without saving it back to the server. Use download to save a local file.",
685
697
  "cli.cmd.server.file.show.revision": "Read a server file revision.",
686
698
  "cli.cmd.server.file.show.upgradeContent": "Return upgraded metadata JSON content when supported.",
687
699
  "cli.cmd.server.file.download.summary": "Download server file content.",
688
- "cli.cmd.server.file.download.desc": "Download server file content to a local file.",
700
+ "cli.cmd.server.file.download.desc": "Download server file content to a local file.\n\n--output is required; overwriting an existing file needs --force. --revision selects a version and --upgrade-content affects only downloaded content. Downloading does not create a workspace synchronization baseline.",
689
701
  "cli.cmd.server.file.download.revision": "Download a server file revision.",
690
702
  "cli.cmd.server.file.download.upgradeContent": "Download upgraded metadata JSON content when supported.",
691
703
  "cli.cmd.server.file.download.output": "Write content to a local file.",
692
704
  "cli.cmd.server.file.download.force": "Overwrite the local output file if it exists.",
693
705
  "cli.cmd.server.file.download.downloaded": "Downloaded {0} to {1}",
694
706
  "cli.cmd.server.file.open.summary": "Open the server file 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.",
707
+ "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.\n\nOpens a view page by default; --edit selects editing. Use --no-open in scripts or headless environments to return only the URL. This command does not upload content.",
696
708
  "cli.cmd.server.file.open.edit": "Open the server edit page instead of the view page.",
697
709
  "cli.cmd.server.file.open.noOpen": "Return the page URL without launching the system browser.",
698
710
  "cli.cmd.server.file.open.path": "Absolute server metadata path. The URL is constructed without checking whether the file exists.",
699
711
  "cli.cmd.server.file.open.openedEdit": "Opened server edit page: {0}",
700
712
  "cli.cmd.server.file.open.openedView": "Opened server view page: {0}",
701
713
  "cli.cmd.server.file.history.summary": "Show server file history.",
702
- "cli.cmd.server.file.history.desc": "Show server-side file history for a server file path.",
714
+ "cli.cmd.server.file.history.desc": "Show server-side file history for a server file path.\n\nUse a server path; --limit bounds the number of entries. Results are versions saved by the server, and their revisions can be used with show/download. This is not local Git history.",
703
715
  "cli.cmd.server.file.history.limit": "Limit the number of history records.",
704
716
  "cli.cmd.server.file.create.summary": "Create a server file.",
705
- "cli.cmd.server.file.create.desc": "Create a server file and fail if it already exists.",
717
+ "cli.cmd.server.file.create.desc": "Create a server file and fail if it already exists.\n\nChoose exactly one of --file and --stdin. Content is written directly to the server path. create cannot overwrite an existing target; use update with revision protection. After interruption, check info/show before retrying.",
706
718
  "cli.cmd.server.file.update.summary": "Update a server file.",
707
- "cli.cmd.server.file.update.desc": "Update an existing server file with revision protection by default.",
719
+ "cli.cmd.server.file.update.desc": "Update an existing server file with revision protection by default.\n\nChoose exactly one of --file and --stdin, and exactly one of --expected-revision and --force. Prefer the revision returned by info; reread and compare after conflicts. --force bypasses revision protection. Verify with show after writing.",
708
720
  "cli.cmd.server.file.update.expectedRevision": "Only update when the server revision still matches.",
709
721
  "cli.cmd.server.file.update.force": "Overwrite the current server content without revision protection.",
710
722
  "cli.cmd.server.file.remove.summary": "Delete a server file.",
711
- "cli.cmd.server.file.remove.desc": "Delete an existing server file with revision protection by default.",
723
+ "cli.cmd.server.file.remove.desc": "Delete an existing server file with revision protection by default.\n\nChoose exactly one of --expected-revision and --force. Confirm the target and revision with info first; --force bypasses revision protection. This deletes the server resource rather than a local copy, so check dependencies and impact first.",
712
724
  "cli.cmd.server.file.remove.expectedRevision": "Only delete when the server revision still matches.",
713
725
  "cli.cmd.server.file.remove.force": "Delete the current server file without revision protection.",
714
726
  "cli.cmd.server.ext.title": "Server extension",
715
727
  "cli.cmd.server.ext.summary": "inspect server extension assets",
716
- "cli.cmd.server.ext.desc": "Inspect server extension assets.",
728
+ "cli.cmd.server.ext.desc": "Inspect server extension assets.\n\nUse template to inspect server-provided extension templates. Create and publish locally through workspace extension.",
717
729
  "cli.cmd.server.ext.template.title": "Server extension template",
718
730
  "cli.cmd.server.ext.template.summary": "inspect server extension templates",
719
- "cli.cmd.server.ext.template.desc": "Inspect server extension templates.",
731
+ "cli.cmd.server.ext.template.desc": "Inspect server extension templates.\n\nlist returns extension points and templates for local extension creation. Templates come from the target server; use the same active server when creating the extension.",
720
732
  "cli.cmd.server.ext.template.list.summary": "List extension templates.",
721
- "cli.cmd.server.ext.template.list.desc": "List extension templates available on a server.",
733
+ "cli.cmd.server.ext.template.list.desc": "List extension templates available on a server.\n\nUse --extension-point to narrow the extension point. Returned extension points and template names are inputs to workspace extension create. Listing does not create or install an extension.",
722
734
  "cli.cmd.server.ext.template.list.extensionPoint": "Only list templates for the given extension point.",
723
735
  "cli.cmd.server.script.title": "Server script",
724
736
  "cli.cmd.server.script.summary": "execute and check server scripts",
725
- "cli.cmd.server.script.desc": "Execute and check server scripts.",
737
+ "cli.cmd.server.script.desc": "Execute and check server scripts.\n\nCheck a local script with check before executing it on the server with exec. A successful check does not imply side-effect-free execution. Scripts may access and modify server resources; inspect the script and target environment first.\n\nConsult the guide below for related instructions and confirm it applies to your CLI and server version.\n\nGuide: Implement business logic\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/app/implement-business-logic.md\nWeb: https://docs.succapp.com/ai-building/app/implement-business-logic#cli-script",
726
738
  "cli.cmd.server.script.done": "Script command completed.",
727
739
  "cli.cmd.server.script.invalidJsonInput": "Invalid JSON input file: {0}",
728
740
  "cli.cmd.server.script.exec.summary": "Execute a local script on the server.",
729
- "cli.cmd.server.script.exec.desc": "Read a local script file and execute it through Dev Tool v2 when the server supports this capability.",
741
+ "cli.cmd.server.script.exec.desc": "Read a local script file and execute it through Dev Tool v2 when the server supports this capability.\n\n<file> selects a local script, --input supplies a JSON input file, and repeatable --param accepts key=value parameters. This executes a real server script; its effects depend on its content. After interruption, inspect actual results before repeating a write.\n\nThe script entry point is function main(args). Read --input JSON from args.input and --param string values from args.params. For example, main(args) can return {mode: args.params.mode, input: args.input}. Validate with check first.",
730
742
  "cli.cmd.server.script.exec.input": "Read script input from a file.",
731
743
  "cli.cmd.server.script.exec.param": "Pass a script parameter. Repeatable.",
732
744
  "cli.cmd.server.script.check.summary": "Check a local script on the server.",
733
- "cli.cmd.server.script.check.desc": "Read a local script file and compile it through Dev Tool v2 when the server supports this capability.",
745
+ "cli.cmd.server.script.check.desc": "Read a local script file and compile it through Dev Tool v2 when the server supports this capability.\n\n<file> selects a local script. The target server must support the compilation endpoint. This does not execute script business logic; a successful check does not validate runtime data, permissions or inputs.",
734
746
  "cli.cmd.server.settings.title": "Server settings",
735
- "cli.cmd.server.settings.summary": "get and set server settings",
736
- "cli.cmd.server.settings.desc": "Get and set system, project, or app settings through Dev Tool v2.",
747
+ "cli.cmd.server.settings.summary": "get and edit server settings",
748
+ "cli.cmd.server.settings.desc": "Read or change settings directly on the remote server; writes do not need workspace push and do not update local files. To review local changes first, clone the project, edit its settings JSON, then use workspace file diff and push. See each subcommand with --help.\n\nUse get to read values, set to modify top-level keys, and add/update/remove for entries in supported settings lists. See child parameters for system, project and app target syntax. Read before writing and verify with get afterwards.\n\nFor a workflow with local review, use workspace file diff and workspace push.\n\nConsult the guide below for related instructions and confirm it applies to your CLI and server version.\n\nGuide: System settings fields and secret handling\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/basics/system-settings.md\nWeb: https://docs.succapp.com/ai-building/basics/system-settings",
737
749
  "cli.cmd.server.settings.target.system": "system",
750
+ "cli.cmd.server.settings.url": "Remote server URL; alternatively use --server or the active workspace server.",
751
+ "cli.cmd.server.settings.target": "system for system settings; a project name such as DEMO; or an absolute metadata app path such as /DEMO/app/demo.app, not a local file path.",
752
+ "cli.cmd.server.settings.itemTarget": "System list alias: llms, sso, credentials, messagers, message-templates, encryption, or masking. For a project name or absolute app metadata path, also provide --key.",
753
+ "cli.cmd.server.settings.add.item": "One complete item JSON object, including id; do not wrap it in an array.",
754
+ "cli.cmd.server.settings.update.item": "One complete item JSON object, including id; do not wrap it in an array.",
755
+ "cli.cmd.server.settings.add.file": "Read one complete item JSON object, including id, from a local file.",
756
+ "cli.cmd.server.settings.update.file": "Read one complete item JSON object, including id, from a local file.",
757
+ "cli.cmd.server.settings.add.stdin": "Read one complete item JSON object, including id, from stdin.",
758
+ "cli.cmd.server.settings.update.stdin": "Read one complete item JSON object, including id, from stdin.",
759
+ "cli.cmd.server.settings.remove.item": "Item ID, or a JSON object containing only id, such as '{\"id\":\"service-1\"}'.",
760
+ "cli.cmd.server.settings.remove.file": "Read an item ID or a JSON object containing only id from a local file.",
761
+ "cli.cmd.server.settings.remove.stdin": "Read an item ID or a JSON object containing only id from stdin.",
738
762
  "cli.cmd.server.settings.get.summary": "Get server settings.",
739
- "cli.cmd.server.settings.get.desc": "Read system, project, or app settings. Omit <target> or pass system to read system settings.",
763
+ "cli.cmd.server.settings.get.desc": "Read remote system, project, or app settings. Omit <target> or pass system for system settings. --key matches a complete top-level key; dots are part of the key, not a nested path.\n\nUse results to inspect current configuration. Secret fields may be sanitized; do not write masked placeholders back unchanged. Before editing a list entry, identify its id and full content.\n\nSystem list keys: llms→llm.services, sso→sso.providers, credentials→service.credentials, messagers→messaging.services, message-templates→messaging.templates, encryption→security.encryption.algorithms, masking→security.masking.rules. For example: get system --key security.masking.rules. Do not use masking as a project target for get.",
740
764
  "cli.cmd.server.settings.get.key": "Only return the given top-level key. Repeatable.",
741
765
  "cli.cmd.server.settings.get.header": "Settings of {0}:",
742
- "cli.cmd.server.settings.set.summary": "Set server settings.",
743
- "cli.cmd.server.settings.set.desc": "Merge incremental settings into system, project, or app settings. Provide at least one of --set, --file, --stdin or --unset.",
744
- "cli.cmd.server.settings.set.set": "Inline incremental JSON. May set multiple top-level keys at once.",
745
- "cli.cmd.server.settings.set.file": "Read incremental JSON from a local file.",
746
- "cli.cmd.server.settings.set.stdin": "Read incremental JSON from stdin.",
766
+ "cli.cmd.server.settings.set.summary": "Change remote settings.",
767
+ "cli.cmd.server.settings.set.desc": "Write directly to the remote server without updating local files; no workspace push is needed. Only submitted top-level keys change. Objects and arrays are replaced in full, not merged recursively; null or --unset removes a key.\n\nChoose one JSON input: --set, --file, or --stdin; --unset may be used alone or with an input. Use complete settings keys (for example system.name), not nested JSON. Read the current value before changing an object or array, and use get again to verify the saved value.\n\nUse --expected-revision for concurrency protection. After a conflict, reread and reconcile the required top-level changes before submitting. After interruption, inspect with get rather than assuming nothing was saved.\n\nget does not return a settings revision from the same snapshot for concurrency protection. Do not substitute a file revision or another version number. Entry add/update/remove also expose no caller-supplied revision parameter.",
768
+ "cli.cmd.server.settings.set.set": "Inline JSON object with complete values for the keys to change.",
769
+ "cli.cmd.server.settings.set.file": "Read a JSON object from a local file and submit it to the remote server; does not edit or sync that file.",
770
+ "cli.cmd.server.settings.set.stdin": "Read settings JSON from stdin.",
747
771
  "cli.cmd.server.settings.set.unset": "Delete the given top-level key. Repeatable.",
748
- "cli.cmd.server.settings.set.key": "Only merge under the given top-level key.",
772
+ "cli.cmd.server.settings.set.key": "Treat the input object as this key's complete value, instead of a settings patch. Cannot combine with --unset.",
749
773
  "cli.cmd.server.settings.set.expectedRevision": "Only set when the server settings revision still matches.",
750
774
  "cli.cmd.server.settings.set.success": "Updated settings of {0}: {1}",
751
775
  "cli.cmd.server.settings.set.noKeys": "(no keys)",
776
+ "cli.cmd.server.settings.add.summary": "Add a settings item.",
777
+ "cli.cmd.server.settings.add.key": "Complete top-level key of the item list; required unless <target> is a system list alias.",
778
+ "cli.cmd.server.settings.add.desc": "Add one complete item directly to a remote settings list. Provide exactly one of --item, --file, or --stdin. The JSON object must include a new id and all required fields for its type; no workspace push is needed.\n\nRead the list and existing IDs with get first to avoid duplicates. Read again after submission. After an interrupted response, check whether the entry was added before retrying.\n\nConsult the corresponding system settings documentation using the list keys described by get. Existing entries of the same type can illustrate structure, but a new entry must have a new id.\n\nGuide: System settings fields and secret handling\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/basics/system-settings.md\nWeb: https://docs.succapp.com/ai-building/basics/system-settings",
779
+ "cli.cmd.server.settings.add.success": "Added item {1} to {0}.",
780
+ "cli.cmd.server.settings.update.summary": "Update a settings item.",
781
+ "cli.cmd.server.settings.update.key": "Complete top-level key of the item list; required unless <target> is a system list alias.",
782
+ "cli.cmd.server.settings.update.desc": "Replace one item directly in a remote settings list; no workspace push is needed. Read the list first, for example with server settings get system --key security.masking.rules, then supply one complete item with its existing id using --item, --file, or --stdin. Omitted item fields are not preserved.\n\nPreserve every field still needed in the complete entry, especially objects and arrays. Reread after saving. If the response is interrupted, inspect the current entry before retrying.\n\nGuide: System settings fields and secret handling\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/basics/system-settings.md\nWeb: https://docs.succapp.com/ai-building/basics/system-settings",
783
+ "cli.cmd.server.settings.update.success": "Updated item {1} in {0}.",
784
+ "cli.cmd.server.settings.remove.summary": "Remove a settings item.",
785
+ "cli.cmd.server.settings.remove.key": "Complete top-level key of the item list; required unless <target> is a system list alias.",
786
+ "cli.cmd.server.settings.remove.desc": "Remove one item directly from a remote settings list; no workspace push is needed. Provide exactly one of --item, --file, or --stdin, containing the item id or a JSON object with only id.\n\nInspect the entry ID and purpose with get first; removal directly affects server configuration. Reread afterwards to verify. Use set --unset to delete an entire top-level settings key.",
787
+ "cli.cmd.server.settings.remove.success": "Removed item {1} from {0}.",
788
+ "cli.cmd.server.settings.*.module": "System settings list module.",
789
+ "cli.cmd.server.settings.*.item": "Inline complete item JSON, or an ID for remove.",
790
+ "cli.cmd.server.settings.*.file": "Read item JSON or ID from a local file.",
791
+ "cli.cmd.server.settings.*.stdin": "Read item JSON or ID from stdin.",
792
+ "cli.cmd.server.*.url": "Target server URL; takes precedence over --server, the active workspace server and SUCCAPP_SERVER.",
793
+ "cli.cmd.server.file.*.url": "Target server URL; takes precedence over --server, the active workspace server and SUCCAPP_SERVER.",
794
+ "cli.cmd.server.file.*.path": "Server metadata path such as /DEMO/ana/sales.dash, not a local filesystem path.",
795
+ "cli.cmd.server.file.*.id": "Metadata ID obtainable from file information returned by server file info.",
796
+ "cli.cmd.server.cache.*.url": "Target server URL; takes precedence over --server, the active workspace server and SUCCAPP_SERVER.",
797
+ "cli.cmd.server.cache.clean.name": "Cache name returned by server cache list; choose this or --all.",
798
+ "cli.cmd.server.cluster.*.url": "Target server URL; takes precedence over --server, the active workspace server and SUCCAPP_SERVER.",
799
+ "cli.cmd.server.cluster.*.nodeId": "Node ID returned by server cluster list.",
800
+ "cli.cmd.server.thread.*.url": "Target server URL; takes precedence over --server, the active workspace server and SUCCAPP_SERVER.",
801
+ "cli.cmd.server.thread.*.threadId": "Thread ID from server thread list on the same node; recheck before use.",
802
+ "cli.cmd.server.techLog.*.url": "Target server URL; takes precedence over --server, the active workspace server and SUCCAPP_SERVER.",
803
+ "cli.cmd.server.proj.*.url": "Target server URL; takes precedence over --server, the active workspace server and SUCCAPP_SERVER.",
804
+ "cli.cmd.server.script.*.file": "Local script file; relative paths use the CLI launch directory, unaffected by -C.",
805
+ "cli.cmd.server.techLog.level.*.url": "Target server URL; takes precedence over --server, the active workspace server and SUCCAPP_SERVER.",
806
+ "cli.cmd.server.proj.create.project": "New project name; inspect existing projects with server project list.",
752
807
  "cli.cmd.workspace.title": "Workspace",
753
808
  "cli.cmd.workspace.summary": "work with a local SuccApp workspace",
754
- "cli.cmd.workspace.desc": "Work with a local SuccApp workspace.",
809
+ "cli.cmd.workspace.desc": "Work with a local SuccApp workspace.\n\nRun inside an initialized workspace or select one with -C. Confirm the active server with remote, then obtain projects with project clone. After editing, use status, file diff and push to inspect and submit changes.\n\nConsult the guide below for related instructions and confirm it applies to your CLI and server version.\n\nGuide: Initialize a workspace\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/workspace/init-workspace.md\nWeb: https://docs.succapp.com/ai-building/workspace/init-workspace",
755
810
  "cli.cmd.workspace.init.summary": "Initialize a SuccApp workspace.",
756
- "cli.cmd.workspace.init.desc": "Initialize .succapp/config.json, recommended workspace support files, and the optional offline SuccApp docs skill.",
811
+ "cli.cmd.workspace.init.desc": "Initialize .succapp/config.json, recommended workspace support files, and the optional offline SuccApp docs skill.\n\nThe target directory must already exist. Use --scope to choose initialization tasks. Re-running respects existing configuration and is not a clean reset. Server access and offline-document downloads may need network access and authentication; inspect updated, skipped and document status in the result.\n\nscope defaults to all: base maintains workspace configuration, editor settings, ignore rules and Agent files; dev maintains local types and JSON Schema; agent-docs installs or updates the official documentation skill.\n\nConsult the guide below for related instructions and confirm it applies to your CLI and server version.\n\nGuide: Initialize a workspace\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/workspace/init-workspace.md\nWeb: https://docs.succapp.com/ai-building/workspace/init-workspace",
757
812
  "cli.cmd.workspace.init.server": "Initialize the workspace with this active server.",
758
813
  "cli.cmd.workspace.init.scope": "Limit initialization scope. Values: base, dev, agent-docs, all.",
759
814
  "cli.cmd.workspace.init.force": "Force the offline SuccApp docs skill to check local files even when the index is unchanged.",
@@ -770,25 +825,25 @@
770
825
  "cli.cmd.workspace.init.supportFiles": "Workspace support files: {0} updated, {1} skipped.",
771
826
  "cli.cmd.workspace.init.workspaceInit": "Workspace already initialized: {0}",
772
827
  "cli.cmd.workspace.status.summary": "Show workspace sync status.",
773
- "cli.cmd.workspace.status.desc": "Show workspace sync status.",
828
+ "cli.cmd.workspace.status.desc": "Show workspace sync status.\n\nInspect local and remote changes by default. --local-only checks local state; --force-refresh recalibrates remote caches. Check the exit code, remoteCheck and warnings before interpreting changes. remoteCheck=complete means this remote check completed; skipped means it was intentionally omitted. failed/cancelled means incomplete checking and a nonzero exit code. A failed check may retain previous remote changes; empty results do not prove the remote is unchanged.\n\nFor authentication failures, run auth login. For connection failures, verify the target and network, then rerun workspace status --force-refresh. Do not treat incomplete results as a complete pre-push check.",
774
829
  "cli.cmd.workspace.status.forceRefresh": "Recheck server changes instead of using cached status.",
775
830
  "cli.cmd.workspace.status.localOnly": "Show only local workspace changes; do not check the server.",
776
831
  "cli.cmd.workspace.status.remoteAuthRequired": "You are not logged in, so only local changes are shown. Run 'succapp auth login', then retry to include server changes.",
777
832
  "cli.cmd.workspace.upgrade.summary": "Plan workspace structure migrations.",
778
- "cli.cmd.workspace.upgrade.desc": "Plan SuccApp workspace structure migrations. The current implementation has no migrations.",
833
+ "cli.cmd.workspace.upgrade.desc": "Plan SuccApp workspace structure migrations. The current implementation has no migrations.\n\nThis concerns workspace structure, not metadata file versions. Use workspace file upgrade for old metadata files and succapp --version for the CLI version.",
779
834
  "cli.cmd.workspace.upgrade.targetVersion": "Plan migration to the target workspace structure version.",
780
835
  "cli.cmd.workspace.upgrade.dryRun": "Preview the migration plan without changing files.",
781
836
  "cli.cmd.workspace.upgrade.actions": "Workspace upgrade: {0} action(s). current={1}, target={2}.",
782
837
  "cli.cmd.workspace.upgrade.noActions": "Workspace upgrade: no actions. current={0}, target={1}.",
783
838
  "cli.cmd.workspace.pull.summary": "Pull server changes into the workspace.",
784
- "cli.cmd.workspace.pull.desc": "Apply changes from the active server into the current workspace.",
839
+ "cli.cmd.workspace.pull.desc": "Apply changes from the active server into the current workspace.\n\nUse paths to narrow the scope; omitted paths use the current synchronization scope. Pull changes local files and may merge changes. Inspect status and file diff first; examine reported conflicts before resolving them, rather than treating --force as an ordinary retry.\n\nOmitting paths processes all corresponding changes. A kind=result response still exits with 6 when conflicts exist. Inspect updated, deleted, conflicts and oldFiles, and use backup list to inspect saved local versions.\n\nConsult the guide below for related instructions and confirm it applies to your CLI and server version.\n\nGuide: Synchronize changes\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/workspace/sync-changes.md\nWeb: https://docs.succapp.com/ai-building/workspace/sync-changes",
785
840
  "cli.cmd.workspace.pull.force": "Allow server changes to overwrite local changes.",
786
841
  "cli.cmd.workspace.pull.conflicts": "Conflicts: {0}",
787
842
  "cli.cmd.workspace.pull.oldMeta": "Old metadata files: {0}",
788
843
  "cli.cmd.workspace.pull.pullResultUpdated": "Pull result: {0} updated, {1} deleted, {2} conflict(s)",
789
844
  "cli.cmd.workspace.pull.upDate": "Already up to date",
790
845
  "cli.cmd.workspace.push.summary": "Push workspace changes to the server.",
791
- "cli.cmd.workspace.push.desc": "Submit local workspace changes to the active server.",
846
+ "cli.cmd.workspace.push.desc": "Submit local workspace changes to the active server.\n\nUse paths to narrow the scope. Inspect status and file diff to confirm local changes and the active server. Push writes remote metadata; --force bypasses some conflict protection. After failure or disconnection, refresh state before retrying.\n\nOmitting paths processes all corresponding local changes. Recheck status afterwards; a result object does not override failed items or a nonzero exit code.\n\nConsult the guide below for related instructions and confirm it applies to your CLI and server version.\n\nGuide: Synchronize changes\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/workspace/sync-changes.md\nWeb: https://docs.succapp.com/ai-building/workspace/sync-changes",
792
847
  "cli.cmd.workspace.push.force": "Allow local changes to overwrite remote changes.",
793
848
  "cli.cmd.workspace.push.failed": "Failed files: {0}",
794
849
  "cli.cmd.workspace.push.kind": "Kind",
@@ -800,14 +855,14 @@
800
855
  "cli.cmd.workspace.push.targetVersion": "Target version",
801
856
  "cli.cmd.workspace.push.version": "Current version",
802
857
  "cli.cmd.workspace.discard.summary": "Discard local workspace changes.",
803
- "cli.cmd.workspace.discard.desc": "Restore workspace files from the local mirror baseline and discard local changes.",
858
+ "cli.cmd.workspace.discard.desc": "Restore workspace files from the local mirror baseline and discard local changes.\n\nExplicit paths discard local changes in that scope. Without paths, --force is required to confirm the full scope. The mirror is a local synchronization baseline and may not be the latest server version. Review differences and save any work you need first.\n\nConsult the guide below for related instructions and confirm it applies to your CLI and server version.\n\nGuide: Synchronize changes\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/workspace/sync-changes.md\nWeb: https://docs.succapp.com/ai-building/workspace/sync-changes",
804
859
  "cli.cmd.workspace.discard.force": "Confirm discarding all workspace changes when no path is given.",
805
860
  "cli.cmd.workspace.discard.deletedFiles": "Deleted files: {0}",
806
861
  "cli.cmd.workspace.discard.noLocalChanges": "No local changes to discard",
807
862
  "cli.cmd.workspace.discard.restoredFiles": "Restored files: {0}",
808
863
  "cli.cmd.workspace.discard.result": "Discard result: {0} restored, {1} deleted",
809
864
  "cli.cmd.workspace.repair.summary": "Check or repair workspace consistency issues.",
810
- "cli.cmd.workspace.repair.desc": "Check or repair workspace structure and sync state issues that can be fixed automatically.",
865
+ "cli.cmd.workspace.repair.desc": "Check or repair workspace structure and sync state issues that can be fixed automatically.\n\nStart with --dry-run to inspect findings and use --only to narrow checks before repairing. Repair may update support files or synchronization state. It does not replace business-file conflict resolution; inspect status afterwards.\n\nConsult the guide below for related instructions and confirm it applies to your CLI and server version.\n\nGuide: Validate metadata\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/troubleshoot/metadata-validation.md\nWeb: https://docs.succapp.com/ai-building/troubleshoot/metadata-validation",
811
866
  "cli.cmd.workspace.repair.only": "Run only the named workspace repair check.",
812
867
  "cli.cmd.workspace.repair.dryRun": "Preview repairable workspace issues without changing files.",
813
868
  "cli.cmd.workspace.repair.badCheck": "Invalid workspace repair check: {0}",
@@ -824,43 +879,43 @@
824
879
  "cli.cmd.workspace.repair.unresolved": "Unresolved issues:",
825
880
  "cli.cmd.workspace.proj.title": "Workspace project",
826
881
  "cli.cmd.workspace.proj.summary": "manage workspace projects",
827
- "cli.cmd.workspace.proj.desc": "Manage workspace projects.",
882
+ "cli.cmd.workspace.proj.desc": "Manage workspace projects.\n\nUse list for local projects, clone to download from the active server, and remove to delete local projects and baselines. Use succapp server project list to discover server projects.\n\nConsult the guide below for related instructions and confirm it applies to your CLI and server version.\n\nGuide: Connect and clone projects\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/workspace/connect-and-clone.md\nWeb: https://docs.succapp.com/ai-building/workspace/connect-and-clone",
828
883
  "cli.cmd.workspace.proj.list.summary": "List workspace projects.",
829
- "cli.cmd.workspace.proj.list.desc": "List workspace projects.",
884
+ "cli.cmd.workspace.proj.list.desc": "List workspace projects.\n\nShows projects found in both the working directory and mirror baseline, helping identify a missing side. This is not the server project list; use server project list for that.",
830
885
  "cli.cmd.workspace.proj.list.empty": "No projects are tracked in this workspace.",
831
886
  "cli.cmd.workspace.proj.clone.summary": "Clone server projects into the workspace.",
832
- "cli.cmd.workspace.proj.clone.desc": "Clone projects from the active server into the current workspace.",
887
+ "cli.cmd.workspace.proj.clone.desc": "Clone projects from the active server into the current workspace.\n\nConfirm the active server and project names first. Existing local projects or baselines require --force to confirm replacement. Clone writes the working directory and baseline; preserve local changes first. Check any old-metadata notices afterwards.\n\nOmitting project names clones all visible projects. If no active server is configured, --server can select and register the initial target. Once an active server exists, --server must match it.\n\nConsult the guide below for related instructions and confirm it applies to your CLI and server version.\n\nGuide: Connect and clone projects\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/workspace/connect-and-clone.md\nWeb: https://docs.succapp.com/ai-building/workspace/connect-and-clone",
833
888
  "cli.cmd.workspace.proj.clone.force": "Allow clone to overwrite existing local workspace projects.",
834
889
  "cli.cmd.workspace.proj.clone.configuredActive": "Active server configured: {0}",
835
890
  "cli.cmd.workspace.proj.clone.cloned": "Cloned projects: {0}",
836
891
  "cli.cmd.workspace.proj.clone.oldMetaNotice": "Note: {count} metadata file(s) use an older format.\nOptional: run '{command}' to modernize them.\nThis may update many files; run with `--dry-run` first to review the scope.\nSkip this if you only want to inspect the project.",
837
892
  "cli.cmd.workspace.proj.remove.summary": "Remove workspace projects.",
838
- "cli.cmd.workspace.proj.remove.desc": "Remove local workspace projects and mirror baselines without deleting server projects.",
893
+ "cli.cmd.workspace.proj.remove.desc": "Remove local workspace projects and mirror baselines without deleting server projects.\n\n--force is required, and multiple projects can be specified. Unpushed local changes and the project synchronization baseline are removed. Save anything you need first; projects can later be cloned again from the server.",
839
894
  "cli.cmd.workspace.proj.remove.force": "Confirm removal of local project files and mirror baselines.",
840
895
  "cli.cmd.workspace.proj.remove.removed": "Removed workspace projects: {0}",
841
896
  "cli.cmd.workspace.remote.title": "Workspace remote",
842
897
  "cli.cmd.workspace.remote.summary": "manage workspace remotes",
843
- "cli.cmd.workspace.remote.desc": "Manage workspace remotes.",
898
+ "cli.cmd.workspace.remote.desc": "Manage workspace remotes.\n\nThese commands manage local workspace configuration; use auth for credentials. Confirm server identity before switching or changing a URL, since subsequent synchronization uses the active server.\n\nConsult the guide below for related instructions and confirm it applies to your CLI and server version.\n\nGuide: Connect and clone projects\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/workspace/connect-and-clone.md\nWeb: https://docs.succapp.com/ai-building/workspace/connect-and-clone",
844
899
  "cli.cmd.workspace.remote.list.summary": "List configured servers.",
845
- "cli.cmd.workspace.remote.list.desc": "List configured servers for the current workspace.",
900
+ "cli.cmd.workspace.remote.list.desc": "List configured servers for the current workspace.\n\nCheck the active marker to confirm the target for subsequent synchronization. Entries come from local configuration and do not prove reachability or valid authentication.",
846
901
  "cli.cmd.workspace.remote.add.summary": "Add a server and make it active.",
847
- "cli.cmd.workspace.remote.add.desc": "Add a server to the current SuccApp workspace and make it the active server.",
902
+ "cli.cmd.workspace.remote.add.desc": "Add a server to the current SuccApp workspace and make it the active server.\n\n<url> is the server address. Adding it changes the current synchronization target. Configure credentials with auth login; adding a server does not clone projects.",
848
903
  "cli.cmd.workspace.remote.add.active": "Active server: {0}",
849
904
  "cli.cmd.workspace.remote.use.summary": "Switch the active server.",
850
- "cli.cmd.workspace.remote.use.desc": "Switch the active server for the current workspace.",
905
+ "cli.cmd.workspace.remote.use.desc": "Switch the active server for the current workspace.\n\n<url> must identify a configured server. Check remote list and status afterwards. Switching does not automatically replace the working directory with files from the new server.",
851
906
  "cli.cmd.workspace.remote.use.active": "Active server: {0}",
852
907
  "cli.cmd.workspace.remote.setUrl.summary": "Change a configured server URL.",
853
- "cli.cmd.workspace.remote.setUrl.desc": "Change a configured server URL and migrate the local mirror key.",
908
+ "cli.cmd.workspace.remote.setUrl.desc": "Change a configured server URL and migrate the local mirror key.\n\nProvide old and new URLs when the same server changes address. This changes local configuration and baseline indexing; it is not a project migration to an unrelated server. Check remote list and authentication afterwards.",
854
909
  "cli.cmd.workspace.remote.setUrl.changed": "Server URL changed: {0} -> {1}",
855
910
  "cli.cmd.workspace.remote.remove.summary": "Remove a configured server.",
856
- "cli.cmd.workspace.remote.remove.desc": "Remove a server from the current workspace configuration.",
911
+ "cli.cmd.workspace.remote.remove.desc": "Remove a server from the current workspace configuration.\n\n<url> must be configured. Check remote list afterwards to confirm the remaining active target. This does not delete the remote server or its projects; use auth logout to remove local credentials.",
857
912
  "cli.cmd.workspace.remote.remove.active": "Server removed: {0}\nActive server: {1}",
858
913
  "cli.cmd.workspace.remote.remove.removed": "Server removed: {0}",
859
914
  "cli.cmd.workspace.file.title": "Workspace file",
860
915
  "cli.cmd.workspace.file.summary": "inspect workspace files",
861
- "cli.cmd.workspace.file.desc": "Inspect workspace files.",
916
+ "cli.cmd.workspace.file.desc": "Inspect workspace files.\n\nUse resolve for path mapping, show/history for server or baseline content, diff to compare local and server content, compile/upgrade to validate or upgrade local metadata, and open for server pages. Local file edits still require push to synchronize.\n\nConsult the guide below for related instructions and confirm it applies to your CLI and server version.\n\nGuide: Synchronize changes\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/workspace/sync-changes.md\nWeb: https://docs.succapp.com/ai-building/workspace/sync-changes",
862
917
  "cli.cmd.workspace.file.resolve.summary": "Resolve a workspace file path.",
863
- "cli.cmd.workspace.file.resolve.desc": "Resolve local, remote, and browser URLs for a workspace file.",
918
+ "cli.cmd.workspace.file.resolve.desc": "Resolve local, remote, and browser URLs for a workspace file.\n\nPass a workspace file path and inspect the resolved localPath and remotePath. --url selects a view or edit link. This resolves the target without uploading files or opening a browser.",
864
919
  "cli.cmd.workspace.file.resolve.url": "Only print the view or edit URL in human mode.",
865
920
  "cli.cmd.workspace.file.resolve.badUrl": "Invalid value for --url: {0}",
866
921
  "cli.cmd.workspace.file.resolve.editUrl": "Edit URL: {0}",
@@ -869,7 +924,7 @@
869
924
  "cli.cmd.workspace.file.resolve.remote": "Remote path: {0}",
870
925
  "cli.cmd.workspace.file.resolve.viewUrl": "View URL: {0}",
871
926
  "cli.cmd.workspace.file.open.summary": "Open the server file 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.",
927
+ "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.\n\nThe default opens a view page; --edit selects editing and --no-open returns only the URL. Pages use server content. Local changes require --force confirmation, which does not push those changes.",
873
928
  "cli.cmd.workspace.file.open.edit": "Open the server edit page instead of the view page.",
874
929
  "cli.cmd.workspace.file.open.noOpen": "Return the page URL without launching the system browser.",
875
930
  "cli.cmd.workspace.file.open.path": "Workspace-relative file path or absolute server metadata path.",
@@ -878,21 +933,21 @@
878
933
  "cli.cmd.workspace.file.open.openedEdit": "Opened server edit page: {0}",
879
934
  "cli.cmd.workspace.file.open.openedView": "Opened server view page: {0}",
880
935
  "cli.cmd.workspace.file.show.summary": "Show file content.",
881
- "cli.cmd.workspace.file.show.desc": "Show file content.",
936
+ "cli.cmd.workspace.file.show.desc": "Read file content from the server or local mirror baseline.\n\nReads server content by default; --source=mirror reads the local baseline. --revision applies only to the server source. Human output is raw content and JSON content is Base64. This does not directly read the current working file.",
882
937
  "cli.cmd.workspace.file.show.source": "Read from mirror or server.",
883
938
  "cli.cmd.workspace.file.show.revision": "Read a server revision.",
884
939
  "cli.cmd.workspace.file.show.badRev": "Invalid value for --revision: {0}",
885
940
  "cli.cmd.workspace.file.show.badSource": "Invalid value for --source: {0}",
886
941
  "cli.cmd.workspace.file.show.revSource": "--revision is only supported with --source=server.",
887
942
  "cli.cmd.workspace.file.diff.summary": "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.",
943
+ "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.\n\nQuote globs so the CLI can expand them. Output is for reviewing differences and does not change local or server files. Combine it with workspace status to inspect conflicts across the synchronization scope.",
889
944
  "cli.cmd.workspace.file.diff.source": "Compare against server content.",
890
945
  "cli.cmd.workspace.file.diff.badSource": "Invalid value for --source: {0}",
891
946
  "cli.cmd.workspace.file.history.summary": "Show server file history.",
892
- "cli.cmd.workspace.file.history.desc": "Show server-side file history for a workspace file.",
947
+ "cli.cmd.workspace.file.history.desc": "Show server-side file history for a workspace file.\n\nResolves a workspace path to a file on the active server; --limit bounds the number of entries. This is server history, not local Git history. Read a version with file show --revision.",
893
948
  "cli.cmd.workspace.file.history.limit": "Limit the number of history records.",
894
949
  "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.",
950
+ "cli.cmd.workspace.file.compile.desc": "Validate local workspace metadata files. Inputs may be files, directories (recursively including all files), or globs.\n\nQuote globs. Validation may contact the server for version information or compilation checks, but does not push local changes. Inspect failed and skipped items; successful validation does not verify business behavior.\n\nExit 0 may still include skipped items. Inspect skipped/skipReason rather than treating skipped files as validated.",
896
951
  "cli.cmd.workspace.file.compile.compiler": "Compiler",
897
952
  "cli.cmd.workspace.file.compile.done": "Validated {0} workspace metadata file(s).",
898
953
  "cli.cmd.workspace.file.compile.failed": "Failed files: {0}",
@@ -904,7 +959,7 @@
904
959
  "cli.cmd.workspace.file.compile.skipped": "Skipped files: {0}",
905
960
  "cli.cmd.workspace.file.compile.upgradeRequired": "{0} file(s) require a metadata upgrade. Run `{1}` with the same pathspec, then validate again.",
906
961
  "cli.cmd.workspace.file.upgrade.summary": "Upgrade old SuccApp metadata files.",
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.",
962
+ "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.\n\nUse --dry-run to inspect candidates and failures before upgrading. Actual execution changes local files. Review diff and validate afterwards before deciding to push.",
908
963
  "cli.cmd.workspace.file.upgrade.dryRun": "Preview upgrade candidates without changing files.",
909
964
  "cli.cmd.workspace.file.upgrade.cands": "Upgrade candidates: {0}",
910
965
  "cli.cmd.workspace.file.upgrade.dryRunRes": "Metadata upgrade dry-run: {0} checked, {1} candidate(s), {2} skipped, {3} failed",
@@ -915,52 +970,67 @@
915
970
  "cli.cmd.workspace.file.upgrade.upgraded": "Upgraded files: {0}",
916
971
  "cli.cmd.workspace.lock.title": "Workspace lock",
917
972
  "cli.cmd.workspace.lock.summary": "inspect workspace locks",
918
- "cli.cmd.workspace.lock.desc": "Inspect workspace locks.",
973
+ "cli.cmd.workspace.lock.desc": "Inspect workspace locks.\n\nlist shows occupied scopes, status inspects selected scopes, and wait waits for release. These commands diagnose concurrent work; they do not forcibly remove locks or terminate holders.",
919
974
  "cli.cmd.workspace.lock.badScope": "Invalid workspace lock scope: {0}",
920
975
  "cli.cmd.workspace.lock.list.summary": "List locked workspace scopes.",
921
- "cli.cmd.workspace.lock.list.desc": "List scopes currently locked in the SuccApp workspace.",
976
+ "cli.cmd.workspace.lock.list.desc": "List scopes currently locked in the SuccApp workspace.\n\nUse output to identify holders and scopes. An empty list means no valid holders were observed. Other processes may change this state; it does not reserve a lock for the next write.",
922
977
  "cli.cmd.workspace.lock.list.scope": "Scope",
923
978
  "cli.cmd.workspace.lock.list.empty": "No active workspace locks.",
924
979
  "cli.cmd.workspace.lock.status.summary": "Show workspace lock holders.",
925
- "cli.cmd.workspace.lock.status.desc": "Workspace lock status",
980
+ "cli.cmd.workspace.lock.status.desc": "Inspect workspace lock scopes and their holders.\n\nSpecify one or more scopes, or omit them to inspect all scopes. free/busy reflects the instant inspected. Use lock wait to wait for availability; subsequent operations must still acquire their own locks.",
926
981
  "cli.cmd.workspace.lock.status.heartbeat": "Last heartbeat",
927
982
  "cli.cmd.workspace.lock.status.pid": "PID",
928
983
  "cli.cmd.workspace.lock.status.scope": "Scope",
929
984
  "cli.cmd.workspace.lock.wait.summary": "Wait until workspace locks are free.",
930
- "cli.cmd.workspace.lock.wait.desc": "Wait until the requested workspace lock scopes are free.",
985
+ "cli.cmd.workspace.lock.wait.desc": "Wait until the requested workspace lock scopes are free.\n\nWith no scopes, waits for config and sync. --timeout is in seconds; omitting it waits indefinitely. Success means the scopes were free when inspected and does not acquire them. Timeout returns a nonzero exit code that scripts should handle.\n\nThe timeout exit code is 124.",
931
986
  "cli.cmd.workspace.lock.wait.timeout": "Stop waiting after the given number of seconds.",
932
987
  "cli.cmd.workspace.lock.wait.badTimeout": "Invalid value for --timeout: {0}",
933
988
  "cli.cmd.workspace.lock.wait.locksBusy": "Workspace locks still busy after {0}s: {1}",
934
989
  "cli.cmd.workspace.lock.wait.locksFree": "Workspace locks are free: {0}",
935
990
  "cli.cmd.workspace.backup.title": "Workspace backup",
936
991
  "cli.cmd.workspace.backup.summary": "inspect and clear workspace backups",
937
- "cli.cmd.workspace.backup.desc": "Inspect and clear workspace backups.",
992
+ "cli.cmd.workspace.backup.desc": "Inspect and clear workspace backups.\n\nUse list to inspect local versions saved before pull conflict handling and clear to remove them. These are not complete backups of every workspace file and do not replace Git history.\n\nConsult the guide below for related instructions and confirm it applies to your CLI and server version.\n\nGuide: Recover lost changes\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/troubleshoot/recover-lost-changes.md\nWeb: https://docs.succapp.com/ai-building/troubleshoot/recover-lost-changes",
938
993
  "cli.cmd.workspace.backup.backupPath": "Backup path",
939
994
  "cli.cmd.workspace.backup.cleared": "Merge backup clear: {0} cleared, {1} remaining.",
940
995
  "cli.cmd.workspace.backup.list.summary": "List saved merge backups.",
941
- "cli.cmd.workspace.backup.list.desc": "List local versions saved before pull conflict handling.",
996
+ "cli.cmd.workspace.backup.list.desc": "List local versions saved before pull conflict handling.\n\nUse paths to limit the scope. Identify the original file and saved location before restoring or cleaning backups. Listing does not restore files automatically.",
942
997
  "cli.cmd.workspace.backup.list.empty": "No merge backups found.",
943
998
  "cli.cmd.workspace.backup.clear.summary": "Clear saved merge backups.",
944
- "cli.cmd.workspace.backup.clear.desc": "Clear local versions saved before pull conflict handling.",
999
+ "cli.cmd.workspace.backup.clear.desc": "Clear local versions saved before pull conflict handling.\n\nUse paths to limit the scope. Omitting paths clears all such backups without an additional --force. Inspect list and preserve anything needed for recovery first. Cleanup does not modify current working files or remote files.",
945
1000
  "cli.cmd.workspace.ext.title": "Workspace extension",
946
1001
  "cli.cmd.workspace.ext.summary": "create and publish workspace extensions",
947
- "cli.cmd.workspace.ext.desc": "Create and publish workspace extensions.",
1002
+ "cli.cmd.workspace.ext.desc": "Create and publish workspace extensions.\n\nUse list for local extensions, create to generate a local directory from a template, and push to publish to the active server. Discover templates with server extension template list first.\n\nConsult the guide below for related instructions and confirm it applies to your CLI and server version.\n\nGuide: Develop extensions\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/extension/extension.md\nWeb: https://docs.succapp.com/ai-building/extension/extension",
948
1003
  "cli.cmd.workspace.ext.dirNamedSame": "A directory named the same already exists under sysdata/extensions/.",
949
1004
  "cli.cmd.workspace.ext.extNameMust": "Extension name must follow the pattern {0}.",
950
1005
  "cli.cmd.workspace.ext.extNameRequired": "Extension name is required.",
951
1006
  "cli.cmd.workspace.ext.invalidExtName": "Invalid extension name.",
952
1007
  "cli.cmd.workspace.ext.middleSegmentMust": "The middle segment must equal \"{0}\" (current: \"{1}\").",
953
1008
  "cli.cmd.workspace.ext.list.summary": "List local extensions.",
954
- "cli.cmd.workspace.ext.list.desc": "List local extensions under the workspace sysdata project.",
1009
+ "cli.cmd.workspace.ext.list.desc": "List local extensions under the workspace sysdata project.\n\nLists extension directories under sysdata in the current workspace, not extensions installed on the server. Use a confirmed name with extension push.",
955
1010
  "cli.cmd.workspace.ext.create.summary": "Create a local extension.",
956
- "cli.cmd.workspace.ext.create.desc": "Create a local extension directory from a server template.",
1011
+ "cli.cmd.workspace.ext.create.desc": "Create a local extension directory from a server template.\n\nRequires an extension point, template and new name. Discover valid combinations with server extension template list. This writes a local directory; inspect generated files before publishing with extension push.\n\nAn active server and a cloned sysdata project are required. Templates are fetched over the network; JSON execution.server=none does not mean this operation can run offline.\n\nConsult the guide below for related instructions and confirm it applies to your CLI and server version.\n\nNames use lowercase letters, digits and hyphens, with at least three segments. The second segment must match the extension point, e.g. succ-component-card. The destination directory must not already exist.\n\nGuide: Develop extensions\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/extension/extension.md\nWeb: https://docs.succapp.com/ai-building/extension/extension",
957
1012
  "cli.cmd.workspace.ext.create.extTemplate": "Extension template not found: {0}/{1}",
958
1013
  "cli.cmd.workspace.ext.push.summary": "Push a local extension.",
959
- "cli.cmd.workspace.ext.push.desc": "Push a local extension directory to the active server.",
1014
+ "cli.cmd.workspace.ext.push.desc": "Push a local extension directory to the active server.\n\nChoose exactly one of an extension name and --path. This uploads the extension and affects the server. Confirm its content and the active server first; see --force when replacing an existing target.",
960
1015
  "cli.cmd.workspace.ext.push.path": "Resolve the extension from a local path under sysdata/extensions.",
961
1016
  "cli.cmd.workspace.ext.push.force": "Allow local extension files to overwrite remote changes.",
962
1017
  "cli.cmd.workspace.ext.push.needNamePath": "Pass an extension name or --path=<path>.",
963
1018
  "cli.cmd.workspace.ext.push.onlyOne": "Use either <name> or --path=<path>, not both.",
1019
+ "cli.cmd.workspace.*.path": "Workspace resource path: a local path or /PROJECT/... metadata path. See the description for omitted-path scope.",
1020
+ "cli.cmd.workspace.file.*.pathspec": "Relative paths and globs are expanded from the workspace root, not the launch subdirectory. Directories are recursive; quote globs. Workspace-local absolute paths and /PROJECT/... metadata paths are supported.",
1021
+ "cli.cmd.workspace.file.*.path": "Workspace resource path: a local path or /PROJECT/... metadata path. See the description for omitted-path scope.",
1022
+ "cli.cmd.workspace.remote.*.url": "Configured or new server URL, such as https://bi.example.com.",
1023
+ "cli.cmd.workspace.remote.*.oldUrl": "Configured old server URL.",
1024
+ "cli.cmd.workspace.remote.*.newUrl": "New access URL for the same server.",
1025
+ "cli.cmd.workspace.lock.*.scope": "Workspace lock scopes such as config and sync; see the description for defaults.",
1026
+ "cli.cmd.workspace.backup.*.path": "Workspace resource path: a local path or /PROJECT/... metadata path. See the description for omitted-path scope.",
1027
+ "cli.cmd.workspace.ext.*.extensionPoint": "Extension point returned by server extension template list.",
1028
+ "cli.cmd.workspace.ext.*.template": "Template name within the selected extension point, from server extension template list.",
1029
+ "cli.cmd.workspace.ext.create.name": "New extension name following the selected extension point naming requirements.",
1030
+ "cli.cmd.workspace.ext.push.name": "Extension name returned by workspace extension list; choose this or --path.",
1031
+ "cli.cmd.workspace.proj.clone.project": "Project names from server project list (remote) or workspace project list (local).",
1032
+ "cli.cmd.workspace.proj.remove.project": "Project names from server project list (remote) or workspace project list (local).",
1033
+ "cli.cmd.workspace.status.incomplete": "Remote check incomplete ({0}); remote changes may be from a previous check. Inspect warnings and check again.",
964
1034
  "cli.out.search.score": "Score",
965
1035
  "cli.out.common.active": "Active",
966
1036
  "cli.out.common.api": "Dev Tool API",
@@ -1081,9 +1151,9 @@
1081
1151
  "cli.out.header.upgrade": "Upgradeable",
1082
1152
  "cli.out.header.value": "Value",
1083
1153
  "cli.out.header.version": "Version",
1084
- "cli.out.help.commandHelpRead": "Run 'succapp {0} <command> --help' to read about a specific command.",
1154
+ "cli.out.help.commandHelpRead": "Run 'succapp {0} <command> --help' to see the next level.",
1085
1155
  "cli.out.help.commandHelpSee": "Run 'succapp <command> --help' to see command help.",
1086
- "cli.out.help.commands": "Commands",
1156
+ "cli.out.help.commands": "Commands:",
1087
1157
  "cli.out.help.arguments": "arguments:",
1088
1158
  "cli.out.help.examples": "examples:",
1089
1159
  "cli.out.help.group.content": "content options:",
@@ -1094,7 +1164,7 @@
1094
1164
  "cli.out.help.group.output": "output options:",
1095
1165
  "cli.out.help.group.query": "query options:",
1096
1166
  "cli.out.help.group.search": "search options:",
1097
- "cli.out.help.usageHeader": "usage:",
1167
+ "cli.out.help.usageHeader": "usage: ",
1098
1168
  "cli.out.help.usageLine": "usage: succapp {command} {usageArgs}",
1099
1169
  "cli.out.human.error": "error: {0}",
1100
1170
  "cli.out.human.hint": "hint: {0}",
@@ -1140,6 +1210,8 @@
1140
1210
  "cli.out.workspace.ext.version": "Current version",
1141
1211
  "cli.out.workspace.file.hist.empty": "No server history records",
1142
1212
  "cli.out.workspace.file.history.badLimit": "Invalid value for --limit: {0}",
1213
+ "cli.out.help.commandGroups": "Command groups:",
1214
+ "cli.out.help.rootUsage": "succapp [global options] <command> [<args>]",
1143
1215
  "cli.err.context.exampleCommandServer": "succapp --server=<url> {commandName}",
1144
1216
  "cli.err.context.exampleCommandUrl": "succapp {commandName} <url>",
1145
1217
  "cli.err.context.exampleEnvUrl": "{envName}=<url> succapp {commandName}",
@@ -1326,6 +1398,7 @@
1326
1398
  "vs.cmd.sync.upgradeMeta.result": "Metadata upgrade finished: {0} changed, {1} checked.",
1327
1399
  "vs.cmd.sync.upgradeMeta.upgrade": "Upgrade",
1328
1400
  "vs.cmd.sync.upgradeMeta.upgradeMetaFile": "Upgrade {0} metadata file(s) under this folder?",
1401
+ "vs.cmd.sync.push.upgradeRequired": "Upgrade {0} old metadata file(s) before pushing? Cancelling will stop this push.",
1329
1402
  "vs.cmd.ext.create.cannotCreateExt": "Cannot create an extension because the sysdata project is not cloned in this workspace.",
1330
1403
  "vs.cmd.ext.create.createdExt": "Created extension {0}.",
1331
1404
  "vs.cmd.ext.create.dirNamedSame": "A directory named the same already exists under sysdata/extensions/.",
@@ -1440,9 +1513,9 @@
1440
1513
  "vs.ui.workspaceProblem.syncProblem": "SuccApp detected a workspace sync problem. See logs for details.",
1441
1514
  "cli.cmd.model.title": "Model",
1442
1515
  "cli.cmd.model.summary": "inspect and query semantic data models",
1443
- "cli.cmd.model.desc": "Inspect and query SuccApp semantic data models.",
1516
+ "cli.cmd.model.desc": "Inspect and query SuccApp semantic data models.\n\nFind models with search, then inspect structure with show, fields, indexes or profile. Use select for a single-model preview, query for aggregation and joins, export for CSV files, and field-profile for field statistics.\n\nFor the full workflow, consult the guide below and confirm it applies to your CLI and server version.\n\nGuide: Explore model data\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/data/explore-model-data.md\nWeb: https://docs.succapp.com/ai-building/data/explore-model-data",
1444
1517
  "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.",
1518
+ "cli.cmd.model.search.desc": "Search visible .tbl semantic models by full path or by combinable location, model-property, and field-property filters.\n\nUse returned .tbl paths with subsequent model commands. See the parameters below for exact-path lookup and combined filters. Results contain only visible models; reaching the limit does not mean no other models exist.",
1446
1519
  "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
1520
  "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
1521
  "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.",
@@ -1462,11 +1535,11 @@
1462
1535
  "cli.cmd.model.search.nameHint": "Model names match exactly without wildcards; wildcards and the .tbl suffix are not added automatically.",
1463
1536
  "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.",
1464
1537
  "cli.cmd.model.show.summary": "Show model metadata summary.",
1465
- "cli.cmd.model.show.desc": "Show semantic model metadata summary.",
1538
+ "cli.cmd.model.show.desc": "Show semantic model metadata summary.\n\nUse a .tbl path returned by search for <model>. Use fields for columns and profile --json for full metadata and row counts. This command does not query model rows.",
1466
1539
  "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.",
1540
+ "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.\n\nRow counting accesses the data source and may be affected by permissions or connectivity. Check dataRowCount.value or errorInfo; missing or failed statistics are not zero. Use field-profile for field-level statistics.",
1468
1541
  "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.",
1542
+ "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.\n\nUse model fields to identify field paths first. For structure only, use --no-data, which cannot be combined with --data-property. Request only the statistics needed to reduce query cost.\n\nFor the full workflow, consult the guide below and confirm it applies to your CLI and server version.\n\nGuide: Explore model data\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/data/explore-model-data.md\nWeb: https://docs.succapp.com/ai-building/data/explore-model-data",
1470
1543
  "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
1544
  "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
1545
  "cli.cmd.model.fieldProfile.noData": "Do not scan field data; return semantic and dimension information only. Cannot be combined with --data-property.",
@@ -1474,14 +1547,14 @@
1474
1547
  "cli.cmd.model.fieldProfile.sampleLimit": "Maximum sampleValues entries. Defaults to 10; valid range is 1 to 50.",
1475
1548
  "cli.cmd.model.fieldProfile.dimensionAttributeDepth": "Dimension-attribute expansion depth. Defaults to 1; valid range is 0 to 3.",
1476
1549
  "cli.cmd.model.fields.summary": "List model fields.",
1477
- "cli.cmd.model.fields.desc": "List semantic model fields.",
1550
+ "cli.cmd.model.fields.desc": "List semantic model fields.\n\nUse a .tbl path returned by search. Base query field names on the returned field metadata; use field-profile when you need value distributions or statistics.",
1478
1551
  "cli.cmd.model.fields.all": "Include hidden fields and extended properties.",
1479
1552
  "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).",
1480
1553
  "cli.cmd.model.fields.dim": "Only list dimension-key fields.",
1481
1554
  "cli.cmd.model.fields.measure": "Only list measure fields.",
1482
1555
  "cli.cmd.model.fields.empty": "No matching fields found.",
1483
1556
  "cli.cmd.model.indexes.summary": "List model indexes.",
1484
- "cli.cmd.model.indexes.desc": "List primary keys, business keys, and model indexes.",
1557
+ "cli.cmd.model.indexes.desc": "List primary keys, business keys, and model indexes.\n\nUse a .tbl path returned by search. Results describe model key and index declarations; they do not verify data uniqueness. This command does not create or rebuild database indexes.",
1485
1558
  "cli.cmd.model.indexes.empty": "This model has no indexes.",
1486
1559
  "cli.cmd.model.*.select": "Select fields, separated by commas. Can be repeated.",
1487
1560
  "cli.cmd.model.*.maxRows": "Maximum preview row count.",
@@ -1489,20 +1562,21 @@
1489
1562
  "cli.cmd.model.*.queryFile": "Read Query DSL JSON from a file.",
1490
1563
  "cli.cmd.model.*.stdin": "Read Query DSL JSON from stdin.",
1491
1564
  "cli.cmd.model.select.summary": "Select rows from one model.",
1492
- "cli.cmd.model.select.desc": "Select rows from one .tbl model with SuccApp expression filters.",
1565
+ "cli.cmd.model.select.desc": "Select rows from one .tbl model with SuccApp expression filters.\n\nInspect fields first. --where accepts a SuccApp expression, not a complete SQL statement. --max-rows limits preview rows. Use query for aggregation or joins, and export to save CSV.\n\nThe accompanying server defaults to a 100-row preview with a 1000-row cap. Actual behavior depends on the target server and returned truncation information. Use the corresponding export command for full data.",
1493
1566
  "cli.cmd.model.select.where": "Filter expression, for example STATUS='ACTIVE'.",
1494
1567
  "cli.cmd.model.select.order": "Sort expression, for example CREATE_TIME desc.",
1495
1568
  "cli.cmd.model.select.limit": "Maximum returned row count.",
1496
1569
  "cli.cmd.model.query.summary": "Query models with Query DSL.",
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",
1570
+ "cli.cmd.model.query.desc": "Query one or more .tbl models with Query DSL JSON for aggregation or multi-model joins. This command runs a model query on the target server; it is not used to write model data.\n\nProvide exactly one of --query, --query-file, or --stdin. --max-rows must be an integer of at least 1. Results may be limited in row count and must not be assumed to contain all data.\n\nThe query JSON type is succ.meta.dw.Query in query.d.ts. Before writing a complex query, read the aggregation, multi-model query, and export sections in the guide below and consult the type definition. Check that these resources apply to your CLI and server versions; when offline, use an available matching manual.\n\nThe accompanying server defaults to a 100-row preview with a 1000-row cap. Actual behavior depends on the target server and returned truncation information. Use the corresponding export command for full data.\n\nDocumentation: Explore model data\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/data/explore-model-data.md\nWeb: https://docs.succapp.com/ai-building/data/explore-model-data\n\nType definition: succ.meta.dw.Query\nOnline: https://docs.succapp.com/dev-types/types/meta/file-types/query.d.ts\nLocal: .agents/skills/succapp-docs/dev-types/types/meta/file-types/query.d.ts",
1498
1571
  "cli.cmd.model.query.empty": "Query succeeded; 0 rows returned.",
1499
1572
  "cli.cmd.model.export.summary": "Export model query results as CSV.",
1500
- "cli.cmd.model.export.desc": "Export one model or Query DSL result as CSV.",
1573
+ "cli.cmd.model.export.desc": "Export one model or Query DSL result as CSV.\n\nChoose <model> or one Query DSL input (--query, --query-file, --stdin), and specify a local CSV with --output. --select, --where and --order apply to single-model mode. Overwriting an existing file requires --force. Query conditions, DSL limits and access permissions still apply.\n\nFor the full workflow, consult the guide below and confirm it applies to your CLI and server version.\n\nGuide: Explore model data\nMarkdown: https://docs.succapp.com/guide/dev/ai-building/data/explore-model-data.md\nWeb: https://docs.succapp.com/ai-building/data/explore-model-data",
1501
1574
  "cli.cmd.model.export.where": "Filter expression for single-model export.",
1502
1575
  "cli.cmd.model.export.order": "Sort expression for single-model export.",
1503
1576
  "cli.cmd.model.export.output": "Write CSV output to a local file.",
1504
1577
  "cli.cmd.model.export.force": "Overwrite the output file if it already exists.",
1505
1578
  "cli.cmd.model.export.exportedData": "Exported data to {0}",
1579
+ "cli.cmd.model.*.model": "A .tbl model path returned by model search, e.g. /DEMO/data/tables/customer.tbl.",
1506
1580
  "vs.cmd.title.addServer": "Add Server",
1507
1581
  "vs.cmd.title.useServer": "Use Server",
1508
1582
  "vs.cmd.title.loginServer": "Login Server",