@succsoft/succapp 5.0.2 → 5.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (21) hide show
  1. package/CHANGELOG.md +51 -193
  2. package/README.md +11 -0
  3. package/dist/cli/l10n/bundle.l10n.json +148 -22
  4. package/dist/cli/l10n/bundle.l10n.zh-cn.json +148 -22
  5. package/dist/cli/succapp.js +90 -83
  6. package/package.json +1 -1
  7. package/resources/contents.properties +8 -1
  8. package/resources/workspace-templates/succapp-workspace/.agents/README.md +3 -3
  9. package/resources/workspace-templates/succapp-workspace/.agents/gitignore.template +2 -0
  10. package/resources/workspace-templates/succapp-workspace/.agents/rules/workspace-rules.md +33 -92
  11. package/resources/workspace-templates/succapp-workspace/.succapp/gitignore.template +9 -0
  12. package/resources/workspace-templates/succapp-workspace/.succapp/tsconfig.action.json +12 -12
  13. package/resources/workspace-templates/succapp-workspace/.succapp/tsconfig.browser.json +13 -13
  14. package/resources/workspace-templates/succapp-workspace/.vscode/settings.typescript-support.jsonc +4 -1
  15. package/resources/workspace-templates/succapp-workspace/AGENTS.md +19 -35
  16. package/resources/workspace-templates/succapp-workspace/agent-workspace-template.jsonc +1 -3
  17. package/resources/workspace-templates/succapp-workspace/gitignore.template +7 -0
  18. package/resources/workspace-templates/succapp-workspace/.agents/skills/succbi-frontend-development/SKILL.md +0 -76
  19. /package/resources/workspace-templates/succapp-workspace/.agents/plans/{.gitignore → gitignore.template} +0 -0
  20. /package/resources/workspace-templates/succapp-workspace/.agents/reports/{.gitignore → gitignore.template} +0 -0
  21. /package/resources/workspace-templates/succapp-workspace/.agents/reviews/{.gitignore → gitignore.template} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,195 +1,53 @@
1
1
  # CHANGELOG
2
2
 
3
- ## 0.3.4(2021-04-15)
4
-
5
- - 修复下载进度条无法消失的问题
6
- - 简化进度条弹框
7
- - 修复同步树本地下载新增失败
8
- - 数据源配置校验
9
- - 本地项目下载比较json未格式化问题
10
- - 本地新增文件无法比较问题
11
- - 修复projects.exclude失效问题
12
- - 修复刚启动succapp时刷新同步树按钮失效问题
13
- - 修复同步树根目录点击下载失效问题
14
- - 修复日志打印异常问题
15
- - 修复本地没有.meta文件会报错的问题
16
- - 添加同步树目录节点的描述信息
17
- - 改善数据源本地文件命名大小写问题
18
-
19
- ## 0.3.3(2021-02-23)
20
-
21
- - 修复未授信https请求失败问题
22
-
23
- ## 0.3.2(2020-02-22)
24
-
25
- - 修改插件信息
26
-
27
- ## 0.3.1(2020-12-17)
28
-
29
- - 添加datasource模块
30
- - 同步忽略
31
- - .meta文件同步描述
32
- - 添加设置开关,控制自动编译,自动格式化,自动备份
33
- - 优化视图,仅当succapp工作目录显示同步和服务视图
34
-
35
- ## 0.3.0(2020-11-25)
36
-
37
- - 删除app模块
38
-
39
- ## 0.2.19(2020-09-21)
40
-
41
- - 修复集群负载均衡下API请求错误问题
42
- - 兼容旧版war包API接口
43
-
44
- ## 0.2.17,0.2.18(2020-09-18)
45
-
46
- - 修复无法加载项目文件
47
-
48
- ## 0.2.16(2020-08-14)
49
-
50
- - 修复插件在4.0产品20200812之后的版本无法登录使用问题
51
-
52
- ## 0.2.15(2020-01-13)
53
-
54
- - 修复关闭自动格式化不生效问题
55
-
56
- ## 0.2.14(2020-01-07)
57
-
58
- - 修复引用node_module模块报错导致无法打包问题
59
- - 启动过程增加try catch,便于查启动内部报错的问题
60
-
61
- ## 0.2.12, 0.2.13(2020-01-07)
62
-
63
- - 修复.js.map文件和图片文件无差别但仍显示有差异问题
64
- - 实现json的自动格式化,可在设置中配置是否启用,默认启用,格式化根据`editor.insertSpaces`设置方式为`Space`或`Tab`,根据`editor.tabSize`设置缩进数
65
-
66
- ## 0.2.11(2020-01-05)
67
-
68
- - 修复下载图片后不能打开问题
69
- - 调整初始化设置,使项目初始化后编译不报错且编译结果与服务器保持一致
70
-
71
- ## 0.2.7, 0.2.8, 0.2.9, 0.2.10(2019-11-28)
72
-
73
- - 调整插件服务端API,修复插件无法上传文件文件
74
-
75
- ## 0.2.6(2019-11-11)
76
-
77
- - 启动插件会检查是否存在api-libs.json文件,若不存在则自动下载api
78
- - 修复同步树上change数不会刷新问题
79
-
80
- ## 0.2.5(2019-11-09)
81
-
82
- - 修复服务器连接校验错误
83
-
84
- ## 0.2.4(2019-11-08)
85
-
86
- - 优化扩展模板下载
87
- - 新增服务器增加校验
88
- - 修复命令中文不生效问题
89
-
90
- ## 0.2.2, 0.2.3(2019-11-05)
91
-
92
- - 修复添加服务的一些bug
93
- - 新增api的下载入口
94
-
95
- ## 0.2.1(2019-11-04)
96
-
97
- - `SuccBI Server`视图改为只显示当前服务器,切换服务器提供选择框选择
98
- - 添加第一个服务器时自动作为当前服务器,后续添加不改变当前服务器
99
- - `SuccBI Synchronize`视图支持收起所有
100
- - 屏蔽一些不需要的命令并添加命令的中文标题配置
101
-
102
- ## 0.2.0(2019-11-01)
103
-
104
- - 插件更名为SuccApp,以前名为succADP-IDE
105
- - 视图改为`SuccBI Server`、`SuccBI Synchronize`,容器为`explorer`,以前是`修改待同步`、`持续同步`,自定义容器
106
- - 调整目录结构,compare、backup、temp等放在.vscode里
107
- - 新增日志文件,新增服务器备份、支持新增和删除的比较
108
- - 删除扩展发布功能,使用同步功能提交扩展,新增APP的同步
109
-
110
- ## 0.1.28(2019-09-26)
111
-
112
- - fix: 跟远程仓库同步之后无法查看文件修改差异
113
-
114
- ## 0.1.27(2019-09-23)
115
-
116
- - fix: 执行succ load project命令之后,点击“同步刷新”按钮,无法同步工程,没有显示新添加的文件
117
-
118
- ## 0.1.22(2019-08-05)
119
-
120
- - fix:更新api的时候报错:9:38:36 Error: EPERM: operation not permitted, mkdir 'd:/succezIDE/github/bds/com.succez.bds/api'
121
-
122
- ## 0.1.18(2019-07-20)
123
-
124
- - feat:启动插件时自动从服务器更新api文件。所以推荐启动插件之前服务器是启动的。如果没有启动,那么api目录将不会被更新。
125
-
126
- ## 0.1.16(2019-07-20)
127
-
128
- - feat:上传文件到服务器时改成串行提交,避免服务器报异常
129
-
130
- ## 0.1.12,0.1.13,0.1.14(2019-07-16)
131
-
132
- - feat:修改插件名字为succ-adp-ide,显示名为succADP-IDE。以前是叫succExtensionIDE
133
- - 解决ajax请求出现401错误时自动登录的问题
134
-
135
- ## 0.1.11(2019-07-15)
136
-
137
- - feat:如果服务器启动的是本地开发环境,那么从vscode发布文件到服务器不需要确认
138
-
139
- ## 0.1.9 , 0.1.10(2019-07-10)
140
-
141
- - fix:比较本地文件和服务器文件的修改时间时由于精度不同导致总是不相同。
142
-
143
- ## 0.1.8(2019-07-09)
144
-
145
- - 同步时如果session失效那么自动登录
146
- - 执行操作时如果服务器没有启动,那么显示明确的提示信息
147
-
148
- ## 0.1.7(2019-07-09)
149
-
150
- - 登录时输出日志,出现异常时也输出日志
151
-
152
- ## 0.1.6(2019-07-08)
153
-
154
- - 增加插件启动日志,当发现ts文件有变化时也会在控制台输出日志
155
-
156
- ## 0.1.1(2019-07-02)
157
-
158
- - 修复一些问题
159
- - 增加了部分文档
160
-
161
- ## 0.1.0(2019-06-11)
162
-
163
- - 支持元数据项目级别的元数据同步
164
- - ts编译结果从jss改为js
165
- - 支持打开项目就直接开始编译
166
- - 支持元数据app的持续上传
167
-
168
- ## 0.0.20(2019-04-11)
169
-
170
- - 支持在less中使用succ提供的默认less样式
171
-
172
- ## 0.0.18(2019-01-09)
173
-
174
- - 支持在扩展内部引用第三方js文件
175
- - 修复偶尔出现的不编译脚本的问题
176
-
177
- ## 0.0.15(2019-01-07)
178
-
179
- - 调整扩展目录结构
180
-
181
- ## 0.0.14(2019-01-05)
182
-
183
- - 修复删除文件不能正确同步的问题
184
-
185
- ## 0.0.13(2019-01-04)
186
-
187
- - 修复模板重命名的不正确的问题
188
-
189
- ## 0.0.12 (2019-01-04)
190
-
191
- - 修复一些提示内容
192
-
193
- ## 0.0.1 (2018-12-20)
194
-
195
- - 测试第一版发布
3
+ ## 5.0.5(2026-07-06)
4
+
5
+ - 新增 `succapp server file locate` 和 `succapp server file search`,支持按文件 id、路径、名称等条件定位和检索服务器文件。
6
+ - 新增 `succapp model` 命令组,支持模型列表、字段、索引、预览查询和导出,并统一 `model select`、`model query` 的 JSON 与文件输出。
7
+ - 新增 `succapp workspace file compile`,接入 Dev Tool V2 编译接口,用于在 CLI 中校验和编译本地工作区文件。
8
+ - 扩展 Dev Tool V2 客户端协议,补齐模型查询、文件搜索、文件编译、流式导出等接口声明和实现。
9
+ - 重构 CLI 参数解析为声明式参数契约,统一必填输入、互斥输入、输出文件、stdin 和 JSON 输出的校验与提示。
10
+ - 优化数据库查询/导出、服务器设置、工作区文件打开和锁等待等命令输出,进一步统一 SuccApp 命令命名和帮助文案。
11
+ - 将工作区开发支持资产迁移到文档 skill 维护,并收敛 `.agents` 系统目录边界,减少初始化和修复工作区时的重复写入。
12
+ - 修复同步写入后 mirror 内容基线不完整的问题,避免后续状态检测误判本地文件变化。
13
+ - 补充模型命令、工作区文件编译、服务器文件定位/搜索、CLI 参数解析、输出格式和同步基线相关单元测试与集成测试。
14
+
15
+ ## 5.0.4(2026-06-30)
16
+
17
+ - 新增 SuccApp CLI 版本更新检查,`succapp --version` 会检查 npm 包版本,并在命令完成后通过 stderr 给出低打扰升级提示。
18
+ - 支持按服务器版本线推荐配套 CLI 版本,避免旧服务器被默认引导升级到不兼容的新大版本。
19
+ - 调整 Dev Tool API 请求的 User-Agent 标识,区分 `SuccAppCLI` 与 `SuccAppForVSCode` 调用端,并保留 Node.js 明文 JSON 异常输出协议。
20
+ - 补充版本检查缓存目录、环境变量开关和单元测试,确保 JSON stdout 不被升级提示污染。
21
+
22
+ ## 5.0.3(2026-06-30)
23
+
24
+ - 发布 SuccApp CLI npm 包 `@succsoft/succapp@5.0.3`,并将 `latest` 指向该版本。
25
+ - 支持 SuccApp 官方离线文档 skill,完善 AI Agent 在 SuccApp 工作区内读取产品手册和开发规则的能力。
26
+ - 补充开发辅助资源和内容类型识别,完善低代码元数据和资源文件的本地开发体验。
27
+ - 修复 clone 不可见项目时的错误处理,提前返回结构化错误,避免后续同步流程继续执行。
28
+
29
+ ## 5.0.2(2026-06-28)
30
+
31
+ - 优化 SuccApp CLI 的命令提示风格,补充未知命令建议,降低命令输错后的排查成本。
32
+ - 改善 `workspace init`、`clone`、`auth status`、元数据升级提示等常用命令的人类可读输出。
33
+ - 支持 OAuth 登录入口,完善 CLI 服务信息、同步状态和系统信息展示。
34
+ - 增加 `workspace discard`、`workspace settings get/set` 等工作区命令,并统一无副作用预演参数为 `--dry-run`。
35
+ - 重组 SuccApp 元数据 TypeScript 声明目录,迁移 `.meta` 类型声明,补充移动端、样式、布局、资源类型和 MIME 类型定义。
36
+ - 简化 MCP 接口,完善 CLI、DevTool v2 和工作区同步能力之间的协议边界。
37
+
38
+ ## 5.0.1(2026-06-20)
39
+
40
+ - 首次将 SuccApp CLI 发布到 npm,包名为 `@succsoft/succapp`,命令名为 `succapp`。
41
+ - 重构 CLI 命令体系,补齐工作区、服务器连接、项目、文件、同步和辅助命令能力。
42
+ - 适配 DevTool v2 认证和服务端能力,接入本机认证、自动认证和结构化错误输出。
43
+ - 支持创建元数据项目,完善 CLI 与 VS Code 共享的工作区初始化、修复和同步流程。
44
+ - 增加 CLI 构建、测试和 release 脚本,发布时生成仅包含 CLI 运行所需文件的 npm staging 包。
45
+
46
+ ## 5.0.0(2026-06-20)
47
+
48
+ - 实现 SuccApp DevTools 5.0 基线,将原 SuccIDE 能力升级为面向低代码项目交付、二次开发和 AI 辅助开发的 SuccApp 工具。
49
+ - 重建 VS Code 扩展的服务器视图、Changes 视图、日志输出、diff、同步和项目管理体验。
50
+ - 引入本地 SuccApp 工作区模型,支持元数据项目识别、工作区初始化、服务器配置和前端开发框架配置。
51
+ - 优化 clone、fetch、pull、push、reset、apply remote changes 等同步流程,提高远端变化、本地变化和冲突识别能力。
52
+ - 增加跨进程 workspace 锁管理、文件锁、认证持久化和结构化错误模型,为 VS Code 扩展和 CLI 共用同一工作区打基础。
53
+ - 增强元数据 schema、类型声明、内容指纹、rename 检测和 inode 缓存能力,改善大批量元数据同步和比较性能。
package/README.md CHANGED
@@ -40,6 +40,17 @@ succapp workspace push <path>
40
40
 
41
41
  其中 `workspace push` 会写入服务器。推送前应先检查差异;生产服务器必须按团队发布流程确认。
42
42
 
43
+ 数据查询类命令分为预览和导出两类。预览命令只向 stdout 返回有限行数,导出命令必须写入本地文件:
44
+
45
+ ```bash
46
+ succapp db query default "select * from orders" --max-rows=100 --json
47
+ succapp db export default --query-file=./orders.sql --output=orders.csv
48
+ succapp model select /DEMO/data/tables/orders.tbl --select ID,NAME --max-rows=100 --json
49
+ succapp model query --query-file=./query.json --max-rows=100 --json
50
+ succapp model export /DEMO/data/tables/orders.tbl --select ID,NAME --output=orders.csv
51
+ succapp model export --query-file=./query.json --output=result.csv
52
+ ```
53
+
43
54
  ## SuccApp for VS Code / VS Code 工具
44
55
 
45
56
  SuccApp for VS Code 面向人工检查和交互式开发。它提供服务器视图、Changes 视图、文件历史、diff、脚本编辑、远端文件打开和 Git 协作入口,适合项目成员查看 AI 修改结果、处理冲突和执行需要人工确认的同步操作。
@@ -21,6 +21,7 @@
21
21
  "err.sync.conflict.desc": "Please pull or diff before pushing. Reason: {reason}",
22
22
  "err.sync.projectUnavailable": "Cannot {actionName} unavailable remote project(s): {paths}",
23
23
  "err.sync.projectUnavailable.desc": "Check the server, user, project permissions, and project name before retrying.",
24
+ "err.sync.projectUnavailable.hint": "Run 'succapp server project list' to see projects visible to the current login, then retry with an exact project name.",
24
25
  "err.sync.projectNotFound": "Workspace project does not exist: {projectNames}",
25
26
  "err.sync.projectRootRenameUnsupported": "Cannot {actionName} renamed remote project(s): {paths}",
26
27
  "err.sync.projectRootRenameUnsupported.desc": "Applying a project rename is not supported yet. Re-clone the renamed project or rename it locally to match.",
@@ -61,7 +62,7 @@
61
62
  "err.workspace.issue.E403": "AI agent workspace files are missing",
62
63
  "err.workspace.issue.E404": "TypeScript support files are missing",
63
64
  "err.workspace.issue.E405": "JSON Schema support files are missing",
64
- "err.workspace.issue.E406": "frontend development skill files are missing",
65
+ "err.workspace.issue.E407": "SuccApp docs skill files are missing",
65
66
  "err.lock.busy": "Cannot {attemptedCommand}: workspace scope {conflictScope} is held by another process.",
66
67
  "err.lock.busy.desc": "Stop the running process and retry; locks left by crashed processes are cleaned up automatically on the next attempt.",
67
68
  "err.lock.compromised": "Workspace lock was taken over by another process; the current {attemptedCommand} has been aborted.",
@@ -101,8 +102,7 @@
101
102
  "err.cli.invalidKeyValue.hint": "Use key=value.",
102
103
  "err.cli.invalidNonEmptyKeyValue": "Invalid key=value for {input}: {value}.",
103
104
  "err.cli.invalidNonEmptyKeyValue.hint": "Use key=value and keep key non-empty.",
104
- "err.cli.invalidJson": "Invalid JSON for {input}: {source}.",
105
- "err.cli.invalidJsonObject": "{input} must be a JSON object: {source}.",
105
+ "err.cli.invalidJsonObject": "{input} must be a valid JSON object: {source}.",
106
106
  "err.cli.invalidReadableFile": "Input file is not readable: {source}.",
107
107
  "err.cli.invalidRegularFile": "Input path is not a regular file: {source}.",
108
108
  "err.cli.invalidWorkspace": "Not a SuccApp workspace: {source}.",
@@ -133,6 +133,9 @@
133
133
  "err.cli.confirmationRequired.projRemove.hint": "Confirm the local project files and mirror baselines can be removed, then pass {flag}.",
134
134
  "err.cli.confirmationRequired.discardAll": "Discarding all workspace changes requires confirmation.",
135
135
  "err.cli.confirmationRequired.discardAll.hint": "Confirm all local workspace changes can be discarded, then pass {flag}.",
136
+ "err.cli.confirmationRequired.openLocalChanged": "The local workspace file has unpushed changes: {path}.",
137
+ "err.cli.confirmationRequired.openLocalChanged.desc": "The browser opens the server version, so it may show old content or 404 for a new file.",
138
+ "err.cli.confirmationRequired.openLocalChanged.hint": "Run 'succapp workspace push {path}' first, or pass {flag} to open the server page anyway.",
136
139
  "err.db.nonReadOnlySql": "db query only runs read-only SQL. Use db exec for SQL that may change data or schema.",
137
140
  "err.db.nonReadOnlySql.hint": "Review the SQL impact, then run 'succapp db exec {flag}'.",
138
141
  "err.net.httpStatusUnexpected": "Unexpected HTTP response status",
@@ -145,15 +148,20 @@
145
148
  "workspace.maintenance.progress.checkingAll": "Checking workspace",
146
149
  "workspace.maintenance.progress.blocked": "Blocked {0}.",
147
150
  "workspace.maintenance.progress.checked": "Checked {0}.",
148
- "workspace.maintenance.progress.checking": "Checking {0} ({1}/{2})",
151
+ "workspace.maintenance.progress.checking": "[{1}/{2}] Checking {0}",
149
152
  "workspace.maintenance.progress.failed": "Failed {0}.",
150
153
  "workspace.maintenance.progress.skipped": "Skipped {0}: {1}.",
151
154
  "workspace.maintenance.progress.skipReason": "skipped",
152
155
  "workspace.maintenance.progress.updated": "Updated {0}.",
153
156
  "workspace.maintenance.progress.updatingAll": "Updating workspace",
154
157
  "workspace.maintenance.progress.upToDate": "{0} is up to date.",
158
+ "workspace.maintenance.agentDocs.progress.assets": "checking assets",
159
+ "workspace.maintenance.agentDocs.progress.indexes": "fetching indexes",
160
+ "workspace.maintenance.agentDocs.progress.markdown": "checking markdown",
161
+ "workspace.maintenance.agentDocs.progress.metadata": "writing metadata",
155
162
  "workspace.maint.task.frontendDevelopmentSkill": "frontend development skill",
156
163
  "workspace.maint.task.jsonSchemaSupport": "JSON schema support",
164
+ "workspace.maint.task.succappDocsSkill": "SuccApp docs skill",
157
165
  "workspace.maint.task.syncBaseline": "sync baseline",
158
166
  "workspace.maint.task.typescriptSupport": "TypeScript support",
159
167
  "workspace.maint.task.workspaceAgentFiles": "workspace agent files",
@@ -200,20 +208,20 @@
200
208
  "cli.cmd.root.summary": "SuccApp command line interface.",
201
209
  "cli.host.localeFallback": "Locale {0} is not available; using default messages.",
202
210
  "cli.opt.help": "Show this help.",
203
- "cli.opt.json": "Write newline-delimited JSON output.",
211
+ "cli.opt.json": "Write NDJSON for scripts; content output uses Base64.",
204
212
  "cli.opt.locale": "Use the given locale for CLI messages.",
205
213
  "cli.opt.lockTimeout": "Wait for a workspace lock before failing.",
206
214
  "cli.opt.logLevel": "Set log level: trace, debug, info, warn, or error.",
207
215
  "cli.opt.quiet": "Suppress progress and informational output.",
208
- "cli.opt.server": "Select a server for commands that support it.",
216
+ "cli.opt.server": "Use the specified server for commands that support it.",
209
217
  "cli.opt.verbose": "Enable debug logging.",
210
- "cli.opt.version": "Show version information.",
218
+ "cli.opt.version": "Show version information and check for SuccApp CLI updates.",
211
219
  "cli.opt.workspace": "Run as if SuccApp was started in the given workspace.",
212
220
  "cli.cmd.auth.title": "Auth",
213
221
  "cli.cmd.auth.summary": "login, logout, and inspect stored server auth",
214
222
  "cli.cmd.auth.desc": "Login, logout, and inspect stored server auth.",
215
223
  "cli.cmd.auth.login.summary": "Login to a server.",
216
- "cli.cmd.auth.login.desc": "Login to a SuccBI server with OAuth2 or PAT and save local auth state.",
224
+ "cli.cmd.auth.login.desc": "Login to a SuccApp server with OAuth2 or PAT and save local auth state.",
217
225
  "cli.cmd.auth.login.oauth": "Use OAuth2 login. This is the default.",
218
226
  "cli.cmd.auth.login.pat": "Use Personal Access Token login. Interactive terminals prompt for the token; piped input is read from stdin.",
219
227
  "cli.cmd.auth.login.patPrompt": "Personal Access Token: ",
@@ -338,14 +346,17 @@
338
346
  "cli.cmd.db.export.force": "Overwrite the output file if it already exists.",
339
347
  "cli.cmd.db.export.exportedData": "Exported data to {0}",
340
348
  "cli.cmd.server.title": "Server",
341
- "cli.cmd.server.summary": "inspect and operate a SuccBI server",
342
- "cli.cmd.server.desc": "Inspect and operate a SuccBI server.",
349
+ "cli.cmd.server.summary": "inspect and operate the target SuccApp server",
350
+ "cli.cmd.server.desc": "Inspect and operate the target SuccApp server.",
343
351
  "cli.cmd.server.serverNotConfigured": "Server is not configured for this workspace: {0}",
344
352
  "cli.cmd.server.serverReachable": "Server reachable: {0}",
345
353
  "cli.cmd.server.ping.summary": "Check server reachability.",
346
354
  "cli.cmd.server.ping.desc": "Check whether the SuccApp Dev Tool v2 ping endpoint is reachable.",
347
355
  "cli.cmd.server.info.summary": "Show server information.",
348
356
  "cli.cmd.server.info.desc": "Show server information and metadata versions.",
357
+ "cli.cmd.server.info.scope": "Show only the selected scope. Repeat or use comma-separated values: product, sys, metadata, inspect, jvm, env, all.",
358
+ "cli.cmd.server.info.all": "Show all information scopes.",
359
+ "cli.cmd.server.info.raw": "Output the raw server detail response.",
349
360
  "cli.cmd.server.cache.title": "Server cache",
350
361
  "cli.cmd.server.cache.summary": "manage server cache",
351
362
  "cli.cmd.server.cache.desc": "Manage server cache.",
@@ -366,26 +377,38 @@
366
377
  "cli.cmd.server.file.desc": "Inspect and operate server metadata files.",
367
378
  "cli.cmd.server.file.badValue": "Invalid value for {0}: {1}",
368
379
  "cli.cmd.server.file.expectedRevRequired": "{0} requires --expected-revision=<n> unless --force is used.",
369
- "cli.cmd.server.file.file": "file",
370
380
  "cli.cmd.server.file.fileOrStdinConflict": "Use either --file or --stdin, not both.",
371
381
  "cli.cmd.server.file.files": "No files.",
372
- "cli.cmd.server.file.folder": "folder",
373
- "cli.cmd.server.file.id": "ID",
374
382
  "cli.cmd.server.file.inputPathRegular": "Input path is not a regular file: {0}",
375
383
  "cli.cmd.server.file.missingContentSource": "Missing content source. Use --file=<local-file> or --stdin.",
376
384
  "cli.cmd.server.file.missingServerFile": "Missing server file path.",
377
- "cli.cmd.server.file.modifyTime": "Modify time",
378
- "cli.cmd.server.file.name": "Name",
379
385
  "cli.cmd.server.file.revForceConflict": "{0} accepts either --expected-revision or --force, not both.",
380
- "cli.cmd.server.file.size": "Size",
381
386
  "cli.cmd.server.file.success": "{0} succeeded: {1}",
382
387
  "cli.cmd.server.file.unknownServerFile": "Unknown server file error.",
383
388
  "cli.cmd.server.file.list.summary": "List server files.",
384
389
  "cli.cmd.server.file.list.desc": "List direct children of a server metadata directory.",
390
+ "cli.cmd.server.file.search.summary": "Search server files.",
391
+ "cli.cmd.server.file.search.desc": "Search readable server metadata files by query, path, name, type, and size.",
392
+ "cli.cmd.server.file.search.path": "Search by full metadata path glob.",
393
+ "cli.cmd.server.file.search.name": "Search by file name glob.",
394
+ "cli.cmd.server.file.search.parentDir": "Search by parent directory glob.",
395
+ "cli.cmd.server.file.search.project": "Limit search to one project.",
396
+ "cli.cmd.server.file.search.type": "Limit search to metadata type. Repeat or use comma-separated values.",
397
+ "cli.cmd.server.file.search.subType": "Limit search to metadata subtype. Repeat or use comma-separated values.",
398
+ "cli.cmd.server.file.search.minSize": "Minimum original content size in bytes.",
399
+ "cli.cmd.server.file.search.maxSize": "Maximum original content size in bytes.",
400
+ "cli.cmd.server.file.search.limit": "Limit the number of returned files. Defaults to 50; maximum is 200.",
401
+ "cli.cmd.server.file.search.offset": "Skip this many matched files.",
402
+ "cli.cmd.server.file.search.includeFolders": "Include folders in the result.",
403
+ "cli.cmd.server.file.locate.summary": "Locate a server file by metadata ID.",
404
+ "cli.cmd.server.file.locate.desc": "Resolve a metadata ID to the current server file path.",
405
+ "cli.cmd.server.file.locate.url": "Only print the server view or edit URL.",
406
+ "cli.cmd.server.file.locate.viewUrl": "View URL: {0}",
407
+ "cli.cmd.server.file.locate.editUrl": "Edit URL: {0}",
385
408
  "cli.cmd.server.file.info.summary": "Show server file information.",
386
409
  "cli.cmd.server.file.info.desc": "Show server-side metadata for a file or directory.",
387
410
  "cli.cmd.server.file.show.summary": "Show server file content.",
388
- "cli.cmd.server.file.show.desc": "Write server file content to stdout.",
411
+ "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.",
389
412
  "cli.cmd.server.file.show.revision": "Read a server file revision.",
390
413
  "cli.cmd.server.file.show.upgradeContent": "Return upgraded metadata JSON content when supported.",
391
414
  "cli.cmd.server.file.download.summary": "Download server file content.",
@@ -459,9 +482,15 @@
459
482
  "cli.cmd.workspace.summary": "work with a local SuccApp workspace",
460
483
  "cli.cmd.workspace.desc": "Work with a local SuccApp workspace.",
461
484
  "cli.cmd.workspace.init.summary": "Initialize a SuccApp workspace.",
462
- "cli.cmd.workspace.init.desc": "Initialize .succapp/config.json and recommended workspace support files.",
485
+ "cli.cmd.workspace.init.desc": "Initialize .succapp/config.json, recommended workspace support files, and the optional offline SuccApp docs skill.",
463
486
  "cli.cmd.workspace.init.server": "Initialize the workspace with this active server.",
487
+ "cli.cmd.workspace.init.scope": "Limit initialization scope. Values: base, dev, agent-docs, all.",
488
+ "cli.cmd.workspace.init.force": "Force the offline SuccApp docs skill to check local files even when the index is unchanged.",
464
489
  "cli.cmd.workspace.init.active": "Active server: {0}",
490
+ "cli.cmd.workspace.init.agentDocsSummary": "SuccApp docs skill: {0} files, {1} added, {2} changed, {3} removed, {4} unchanged.",
491
+ "cli.cmd.workspace.init.agentDocsFileSkipped": "SuccApp docs skill: {0} markdown files skipped. See logs for details.",
492
+ "cli.cmd.workspace.init.agentDocsResourceSkipped": "SuccApp docs skill: {0} linked resources skipped. See logs for details.",
493
+ "cli.cmd.workspace.init.agentDocsUnavailable": "SuccApp docs skill: skipped because the docs index is unavailable. Set SUCCAPP_DOCS_BASE_URL to a local or staging docs site, or copy .agents/skills/succapp-docs/ from the delivery package or team repository.",
465
494
  "cli.cmd.workspace.init.alreadyActive": "Workspace is already initialized with active server: {0}. Use 'succapp workspace remote add <url>' or 'succapp workspace remote use <url>' to change servers.",
466
495
  "cli.cmd.workspace.init.configBad": "Workspace config is corrupted: {0}",
467
496
  "cli.cmd.workspace.init.initWorkspace": "Initialized workspace: {0}",
@@ -570,6 +599,8 @@
570
599
  "cli.cmd.workspace.file.open.summary": "Open the server file page.",
571
600
  "cli.cmd.workspace.file.open.desc": "Open the server view or edit page for a workspace file.",
572
601
  "cli.cmd.workspace.file.open.edit": "Open the server edit page.",
602
+ "cli.cmd.workspace.file.open.force": "Open the server page even when the local file has unpushed changes.",
603
+ "cli.cmd.workspace.file.open.localChangedForce": "The local file has unpushed changes. The browser opens the server version of {0}.",
573
604
  "cli.cmd.workspace.file.open.openedEdit": "Opened server edit page: {0}",
574
605
  "cli.cmd.workspace.file.open.openedView": "Opened server view page: {0}",
575
606
  "cli.cmd.workspace.file.show.summary": "Show file content.",
@@ -586,6 +617,11 @@
586
617
  "cli.cmd.workspace.file.history.summary": "Show server file history.",
587
618
  "cli.cmd.workspace.file.history.desc": "Show server-side file history for a workspace file.",
588
619
  "cli.cmd.workspace.file.history.limit": "Limit the number of history records.",
620
+ "cli.cmd.workspace.file.compile.summary": "Compile workspace metadata content on the server.",
621
+ "cli.cmd.workspace.file.compile.desc": "Send local workspace metadata content to the server for compile validation.",
622
+ "cli.cmd.workspace.file.compile.compiler": "Compiler",
623
+ "cli.cmd.workspace.file.compile.failed": "Failed files: {0}",
624
+ "cli.cmd.workspace.file.compile.result": "Metadata compile result: {0} file(s), {1} passed, {2} failed",
589
625
  "cli.cmd.workspace.file.upgrade.summary": "Upgrade old SuccApp metadata files.",
590
626
  "cli.cmd.workspace.file.upgrade.desc": "Preview or upgrade old SuccApp metadata files in local workspace projects. If no path is given, all local projects are processed.",
591
627
  "cli.cmd.workspace.file.upgrade.dryRun": "Preview upgrade candidates without changing files.",
@@ -619,7 +655,6 @@
619
655
  "cli.cmd.workspace.backup.desc": "Inspect and clear workspace backups.",
620
656
  "cli.cmd.workspace.backup.backupPath": "Backup path",
621
657
  "cli.cmd.workspace.backup.cleared": "Merge backup clear: {0} cleared, {1} remaining.",
622
- "cli.cmd.workspace.backup.size": "Size",
623
658
  "cli.cmd.workspace.backup.list.summary": "List saved merge backups.",
624
659
  "cli.cmd.workspace.backup.list.desc": "List local versions saved before pull conflict handling.",
625
660
  "cli.cmd.workspace.backup.clear.summary": "Clear saved merge backups.",
@@ -655,12 +690,51 @@
655
690
  "cli.out.common.product": "Product",
656
691
  "cli.out.common.productInfo": "Product information",
657
692
  "cli.out.common.server": "Server",
693
+ "cli.out.common.sysInfo": "System information",
658
694
  "cli.out.common.sysInspectInfo": "System diagnostics",
659
695
  "cli.out.common.systemEnvirInfo": "Environment variables",
660
696
  "cli.out.common.targetVersion": "Target version",
661
697
  "cli.out.common.version": "Current version",
662
698
  "cli.out.common.workspace": "Workspace",
663
699
  "cli.out.db.exists": "Output file already exists: {0}. Use --force to overwrite.",
700
+ "cli.out.file.createTime": "Create time",
701
+ "cli.out.file.creator": "Creator",
702
+ "cli.out.file.description": "Description",
703
+ "cli.out.file.file": "file",
704
+ "cli.out.file.folder": "folder",
705
+ "cli.out.file.hash": "Hash",
706
+ "cli.out.file.hidden": "Hidden",
707
+ "cli.out.file.icon": "Icon",
708
+ "cli.out.file.id": "ID",
709
+ "cli.out.file.kind": "Kind",
710
+ "cli.out.file.labels": "Labels",
711
+ "cli.out.file.modifier": "Modifier",
712
+ "cli.out.file.modifyTime": "Modify time",
713
+ "cli.out.file.name": "Name",
714
+ "cli.out.file.order": "Order",
715
+ "cli.out.file.parentDir": "Parent dir",
716
+ "cli.out.file.path": "Path",
717
+ "cli.out.file.project": "Project",
718
+ "cli.out.file.revision": "Revision",
719
+ "cli.out.file.size": "Size",
720
+ "cli.out.file.subFileType": "Subfile type",
721
+ "cli.out.file.type": "Type",
722
+ "cli.out.model.businessKeys": "Business keys",
723
+ "cli.out.model.dataType": "Data type",
724
+ "cli.out.model.dbField": "DB field",
725
+ "cli.out.model.dim": "Dim",
726
+ "cli.out.model.enabled": "Enabled",
727
+ "cli.out.model.extracted": "Extracted",
728
+ "cli.out.model.extractMode": "Extract mode",
729
+ "cli.out.model.fields": "Fields",
730
+ "cli.out.model.kind": "Kind",
731
+ "cli.out.model.primary": "Primary",
732
+ "cli.out.model.primaryKeys": "Primary keys",
733
+ "cli.out.model.targetTable": "Target table",
734
+ "cli.out.model.title": "Title",
735
+ "cli.out.model.type": "Model type",
736
+ "cli.out.model.unique": "Unique",
737
+ "cli.out.model.writable": "Writable",
664
738
  "cli.out.header.action": "Action",
665
739
  "cli.out.header.column": "Column",
666
740
  "cli.out.header.command": "Command",
@@ -672,6 +746,7 @@
672
746
  "cli.out.header.extra": "Extra",
673
747
  "cli.out.header.field": "Field",
674
748
  "cli.out.header.key": "Key",
749
+ "cli.out.header.kind": "Kind",
675
750
  "cli.out.header.latestVersion": "Latest version",
676
751
  "cli.out.header.message": "Message",
677
752
  "cli.out.header.metaType": "Metadata type",
@@ -703,6 +778,12 @@
703
778
  "cli.out.human.info": "info: {0}",
704
779
  "cli.out.human.seeLogs": "See logs: {0}",
705
780
  "cli.out.human.warning": "warning: {0}",
781
+ "cli.out.version.checking": "Checking SuccApp CLI version...",
782
+ "cli.out.version.serverIncompatible": "SuccApp CLI {0} may not be compatible with server {1}. Recommended CLI version: {2}. Run `{3}` to install a compatible version.",
783
+ "cli.out.version.serverNoCompatible": "No compatible SuccApp CLI version was found for server {0}. Do not upgrade to npm latest unless the server is upgraded.",
784
+ "cli.out.version.serverUpdateAvailable": "A newer SuccApp CLI is recommended for server {0}: {1}. Run `{2}` to upgrade.",
785
+ "cli.out.version.updateAvailable": "A newer SuccApp CLI is available: {0}. Run `{1}` to upgrade.",
786
+ "cli.out.version.upToDate": "SuccApp CLI is up to date.",
706
787
  "cli.out.server.file.download.exists": "Output file already exists: {0}. Use --force to overwrite.",
707
788
  "cli.out.server.file.exists": "Output file already exists: {0}. Use --force to overwrite.",
708
789
  "cli.out.server.file.needOutput": "Missing required option: --output=<local-file>.",
@@ -784,7 +865,7 @@
784
865
  "vs.cmd.misc.remoteFile.changeHaveRemote": "This change does not have a remote file to open.",
785
866
  "vs.cmd.misc.remoteFile.connectedServer": "Not connected to a server",
786
867
  "vs.cmd.misc.remoteFile.fileHaveRemote": "This file does not have a remote metadata record.",
787
- "vs.common.cannotAddingSucc": "Cannot {0} before adding a SuccBI server.",
868
+ "vs.common.cannotAddingSucc": "Cannot {0} before adding a SuccApp server.",
788
869
  "vs.common.connectContinue": "Connect to {0} to continue {1}.",
789
870
  "vs.common.createFolder": "Create Folder",
790
871
  "vs.common.createOrSelect": "Create or select a SuccApp workspace folder",
@@ -795,12 +876,12 @@
795
876
  "vs.common.showLogs": "Show Logs",
796
877
  "vs.common.succAppNeeds": "SuccApp needs a local workspace to save server configuration and cloned projects.",
797
878
  "vs.cmd.server.add.cloneProjects": "Clone Projects",
798
- "vs.cmd.server.add.enterSuccBi": "Enter SuccBI server URL",
879
+ "vs.cmd.server.add.enterSuccBi": "Enter SuccApp server URL",
799
880
  "vs.cmd.server.add.invalidUrl": "Please enter a valid URL",
800
881
  "vs.cmd.server.add.serverExists": "Server already exists",
801
882
  "vs.cmd.server.add.succAppAdd": "SuccApp: Add Server",
802
883
  "vs.cmd.server.changeUrl.action": "Change Server URL",
803
- "vs.cmd.server.changeUrl.enterNewSucc": "Enter new SuccBI server URL",
884
+ "vs.cmd.server.changeUrl.enterNewSucc": "Enter new SuccApp server URL",
804
885
  "vs.cmd.server.changeUrl.invalidUrl": "Please enter a valid URL",
805
886
  "vs.cmd.server.changeUrl.newServerUrl": "New server URL must be different from the current URL.",
806
887
  "vs.cmd.server.changeUrl.noServers": "No servers configured. Please add one first.",
@@ -1027,6 +1108,51 @@
1027
1108
  "vs.ui.workspaceProblem.showLogs": "Show Logs",
1028
1109
  "vs.ui.workspaceProblem.staleBaseline": "SuccApp detected a stale local sync baseline. See logs for details before changing the workspace.",
1029
1110
  "vs.ui.workspaceProblem.syncProblem": "SuccApp detected a workspace sync problem. See logs for details.",
1111
+ "cli.cmd.model.title": "Model",
1112
+ "cli.cmd.model.summary": "inspect and query semantic data models",
1113
+ "cli.cmd.model.desc": "Inspect and query SuccApp semantic data models.",
1114
+ "cli.cmd.model.list.summary": "List semantic models.",
1115
+ "cli.cmd.model.list.desc": "List visible .tbl semantic models.",
1116
+ "cli.cmd.model.list.project": "Filter models by project.",
1117
+ "cli.cmd.model.list.type": "Filter models by model type.",
1118
+ "cli.cmd.model.list.contains": "Filter models by text.",
1119
+ "cli.cmd.model.list.limit": "Maximum returned model count.",
1120
+ "cli.cmd.model.show.summary": "Show model metadata summary.",
1121
+ "cli.cmd.model.show.desc": "Show semantic model metadata summary.",
1122
+ "cli.cmd.model.show.detail": "Show detailed model summary.",
1123
+ "cli.cmd.model.fields.summary": "List model fields.",
1124
+ "cli.cmd.model.fields.desc": "List semantic model fields.",
1125
+ "cli.cmd.model.fields.all": "Include hidden fields and extended properties.",
1126
+ "cli.cmd.model.fields.contains": "Filter fields by name, title, or database field.",
1127
+ "cli.cmd.model.fields.dim": "Only list dimension-key fields.",
1128
+ "cli.cmd.model.fields.measure": "Only list measure fields.",
1129
+ "cli.cmd.model.indexes.summary": "List model indexes.",
1130
+ "cli.cmd.model.indexes.desc": "List primary keys, business keys, and model indexes.",
1131
+ "cli.cmd.model.select.summary": "Select rows from one model.",
1132
+ "cli.cmd.model.select.desc": "Select rows from one .tbl model with SuccApp expression filters.",
1133
+ "cli.cmd.model.select.select": "Select fields, separated by commas. Can be repeated.",
1134
+ "cli.cmd.model.select.where": "Filter expression, for example STATUS='ACTIVE'.",
1135
+ "cli.cmd.model.select.order": "Sort expression, for example CREATE_TIME desc.",
1136
+ "cli.cmd.model.select.limit": "Maximum returned row count.",
1137
+ "cli.cmd.model.select.maxRows": "Maximum preview row count.",
1138
+ "cli.cmd.model.query.summary": "Query models with Query DSL.",
1139
+ "cli.cmd.model.query.desc": "Query one or more .tbl models with Query DSL JSON.\n\nJSON type: succ.meta.dw.Query in query.d.ts.\nOnline DTS: https://docs.succapp.com/dev-types/types/meta/file-types/query.d.ts\nWorkspace DTS: .agents/skills/succapp-docs/dev-types/types/meta/file-types/query.d.ts",
1140
+ "cli.cmd.model.query.query": "Query DSL JSON.",
1141
+ "cli.cmd.model.query.queryFile": "Read Query DSL JSON from a file.",
1142
+ "cli.cmd.model.query.stdin": "Read Query DSL JSON from stdin.",
1143
+ "cli.cmd.model.query.maxRows": "Maximum preview row count.",
1144
+ "cli.cmd.model.query.empty": "Query executed successfully.",
1145
+ "cli.cmd.model.export.summary": "Export model query results as CSV.",
1146
+ "cli.cmd.model.export.desc": "Export one model or Query DSL result as CSV.",
1147
+ "cli.cmd.model.export.select": "Select fields, separated by commas. Can be repeated.",
1148
+ "cli.cmd.model.export.where": "Filter expression for single-model export.",
1149
+ "cli.cmd.model.export.order": "Sort expression for single-model export.",
1150
+ "cli.cmd.model.export.query": "Query DSL JSON.",
1151
+ "cli.cmd.model.export.queryFile": "Read Query DSL JSON from a file.",
1152
+ "cli.cmd.model.export.stdin": "Read Query DSL JSON from stdin.",
1153
+ "cli.cmd.model.export.output": "Write CSV output to a local file.",
1154
+ "cli.cmd.model.export.force": "Overwrite the output file if it already exists.",
1155
+ "cli.cmd.model.export.exportedData": "Exported data to {0}",
1030
1156
  "vs.cmd.title.addServer": "Add Server",
1031
1157
  "vs.cmd.title.useServer": "Use Server",
1032
1158
  "vs.cmd.title.loginServer": "Login Server",