speccore 8.3.348 → 8.3.349
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.
- package/dist/cli.js +4 -4
- package/dist/cli.js.map +1 -1
- package/dist/commands/deploy.d.ts +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +3 -3
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +15 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/update-env-configs.d.ts.map +1 -1
- package/dist/commands/update-env-configs.js +117 -71
- package/dist/commands/update-env-configs.js.map +1 -1
- package/dist/core/asset-stamp.d.ts +7 -4
- package/dist/core/asset-stamp.d.ts.map +1 -1
- package/dist/core/asset-stamp.js +9 -6
- package/dist/core/asset-stamp.js.map +1 -1
- package/dist/core/deploy/engine.js +12 -12
- package/dist/core/deploy/engine.js.map +1 -1
- package/package.json +1 -1
- package/templates/deploy-examples.yaml +6 -7
- package/templates/html/speccore-ask-guide.html +1 -1
- package/templates/html/speccore-ask-pipeline.html +1 -1
- package/templates/html/speccore-ask-result.html +1 -1
- package/templates/html/speccore-help.html +2 -2
package/dist/core/asset-stamp.js
CHANGED
|
@@ -48,11 +48,14 @@ function readAssetStamp(content) {
|
|
|
48
48
|
* 1. 内容完全相同 → skip(幂等,不产生备份噪音)
|
|
49
49
|
* 2. 剥戳后与内置一致 → restamp(8.3.314 及以前生成的无戳同内容文件,
|
|
50
50
|
* 直接补戳进入版本戳体系;内容零变化,无需备份)
|
|
51
|
-
* 3. 有版本戳 → CLI 生成物:同版本 skip(用户改过也保留),旧戳
|
|
52
|
-
*
|
|
51
|
+
* 3. 有版本戳 → CLI 生成物:同版本 skip(用户改过也保留),旧戳 overwrite
|
|
52
|
+
* (v8.3.349+: 带戳即可确定是 CLI 生成物,直接覆盖不备份——备份只会
|
|
53
|
+
* 堆积时间戳文件;用户自定义应走 _TEMPLATE 或新文件而非改内置角色)
|
|
54
|
+
* 4. 无戳 → 交给 isLegacy 特征判定:旧版特征命中 refresh(特征检测有误判
|
|
55
|
+
* 可能,保留备份保底),否则视为用户自定义 skip
|
|
53
56
|
*
|
|
54
57
|
* @param isLegacy 旧版 CLI 生成物的特征判定(无戳时兜底),如旧版角色缺 systemPrompt
|
|
55
|
-
* @returns 'refresh' 备份刷新 | 'restamp' 直接补戳 | 'skip' 保留现有
|
|
58
|
+
* @returns 'overwrite' 直接覆盖 | 'refresh' 备份刷新 | 'restamp' 直接补戳 | 'skip' 保留现有
|
|
56
59
|
*/
|
|
57
60
|
function decideStampedSync(existingContent, builtinContent, isLegacy) {
|
|
58
61
|
if (existingContent === builtinContent)
|
|
@@ -61,10 +64,10 @@ function decideStampedSync(existingContent, builtinContent, isLegacy) {
|
|
|
61
64
|
return 'restamp';
|
|
62
65
|
const existingStamp = readAssetStamp(existingContent);
|
|
63
66
|
if (existingStamp) {
|
|
64
|
-
// 有版本戳 → 是 CLI
|
|
65
|
-
return existingStamp === package_json_1.version ? 'skip' : '
|
|
67
|
+
// 有版本戳 → 是 CLI 生成物:旧戳直接覆盖(v8.3.349+ 不再备份),同版本跳过
|
|
68
|
+
return existingStamp === package_json_1.version ? 'skip' : 'overwrite';
|
|
66
69
|
}
|
|
67
|
-
// 无戳:旧版 CLI 生成(命中旧版特征)→
|
|
70
|
+
// 无戳:旧版 CLI 生成(命中旧版特征)→ 备份刷新;否则视为用户自定义 → 保留
|
|
68
71
|
return isLegacy(existingContent) ? 'refresh' : 'skip';
|
|
69
72
|
}
|
|
70
73
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset-stamp.js","sourceRoot":"","sources":["../../src/core/asset-stamp.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;AAQH,oCAWC;AAGD,wCAGC;
|
|
1
|
+
{"version":3,"file":"asset-stamp.js","sourceRoot":"","sources":["../../src/core/asset-stamp.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;AAQH,oCAWC;AAGD,wCAGC;AAoBD,8CAcC;AAMD,0CAEC;AAjED,qDAA4D;AAE5D,uDAAuD;AACvD,MAAM,aAAa,GAAG,oDAAoD,CAAC;AAE3E,qCAAqC;AACrC,SAAgB,YAAY,CAAC,OAAe;IAC1C,MAAM,KAAK,GAAG,gCAAgC,sBAAW,MAAM,CAAC;IAChE,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IACD,iDAAiD;IACjD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC3D,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,KAAK,GAAG,IAAI,GAAG,OAAO,CAAC;AAChC,CAAC;AAED,4BAA4B;AAC5B,SAAgB,cAAc,CAAC,OAAe;IAC5C,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACvC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,iBAAiB,CAC/B,eAAuB,EACvB,cAAsB,EACtB,QAAuC;IAEvC,IAAI,eAAe,KAAK,cAAc;QAAE,OAAO,MAAM,CAAC;IACtD,IAAI,eAAe,CAAC,cAAc,CAAC,KAAK,eAAe;QAAE,OAAO,SAAS,CAAC;IAC1E,MAAM,aAAa,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;IACtD,IAAI,aAAa,EAAE,CAAC;QAClB,gDAAgD;QAChD,OAAO,aAAa,KAAK,sBAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;IAC9D,CAAC;IACD,4CAA4C;IAC5C,OAAO,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAAC,OAAe;IAC7C,OAAO,OAAO,CAAC,OAAO,CAAC,wDAAwD,EAAE,EAAE,CAAC,CAAC;AACvF,CAAC"}
|
|
@@ -78,13 +78,13 @@ async function deployPlatform(platform, env, options) {
|
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
// 2. 按类型执行
|
|
81
|
+
// 备份开关优先级:CLI 参数(--backup/--no-backup)> 部署配置 backup 字段 > 默认开启
|
|
82
|
+
const backupEnabled = options.backup ?? deployConfig.backup ?? true;
|
|
81
83
|
if (options.dryRun) {
|
|
82
84
|
logger_1.logger.info(` [DRY-RUN] 将执行 ${deployConfig.type} 部署`);
|
|
83
|
-
await previewDeploy(platform, env, deployConfig);
|
|
85
|
+
await previewDeploy(platform, env, deployConfig, backupEnabled);
|
|
84
86
|
}
|
|
85
87
|
else {
|
|
86
|
-
// 备份开关优先级:CLI 参数(--backup/--no-backup)> 部署配置 backup 字段 > 默认关闭
|
|
87
|
-
const backupEnabled = options.backup ?? deployConfig.backup ?? false;
|
|
88
88
|
await executeDeploy(platform, env, deployConfig, options.skipBuild, backupEnabled);
|
|
89
89
|
}
|
|
90
90
|
// 3. 后置命令
|
|
@@ -123,7 +123,7 @@ async function deployPlatform(platform, env, options) {
|
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
// ── 执行部署 ──
|
|
126
|
-
async function executeDeploy(platform, env, config, skipBuild = false, backup =
|
|
126
|
+
async function executeDeploy(platform, env, config, skipBuild = false, backup = true) {
|
|
127
127
|
const projectRoot = (0, task_utils_1.findProjectRoot)() || process.cwd();
|
|
128
128
|
const cwd = platform.code_path
|
|
129
129
|
? ((0, path_1.isAbsolute)(platform.code_path) ? platform.code_path : (0, path_1.join)(projectRoot, platform.code_path))
|
|
@@ -164,7 +164,7 @@ async function executeDeploy(platform, env, config, skipBuild = false, backup =
|
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
166
|
// ── 预览模式 ──
|
|
167
|
-
async function previewDeploy(platform, env, config) {
|
|
167
|
+
async function previewDeploy(platform, env, config, backupEnabled) {
|
|
168
168
|
logger_1.logger.info(` 端: ${platform.name}`);
|
|
169
169
|
logger_1.logger.info(` 环境: ${env}`);
|
|
170
170
|
logger_1.logger.info(` 类型: ${config.type}`);
|
|
@@ -194,15 +194,15 @@ async function previewDeploy(platform, env, config) {
|
|
|
194
194
|
logger_1.logger.info(` 前置: ${config.pre_deploy.join(', ')}`);
|
|
195
195
|
if (config.post_deploy)
|
|
196
196
|
logger_1.logger.info(` 后置: ${config.post_deploy.join(', ')}`);
|
|
197
|
-
if (
|
|
198
|
-
logger_1.logger.info(` 备份:
|
|
197
|
+
if ((config.type === 'ssh' || config.type === 'docker')) {
|
|
198
|
+
logger_1.logger.info(` 备份: ${backupEnabled ? `开启(保留最近 ${config.backup_keep ?? 5} 份)` : '关闭(--no-backup 或配置 backup: false)'}`);
|
|
199
199
|
}
|
|
200
200
|
}
|
|
201
201
|
// ═══════════════════════════════════════════════════════════
|
|
202
202
|
// 各策略实现
|
|
203
203
|
// ═══════════════════════════════════════════════════════════
|
|
204
204
|
/** Docker 部署 */
|
|
205
|
-
async function deployDocker(platform, env, config, cwd, skipBuild = false, backup =
|
|
205
|
+
async function deployDocker(platform, env, config, cwd, skipBuild = false, backup = true) {
|
|
206
206
|
const imageName = config.image || platform.name;
|
|
207
207
|
const tag = config.tag || env;
|
|
208
208
|
const dockerfile = config.dockerfile || './Dockerfile';
|
|
@@ -228,7 +228,7 @@ async function deployDocker(platform, env, config, cwd, skipBuild = false, backu
|
|
|
228
228
|
}
|
|
229
229
|
}
|
|
230
230
|
/** Docker 远程部署:SSH 执行 pull && run(备份在 pull 之前:pull 会覆盖同名 tag) */
|
|
231
|
-
async function deployDockerRemote(config, cwd, fullImage, imageName, backup =
|
|
231
|
+
async function deployDockerRemote(config, cwd, fullImage, imageName, backup = true, tag = 'latest') {
|
|
232
232
|
if (!config.registry) {
|
|
233
233
|
logger_1.logger.warn(` ⚠️ 配置了 host 但未配置 registry,远程服务器可能无法获取镜像。\n` +
|
|
234
234
|
` 建议:配置 registry 字段,或使用 docker save + ssh 传输镜像。`);
|
|
@@ -259,7 +259,7 @@ async function deployDockerRemote(config, cwd, fullImage, imageName, backup = fa
|
|
|
259
259
|
// 必须在 pull 之前执行——pull 会把同名 tag 指向新镜像,旧镜像靠备份 tag 保命。
|
|
260
260
|
if (backup) {
|
|
261
261
|
const keep = config.backup_keep ?? 5;
|
|
262
|
-
const backupCmd = `(docker inspect '${fullImage}' >/dev/null 2>&1 && docker tag '${fullImage}' '${fullImage}.bak-$(date +%Y
|
|
262
|
+
const backupCmd = `(docker inspect '${fullImage}' >/dev/null 2>&1 && docker tag '${fullImage}' '${fullImage}.bak-$(date +%Y-%m-%d_%H-%M-%S)' || true) && ` +
|
|
263
263
|
`(docker images '${imageName}' --format '{{.Tag}}' | grep -F '${tag}.bak-' | sort | head -n -${keep} | xargs -r -I{} docker rmi '${imageName}:{}' || true)`;
|
|
264
264
|
logger_1.logger.info(` 💾 备份远端旧镜像 tag(保留最近 ${keep} 份)`);
|
|
265
265
|
if (sshpass) {
|
|
@@ -339,7 +339,7 @@ async function deployK8s(platform, env, config, cwd) {
|
|
|
339
339
|
runFile('kubectl', ['apply', '-f', manifest, '-n', namespace], cwd);
|
|
340
340
|
}
|
|
341
341
|
/** SSH 部署:SCP 上传 + SSH 执行命令 */
|
|
342
|
-
async function deploySsh(platform, env, config, cwd, skipBuild, backup =
|
|
342
|
+
async function deploySsh(platform, env, config, cwd, skipBuild, backup = true) {
|
|
343
343
|
if (!config.host) {
|
|
344
344
|
throw new Error('ssh 类型部署必须配置 host 字段(格式: user@host:port)');
|
|
345
345
|
}
|
|
@@ -375,7 +375,7 @@ async function deploySsh(platform, env, config, cwd, skipBuild, backup = false)
|
|
|
375
375
|
// 1.5 部署前备份远端旧包(v8.3.348+):SCP 覆盖前远端 tar 打包 + 清理超出保留份数的旧备份
|
|
376
376
|
if (backup) {
|
|
377
377
|
const keep = config.backup_keep ?? 5;
|
|
378
|
-
const ts = 'bak-$(date +%Y
|
|
378
|
+
const ts = 'bak-$(date +%Y-%m-%d_%H-%M-%S)';
|
|
379
379
|
const backupCmd = `if [ -d '${remoteDir}' ]; then ` +
|
|
380
380
|
`tar -czf '${remoteDir}.${ts}.tar.gz' -C "$(dirname '${remoteDir}')" "$(basename '${remoteDir}')" && ` +
|
|
381
381
|
`ls -1t '${remoteDir}'.bak-*.tar.gz 2>/dev/null | tail -n +${keep + 1} | xargs rm -f; fi`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/core/deploy/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/core/deploy/engine.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAgDH,8CAUC;AAGD,wCAkFC;AA7ID,iDAAuD;AACvD,+BAAgC;AAChC,uCAA8D;AAC9D,+BAAwC;AACxC,+CAAqD;AAErD,uDAAyD;AAEzD;;;;GAIG;AACH,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,IAAc,EAAE,GAAW,EAAQ,EAAE;IAClE,IAAA,4BAAY,EAAC,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;AACtD,CAAC,CAAC;AAqBF;;;;;;;;;GASG;AACI,KAAK,UAAU,iBAAiB,CAAC,UAAkB,EAAE,GAAW;IACrE,IAAI,IAAA,iBAAU,EAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IAC9C,MAAM,KAAK,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACpC,IAAI,MAAM,IAAA,qBAAU,EAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,WAAW,GAAG,IAAA,4BAAe,GAAE,CAAC;IACtC,IAAI,WAAW,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAC7C,IAAI,MAAM,IAAA,qBAAU,EAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,YAAY;AACL,KAAK,UAAU,cAAc,CAClC,QAAwB,EACxB,GAAW,EACX,OAAsB;IAEtB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;IAE5C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,GAAG;YACH,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,MAAM,QAAQ,CAAC,IAAI,SAAS,GAAG,cAAc;YACtD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,gBAAO,CACzB,QAAQ,QAAQ,CAAC,IAAI,MAAM,GAAG,KAAK,YAAY,CAAC,IAAI,MAAM,CAC3D,CAAC;IACF,OAAO,CAAC,KAAK,EAAE,CAAC;IAEhB,IAAI,CAAC;QACH,UAAU;QACV,IAAI,YAAY,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC/C,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;gBAC1C,eAAM,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;gBAC/B,MAAM,WAAW,GAAG,IAAA,4BAAe,GAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBACvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS;oBACjC,CAAC,CAAC,CAAC,IAAA,iBAAU,EAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,WAAI,EAAC,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;oBAC/F,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBAClB,IAAA,wBAAQ,EAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,WAAW;QACX,8DAA8D;QAC9D,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC;QACpE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,eAAM,CAAC,IAAI,CAAC,mBAAmB,YAAY,CAAC,IAAI,KAAK,CAAC,CAAC;YACvD,MAAM,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,MAAM,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACrF,CAAC;QAED,UAAU;QACV,IAAI,YAAY,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAChD,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC3C,eAAM,CAAC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC;gBAChC,MAAM,WAAW,GAAG,IAAA,4BAAe,GAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBACvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS;oBACjC,CAAC,CAAC,CAAC,IAAA,iBAAU,EAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,WAAI,EAAC,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;oBAC/F,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBAClB,IAAA,wBAAQ,EAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QACpC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,GAAG;YACH,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,QAAQ;YACR,OAAO,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;SACnD,CAAC;IACJ,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QACpC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,GAAG;YACH,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,QAAQ;YACR,OAAO,EAAE,SAAS,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE;SACnC,CAAC;IACJ,CAAC;AACH,CAAC;AAED,aAAa;AACb,KAAK,UAAU,aAAa,CAC1B,QAAwB,EACxB,GAAW,EACX,MAAuB,EACvB,YAAqB,KAAK,EAC1B,SAAkB,IAAI;IAEtB,MAAM,WAAW,GAAG,IAAA,4BAAe,GAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACvD,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS;QAC5B,CAAC,CAAC,CAAC,IAAA,iBAAU,EAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,WAAI,EAAC,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC/F,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IAElB,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,QAAQ;YACX,MAAM,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YAC1D,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAC/C,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAC/C,MAAM;QACR,KAAK,KAAK;YACR,MAAM,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAC5C,MAAM;QACR,KAAK,KAAK;YACR,MAAM,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAC/D,MAAM;QACR,KAAK,MAAM;YACT,MAAM,UAAU,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAC7C,MAAM;QACR,KAAK,KAAK;YACR,MAAM,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YACvD,MAAM;QACR,KAAK,YAAY;YACf,MAAM,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YACnD,MAAM;QACR,KAAK,MAAM;YACT,MAAM,UAAU,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YACxD,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,aAAa,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,aAAa;AACb,KAAK,UAAU,aAAa,CAC1B,QAAwB,EACxB,GAAW,EACX,MAAuB,EACvB,aAAsB;IAEtB,eAAM,CAAC,IAAI,CAAC,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,eAAM,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;IAC5B,eAAM,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,IAAI,MAAM,CAAC,SAAS;QAAE,eAAM,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAC/D,IAAI,MAAM,CAAC,UAAU;QAAE,eAAM,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IACjE,IAAI,MAAM,CAAC,QAAQ;QAAE,eAAM,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7D,IAAI,MAAM,CAAC,KAAK;QAAE,eAAM,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,IAAI,QAAQ,EAAE,CAAC,CAAC;IACjF,IAAI,MAAM,CAAC,MAAM;QAAE,eAAM,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,IAAI,MAAM,CAAC,MAAM;QAAE,eAAM,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,IAAI,MAAM,CAAC,IAAI;QAAE,eAAM,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACrD,IAAI,MAAM,CAAC,GAAG;QAAE,eAAM,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IACnD,IAAI,MAAM,CAAC,UAAU;QAAE,eAAM,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IACnE,IAAI,MAAM,CAAC,UAAU;QAAE,eAAM,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IACpE,IAAI,MAAM,CAAC,QAAQ;QAAE,eAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,IAAI,MAAM,CAAC,UAAU;QAAE,eAAM,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5E,IAAI,MAAM,CAAC,WAAW;QAAE,eAAM,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9E,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;QACxD,eAAM,CAAC,IAAI,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,mCAAmC,EAAE,CAAC,CAAC;IACxH,CAAC;AACH,CAAC;AAED,8DAA8D;AAC9D,QAAQ;AACR,8DAA8D;AAE9D,gBAAgB;AAChB,KAAK,UAAU,YAAY,CACzB,QAAwB,EACxB,GAAW,EACX,MAAuB,EACvB,GAAW,EACX,YAAqB,KAAK,EAC1B,SAAkB,IAAI;IAEtB,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC;IAChD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC;IAC9B,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,cAAc,CAAC;IACvD,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ;QAC/B,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,IAAI,SAAS,IAAI,GAAG,EAAE;QAC1C,CAAC,CAAC,GAAG,SAAS,IAAI,GAAG,EAAE,CAAC;IAE1B,0BAA0B;IAC1B,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACnC,eAAM,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC9C,IAAA,wBAAQ,EAAC,MAAM,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,eAAe;IACf,eAAM,CAAC,IAAI,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAE1E,WAAW;IACX,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,eAAM,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,aAAa;IACb,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,iEAAiE;AACjE,KAAK,UAAU,kBAAkB,CAC/B,MAAuB,EACvB,GAAW,EACX,SAAiB,EACjB,SAAiB,EACjB,SAAkB,IAAI,EACtB,MAAc,QAAQ;IAEtB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,eAAM,CAAC,IAAI,CACT,8CAA8C;YAC9C,oDAAoD,CACrD,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAK,CAAC;IAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAErD,oDAAoD;IACpD,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,IAAA,wBAAQ,EAAC,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACb,oBAAoB;gBACpB,iCAAiC;gBACjC,4CAA4C;gBAC5C,2BAA2B,CAC5B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,MAAM,gBAAgB,GACpB,eAAe,SAAS,MAAM;QAC9B,gBAAgB,SAAS,2BAA2B;QACpD,cAAc,SAAS,2BAA2B;QAClD,wBAAwB,SAAS,qBAAqB,SAAS,EAAE,CAAC;IAEpE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,IAAI,gBAAgB,CAAC;IAEpD,gDAAgD;IAChD,oDAAoD;IACpD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;QACrC,MAAM,SAAS,GACb,oBAAoB,SAAS,oCAAoC,SAAS,MAAM,SAAS,+CAA+C;YACxI,mBAAmB,SAAS,oCAAoC,GAAG,4BAA4B,IAAI,gCAAgC,SAAS,eAAe,CAAC;QAC9J,eAAM,CAAC,IAAI,CAAC,yBAAyB,IAAI,KAAK,CAAC,CAAC;QAChD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,eAAM,CAAC,IAAI,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;IAC1C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,aAAa;AACb,KAAK,UAAU,YAAY,CACzB,QAAwB,EACxB,GAAW,EACX,MAAuB,EACvB,GAAW,EACX,SAAkB;IAElB,QAAQ;IACR,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACnC,eAAM,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC5C,IAAA,wBAAQ,EAAC,MAAM,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,WAAW;IACX,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC;IAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAE7B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,eAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,eAAM,CAAC,IAAI,CAAC,gBAAgB,SAAS,MAAM,MAAM,EAAE,CAAC,CAAC;IAErD,iBAAiB;IACjB,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC;SAAM,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACjE,aAAa;QACb,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,SAAS,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;IACvE,CAAC;SAAM,CAAC;QACN,8CAA8C;QAC9C,MAAM,UAAU,GAAG,IAAA,iBAAU,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAA,WAAI,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACnE,IAAA,uBAAY,EAAC,UAAU,CAAC,CAAC;QACzB,IAAA,mBAAQ,EAAC,IAAA,WAAI,EAAC,GAAG,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,WAAW;AACX,KAAK,UAAU,YAAY,CACzB,QAAwB,EACxB,GAAW,EACX,MAAuB,EACvB,GAAW;IAEX,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,eAAM,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAE3C,+CAA+C;IAC/C,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/D,IAAI,MAAM,IAAA,qBAAU,EAAC,UAAU,CAAC,EAAE,CAAC;QACjC,gDAAgD;QAChD,IAAA,wBAAQ,EAAC,UAAU,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,IAAA,wBAAQ,EAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,gBAAgB;AAChB,KAAK,UAAU,YAAY,CACzB,QAAwB,EACxB,GAAW,EACX,MAAuB,EACvB,GAAW;IAEX,MAAM,OAAO,GAAG,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,eAAM,CAAC,IAAI,CAAC,mBAAmB,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1E,CAAC;AAED,aAAa;AACb,KAAK,UAAU,SAAS,CACtB,QAAwB,EACxB,GAAW,EACX,MAAuB,EACvB,GAAW;IAEX,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC;IAC7C,yEAAyE;IACzE,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,MAAM,IAAI,qBAAqB,EAAE,GAAG,CAAC,CAAC;IAEtF,eAAM,CAAC,IAAI,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;AACtE,CAAC;AAED,+BAA+B;AAC/B,KAAK,UAAU,SAAS,CACtB,QAAwB,EACxB,GAAW,EACX,MAAuB,EACvB,GAAW,EACX,SAAkB,EAClB,SAAkB,IAAI;IAEtB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,IAAI,iBAAiB,QAAQ,CAAC,IAAI,EAAE,CAAC;IAExE,6BAA6B;IAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,oBAAoB,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE1C,uDAAuD;IACvD,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,IAAA,wBAAQ,EAAC,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACb,oBAAoB;gBACpB,iCAAiC;gBACjC,4CAA4C;gBAC5C,2BAA2B,CAC5B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,QAAQ;IACR,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACnC,eAAM,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC5C,IAAA,wBAAQ,EAAC,MAAM,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,2DAA2D;IAC3D,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;QACrC,MAAM,EAAE,GAAG,gCAAgC,CAAC;QAC5C,MAAM,SAAS,GACb,YAAY,SAAS,YAAY;YACjC,aAAa,SAAS,IAAI,EAAE,2BAA2B,SAAS,oBAAoB,SAAS,SAAS;YACtG,WAAW,SAAS,yCAAyC,IAAI,GAAG,CAAC,oBAAoB,CAAC;QAC5F,eAAM,CAAC,IAAI,CAAC,gBAAgB,SAAS,SAAS,IAAI,KAAK,CAAC,CAAC;QACzD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,IAAI,QAAQ,EAAE,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7G,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,IAAI,QAAQ,EAAE,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC;IAC9C,eAAM,CAAC,IAAI,CAAC,gBAAgB,SAAS,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,IAAA,eAAQ,EAAC,GAAG,SAAS,IAAI,CAAC,CAAC;IAC5C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,sBAAsB;IAClF,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,IAAI,QAAQ,IAAI,SAAS,GAAG,CAAC,CAAC;IAClG,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,wCAAwC;IACxC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,IAAI,0BAA0B,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC9E,eAAM,CAAC,IAAI,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,IAAI,QAAQ,EAAE,EAAE,MAAM,SAAS,OAAO,UAAU,EAAE,CAAC,CAAC;IACrG,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,cAAc;AACd,KAAK,UAAU,UAAU,CACvB,QAAwB,EACxB,GAAW,EACX,MAAuB,EACvB,GAAW;IAEX,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,UAAU,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzD,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;IAClC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,UAAU,GAAG,OAAO,CAAC;IAE7D,eAAM,CAAC,IAAI,CAAC,wBAAwB,WAAW,eAAe,SAAS,EAAE,CAAC,CAAC;IAE3E,2DAA2D;IAC3D,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,CAAC,MAAM,IAAA,qBAAU,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE3E,OAAO,CACL,MAAM,EACN,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,oBAAoB,EAAE,GAAG,SAAS,CAAC,EAC1G,GAAG,CACJ,CAAC;AACJ,CAAC;AAED,0BAA0B;AAC1B,KAAK,UAAU,SAAS,CACtB,QAAwB,EACxB,GAAW,EACX,MAAuB,EACvB,GAAW,EACX,SAAkB;IAElB,QAAQ;IACR,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACnC,eAAM,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC5C,IAAA,wBAAQ,EAAC,MAAM,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,IAAI,qBAAqB,CAAC;IAC7D,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC;IAC3C,sEAAsE;IACtE,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAE9D,0DAA0D;IAC1D,eAAM,CAAC,IAAI,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,IAAA,WAAI,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;IAErF,wBAAwB;IACxB,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,IAAI,iBAAiB,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxE,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,eAAM,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9C,OAAO,CACL,KAAK,EACL,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,SAAS,gDAAgD,GAAG,EAAE,CAAC,EAC/F,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC;AAED,yBAAyB;AACzB,KAAK,UAAU,gBAAgB,CAC7B,QAAwB,EACxB,GAAW,EACX,MAAuB,EACvB,GAAW;IAEX,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,WAAW,CAAC;IAEhD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,UAAU;YACV,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC;YAChD,eAAM,CAAC,IAAI,CAAC,kBAAkB,QAAQ,EAAE,CAAC,CAAC;YAC1C,OAAO,CAAC,KAAK,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;YACzE,MAAM;QACR,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,aAAa;YACb,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC;YAChD,eAAM,CAAC,IAAI,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;YAC9C,OAAO,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YAC9D,MAAM;QACR,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,SAAS;YACT,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC;YAChD,eAAM,CAAC,IAAI,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;YAC3C,OAAO,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;YACpE,MAAM;QACR,CAAC;QACD;YACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,cAAc;AACd,KAAK,UAAU,UAAU,CACvB,QAAwB,EACxB,GAAW,EACX,MAAuB,EACvB,GAAW,EACX,SAAkB;IAElB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;IAEpC,yBAAyB;IACzB,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,IAAA,wBAAQ,EAAC,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,GAAG,eAAe,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;QACxE,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACb,oBAAoB;gBACpB,iCAAiC;gBACjC,4CAA4C;gBAC5C,2BAA2B,CAC5B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,QAAQ;IACR,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACnC,eAAM,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC5C,IAAA,wBAAQ,EAAC,MAAM,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC;IAE9C,yBAAyB;IACzB,eAAM,CAAC,IAAI,CAAC,iBAAiB,SAAS,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,UAAU,SAAS,MAAM,SAAS,GAAG,CAAC;IACzD,IAAA,wBAAQ,EAAC,GAAG,OAAO,SAAS,UAAU,YAAY,MAAM,IAAI,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;AACjG,CAAC"}
|
package/package.json
CHANGED
|
@@ -30,10 +30,10 @@
|
|
|
30
30
|
# image → 镜像名(docker 类型)
|
|
31
31
|
# tag → 镜像标签(docker 类型)
|
|
32
32
|
# pm2_config → PM2 配置文件(pm2 类型,默认 ecosystem.config.js)
|
|
33
|
-
# backup → 部署前备份远端旧包(v8.3.348+,ssh/docker 类型,默认
|
|
33
|
+
# backup → 部署前备份远端旧包(v8.3.348+,ssh/docker 类型,默认 true 开启)
|
|
34
34
|
# backup_keep → 备份保留份数(v8.3.348+,默认 5,超出自动清理最旧备份)
|
|
35
35
|
#
|
|
36
|
-
# 备份开关优先级(高→低):CLI --skip-backup-for 端级排除 > CLI --backup/--no-backup 全局 > 配置 backup 字段
|
|
36
|
+
# 备份开关优先级(高→低):CLI --skip-backup-for 端级排除 > CLI --backup/--no-backup 全局 > 配置 backup 字段 > 默认开启
|
|
37
37
|
# 例:speccore deploy --env test --all --backup --skip-backup-for h5-mobile,order-api
|
|
38
38
|
# ═══════════════════════════════════════════════════════════
|
|
39
39
|
|
|
@@ -70,7 +70,7 @@ ssh_key_example:
|
|
|
70
70
|
remote_dir: /var/www/html/h5
|
|
71
71
|
# script: 部署后命令(重载 Nginx)
|
|
72
72
|
script: sudo nginx -s reload
|
|
73
|
-
# backup: 部署前备份远端旧包(v8.3.348+,默认
|
|
73
|
+
# backup: 部署前备份远端旧包(v8.3.348+,默认 true 开启;保留最近 backup_keep 份)
|
|
74
74
|
backup: true
|
|
75
75
|
backup_keep: 5
|
|
76
76
|
# pre_deploy: 部署前钩子
|
|
@@ -189,7 +189,7 @@ docker_frontend_remote:
|
|
|
189
189
|
tag: staging
|
|
190
190
|
host: deployer@staging-server.example.com # 远程服务器(v8.3.96+)
|
|
191
191
|
key: ~/.ssh/id_rsa
|
|
192
|
-
# backup: true # v8.3.348+: 部署前把旧镜像打 backup tag(tag 零成本,保留 backup_keep
|
|
192
|
+
# backup: true # v8.3.348+: 部署前把旧镜像打 backup tag(tag 零成本,保留 backup_keep 份;默认开启)
|
|
193
193
|
# backup_keep: 5
|
|
194
194
|
# script 自定义远程命令(可选,以下为默认值示例)
|
|
195
195
|
# script: "docker pull registry.example.com/my-project/admin-web:staging && docker stop admin-web 2>/dev/null; docker rm admin-web 2>/dev/null; docker run -d --name admin-web --restart always -p 80:80 registry.example.com/my-project/admin-web:staging"
|
|
@@ -463,9 +463,8 @@ env: staging
|
|
|
463
463
|
# 环境全局分支:该环境所有端默认切到此分支(按端覆盖见 platforms)
|
|
464
464
|
branch: staging
|
|
465
465
|
|
|
466
|
-
#
|
|
467
|
-
defaults
|
|
468
|
-
build_cmd: npm run build:staging
|
|
466
|
+
# 构建命令各端各自配置(见 platforms.{端}.build_cmd,Java / Web / 移动端各异);
|
|
467
|
+
# 解析层支持 defaults.build_cmd 作为「端未写时的兜底」,仅全端同构项目适用。
|
|
469
468
|
|
|
470
469
|
# 按端覆盖配置
|
|
471
470
|
platforms:
|
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
.match-result{padding:10px 0}.match-summary{font-weight:600;font-size:14px;margin-bottom:12px}.match-detail{color:var(--muted);font-size:12px;line-height:1.6}
|
|
8
8
|
/* Pipeline */
|
|
9
9
|
.pipeline-title{font-weight:600;margin-bottom:16px}.pipeline-steps{display:flex;flex-direction:column;gap:10px}.pipe-step{display:flex;gap:14px;padding:12px 14px;background:rgba(99,102,241,.04);border-left:2px solid var(--purple);border-radius:0 8px 8px 0}.pipe-step .pipe-num{font-family:Orbitron;font-size:20px;font-weight:900;color:var(--purple);min-width:36px}.pipe-step .pipe-cmd{font-weight:600;color:var(--green)}.pipe-step .pipe-args{color:var(--muted);font-size:11px}.pipe-step .pipe-desc{color:var(--muted);font-size:10px;margin-top:4px}.pipe-step .pipe-dep{font-size:9px;color:var(--orange);margin-top:4px}.confirm-bar{text-align:center;padding:14px;margin-top:16px;background:rgba(99,102,241,.08);border:1px dashed rgba(99,102,241,.2);border-radius:8px;color:var(--purple);font-size:12px}
|
|
10
|
-
.footer{text-align:center;color:var(--muted);font-size:10px;margin-top:24px;padding-top:16px;border-top:1px solid rgba(255,255,255,.04)}h1{text-shadow:0 0 20px rgba(14,165,233,.35),0 0 60px rgba(14,165,233,.12)!important}@keyframes cardGlow{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.6)}}.card-bg{position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 25% 10%,rgba(14,165,233,.25) 0%,transparent 70%);animation:cardGlow 3s ease-in-out infinite;transform-origin:top center}@keyframes titleGlow{0%,100%{text-shadow:0 0 20px rgba(14,165,233,.4),0 0 60px rgba(14,165,233,.15)}50%{text-shadow:0 0 30px rgba(14,165,233,.7),0 0 80px rgba(14,165,233,.3)}}h1,h2{text-shadow:0 0 20px rgba(14,165,233,.4),0 0 60px rgba(14,165,233,.15);animation:titleGlow 3s ease-in-out infinite}</style></head><body><div class="scanlines"></div><div class="card"><div class="card-bg"></div><div class="vline l"></div><div class="vline r"></div><h1>SPECCORE ASK</h1><div class="query">"我想做一个登录功能"</div><div class="badge">🗺️ 任务指引</div><div class="guide-title">已为你规划「新功能开发全流程」(9 步)</div><div class="guide-steps"><div class="guide-step"><div class="step-num">1</div><div class="step-body"><div class="step-cmd">speccore init</div><div class="step-desc">初始化项目(如果还没有)</div></div></div><div class="guide-step"><div class="step-num">2</div><div class="step-body"><div class="step-cmd">speccore doc2spec -f PRD.docx --iter {iteration}</div><div class="step-desc">导入 PRD 文档,AI 分析生成需求规格</div></div></div><div class="guide-step"><div class="step-num">3</div><div class="step-body"><div class="step-cmd">speccore analyze --iteration {iteration} --audit</div><div class="step-desc">AI 分析需求,生成审计报告</div></div></div><div class="guide-step"><div class="step-num">4</div><div class="step-body"><div class="step-cmd">speccore iteration taskify -f REQUIREMENT.md</div><div class="step-desc">将需求拆分为独立开发任务</div></div></div><div class="guide-step"><div class="step-num">5</div><div class="step-body"><div class="step-cmd">speccore plan --all</div><div class="step-desc">生成任务执行计划,确定优先级和依赖</div></div></div><div class="guide-step"><div class="step-num">6</div><div class="step-body"><div class="step-cmd">speccore execute --auto</div><div class="step-desc">按计划依次执行开发任务</div></div></div><div class="guide-step"><div class="step-num">7</div><div class="step-body"><div class="step-cmd">speccore verify --ui</div><div class="step-desc">本地冒烟测试(自动登录 + 页面冒烟,默认 module 范围)</div></div></div><div class="guide-step"><div class="step-num">8</div><div class="step-body"><div class="step-cmd">speccore pr --auto</div><div class="step-desc">代码提交后创建 Pull Request</div></div></div><div class="guide-step"><div class="step-num">9</div><div class="step-body"><div class="step-cmd">speccore done --all</div><div class="step-desc">全部完成后归档收尾</div></div></div></div><div style="text-align:center;margin-top:16px"><a href="speccore-ask-onboarding.html" style="color:var(--cyan);font-size:11px;text-decoration:none">← 返回 ask 引导页</a></div><div class="footer">由 SpecCore 驱动 · v8.3.
|
|
10
|
+
.footer{text-align:center;color:var(--muted);font-size:10px;margin-top:24px;padding-top:16px;border-top:1px solid rgba(255,255,255,.04)}h1{text-shadow:0 0 20px rgba(14,165,233,.35),0 0 60px rgba(14,165,233,.12)!important}@keyframes cardGlow{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.6)}}.card-bg{position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 25% 10%,rgba(14,165,233,.25) 0%,transparent 70%);animation:cardGlow 3s ease-in-out infinite;transform-origin:top center}@keyframes titleGlow{0%,100%{text-shadow:0 0 20px rgba(14,165,233,.4),0 0 60px rgba(14,165,233,.15)}50%{text-shadow:0 0 30px rgba(14,165,233,.7),0 0 80px rgba(14,165,233,.3)}}h1,h2{text-shadow:0 0 20px rgba(14,165,233,.4),0 0 60px rgba(14,165,233,.15);animation:titleGlow 3s ease-in-out infinite}</style></head><body><div class="scanlines"></div><div class="card"><div class="card-bg"></div><div class="vline l"></div><div class="vline r"></div><h1>SPECCORE ASK</h1><div class="query">"我想做一个登录功能"</div><div class="badge">🗺️ 任务指引</div><div class="guide-title">已为你规划「新功能开发全流程」(9 步)</div><div class="guide-steps"><div class="guide-step"><div class="step-num">1</div><div class="step-body"><div class="step-cmd">speccore init</div><div class="step-desc">初始化项目(如果还没有)</div></div></div><div class="guide-step"><div class="step-num">2</div><div class="step-body"><div class="step-cmd">speccore doc2spec -f PRD.docx --iter {iteration}</div><div class="step-desc">导入 PRD 文档,AI 分析生成需求规格</div></div></div><div class="guide-step"><div class="step-num">3</div><div class="step-body"><div class="step-cmd">speccore analyze --iteration {iteration} --audit</div><div class="step-desc">AI 分析需求,生成审计报告</div></div></div><div class="guide-step"><div class="step-num">4</div><div class="step-body"><div class="step-cmd">speccore iteration taskify -f REQUIREMENT.md</div><div class="step-desc">将需求拆分为独立开发任务</div></div></div><div class="guide-step"><div class="step-num">5</div><div class="step-body"><div class="step-cmd">speccore plan --all</div><div class="step-desc">生成任务执行计划,确定优先级和依赖</div></div></div><div class="guide-step"><div class="step-num">6</div><div class="step-body"><div class="step-cmd">speccore execute --auto</div><div class="step-desc">按计划依次执行开发任务</div></div></div><div class="guide-step"><div class="step-num">7</div><div class="step-body"><div class="step-cmd">speccore verify --ui</div><div class="step-desc">本地冒烟测试(自动登录 + 页面冒烟,默认 module 范围)</div></div></div><div class="guide-step"><div class="step-num">8</div><div class="step-body"><div class="step-cmd">speccore pr --auto</div><div class="step-desc">代码提交后创建 Pull Request</div></div></div><div class="guide-step"><div class="step-num">9</div><div class="step-body"><div class="step-cmd">speccore done --all</div><div class="step-desc">全部完成后归档收尾</div></div></div></div><div style="text-align:center;margin-top:16px"><a href="speccore-ask-onboarding.html" style="color:var(--cyan);font-size:11px;text-decoration:none">← 返回 ask 引导页</a></div><div class="footer">由 SpecCore 驱动 · v8.3.349 · 2026-08-31</div></div></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="zh-CN" data-theme="ocean"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>SpecCore · ask --pipeline</title><style>@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&family=JetBrains+Mono:wght@400;600;700&display=swap');[data-theme="ocean"]{--cyan:#0ea5e9;--bg:#0b1929;--card:rgba(13,31,56,.95);--border:rgba(14,165,233,.15);--text:#bae6fd;--muted:#5b7fa5;--green:#14b8a6;--orange:#f97316;--purple:#6366f1}*{margin:0;padding:0;box-sizing:border-box}body{font-family:'JetBrains Mono',monospace;background:var(--bg);color:var(--text);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.scanlines{position:fixed;inset:0;pointer-events:none;z-index:99;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,240,255,.01) 2px,rgba(0,240,255,.01) 4px)}.card{max-width:900px;width:100%;margin:0 auto;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:32px;position:relative;overflow:hidden;z-index:1}.card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);animation:scanX 3s linear infinite}.card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);animation:scanX-rev 3s linear infinite}@keyframes scanX{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}@keyframes scanX-rev{0%{transform:translateX(100%)}100%{transform:translateX(-100%)}}@keyframes scanY{0%{transform:translateY(-100%)}100%{transform:translateY(100%)}}@keyframes scanY-rev{0%{transform:translateY(100%)}100%{transform:translateY(-100%)}}.vline{position:absolute;top:0;width:1px;bottom:0;pointer-events:none}.vline.l{left:0;background:linear-gradient(180deg,transparent,var(--cyan),transparent);animation:scanY-rev 3s linear infinite}.vline.r{right:0;background:linear-gradient(180deg,transparent,var(--cyan),transparent);animation:scanY 3s linear infinite}.card-bg{position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 25% 10%,rgba(14,165,233,.25) 0%,transparent 70%);animation:cardGlow 3s ease-in-out infinite;transform-origin:top center}@keyframes cardGlow{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.6)}}.page-title{font-family:'Orbitron',sans-serif;font-size:22px;font-weight:700;text-align:center;color:var(--cyan);margin-bottom:32px;letter-spacing:1px;text-shadow:0 0 20px rgba(14,165,233,.4),0 0 60px rgba(14,165,233,.15);animation:titleGlow 3s ease-in-out infinite}@keyframes titleGlow{0%,100%{text-shadow:0 0 20px rgba(14,165,233,.4),0 0 60px rgba(14,165,233,.15)}50%{text-shadow:0 0 30px rgba(14,165,233,.7),0 0 80px rgba(14,165,233,.3)}}.page-title span{color:var(--text);font-weight:500}.flow-chart{display:flex;align-items:stretch;gap:0;margin-bottom:28px}.flow-node{flex:1;background:rgba(13,31,56,.7);border:1px solid;border-radius:10px;padding:14px 8px;text-align:center;position:relative}.flow-node .icon{font-size:18px;margin-bottom:6px}.flow-node .name{font-size:12px;font-weight:600;margin-bottom:4px}.flow-node .desc{font-size:10px;color:var(--muted)}.flow-node.n1{border-color:rgba(14,165,233,.4);color:var(--cyan)}.flow-node.n2{border-color:rgba(99,102,241,.4);color:var(--purple)}.flow-node.n3{border-color:rgba(14,165,233,.4);color:var(--cyan)}.flow-node.n4{border-color:rgba(20,184,166,.4);color:var(--green)}.flow-connector{width:24px;display:flex;align-items:center;justify-content:center}.flow-connector::after{content:'';width:100%;height:1px;background:linear-gradient(90deg,var(--border),var(--cyan),var(--border))}.example-box{border:1px dashed rgba(14,165,233,.3);border-radius:12px;padding:16px 20px;margin-bottom:24px;background:rgba(14,165,233,.03)}.example-label{font-size:13px;font-weight:600;color:var(--cyan);margin-bottom:8px}.example-query{font-family:'JetBrains Mono',monospace;font-size:14px;color:var(--text)}.example-query code{color:var(--green);font-weight:600}.steps{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.step{background:rgba(13,31,56,.8);border:1px solid rgba(14,165,233,.12);border-radius:10px;padding:14px 18px}.step-num{font-family:'Orbitron',sans-serif;font-size:14px;font-weight:700;color:var(--green);margin-bottom:6px}.step-cmd{font-family:'JetBrains Mono',monospace;font-size:14px;color:var(--text);margin-bottom:6px}.step-cmd .cmd-name{color:var(--green)}.step-cmd .cmd-args{color:var(--muted)}.step-parse{font-size:12px;color:var(--muted);line-height:1.5}.step-parse::before{content:'→ 解析:';color:var(--cyan)}.confirm-btn{display:block;width:100%;max-width:420px;margin:0 auto 16px;text-align:center;padding:16px;background:linear-gradient(135deg,var(--cyan),#0284c7);border:none;border-radius:40px;color:#fff;font-size:15px;font-weight:600;cursor:pointer;box-shadow:0 0 30px rgba(14,165,233,.3)}.legend{display:flex;justify-content:center;gap:20px;font-size:11px;color:var(--muted);margin-bottom:16px;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:4px}.legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.legend-dot.required{background:var(--cyan)}.legend-dot.generated{background:var(--green)}.legend-dot.pending{background:rgba(255,255,255,.3)}.back-link{text-align:center;margin-top:12px}.back-link a{color:var(--cyan);font-size:11px;text-decoration:none}.footer{text-align:center;color:var(--muted);font-size:10px;margin-top:20px}</style></head><body><div class="scanlines"></div><div class="card"><div class="card-bg"></div><div class="vline l"></div><div class="vline r"></div><div class="page-title">ask --pipeline <span>多步骤编排引擎</span></div><div class="flow-chart"><div class="flow-node n1"><div class="icon">🧠</div><div class="name">AI 意图分解</div><div class="desc">LLM 分解多步骤</div></div><div class="flow-connector"></div><div class="flow-node n2"><div class="icon">📐</div><div class="name">命令匹配</div><div class="desc">意图→命令图</div></div><div class="flow-connector"></div><div class="flow-node n3"><div class="icon">🔗</div><div class="name">依赖解析</div><div class="desc">顺序/并行/参数</div></div><div class="flow-connector"></div><div class="flow-node n4"><div class="icon">✅</div><div class="name">预览</div><div class="desc">展示给用户</div></div></div><div class="example-box"><div class="example-label">📋 示例:<span class="example-query"><code>/spec-ask "本期迭代:从 PRD 导入到代码提交,跑完整开发流程"</code></span></div></div><div class="steps"><div class="step"><div class="step-num">1.</div><div class="step-cmd"><span class="cmd-name">speccore doc2spec</span> <span class="cmd-args">-f PRD.docx --iter {iteration}</span></div><div class="step-parse">导入 PRD 文档,AI 分析生成需求规格说明书</div></div><div class="step"><div class="step-num">2.</div><div class="step-cmd"><span class="cmd-name">speccore analyze</span> <span class="cmd-args">--iteration {iteration} --audit</span></div><div class="step-parse">AI 深度分析需求,生成审计报告和可行性评估</div></div><div class="step"><div class="step-num">3.</div><div class="step-cmd"><span class="cmd-name">speccore iteration taskify</span> <span class="cmd-args">-f REQUIREMENT.md</span></div><div class="step-parse">将需求拆分为独立开发任务,确定优先级和依赖关系</div></div><div class="step"><div class="step-num">4.</div><div class="step-cmd"><span class="cmd-name">speccore execute</span> <span class="cmd-args">--auto</span></div><div class="step-parse">按任务计划依次自动执行开发、测试和代码生成</div></div><div class="step"><div class="step-num">5.</div><div class="step-cmd"><span class="cmd-name">speccore verify</span> <span class="cmd-args">--ui</span></div><div class="step-parse">本地冒烟测试:自动登录 + 页面冒烟(默认 module 范围)</div></div><div class="step"><div class="step-num">6.</div><div class="step-cmd"><span class="cmd-name">speccore pr</span> <span class="cmd-args">--auto</span></div><div class="step-parse">代码提交后自动创建 Pull Request,完成交付</div></div></div><div class="confirm-btn">确认执行? (y/N) 或修改参数</div><div class="legend"><div class="legend-item"><span class="legend-dot required"></span> = 必选步骤</div><div class="legend-item"><span class="legend-dot generated"></span> = 已生成</div><div class="legend-item"><span class="legend-dot pending"></span> = 待执行</div><div class="legend-item">→ = 依赖传递</div></div><div class="back-link"><a href="speccore-ask-onboarding.html">← 返回 ask 引导页</a></div><div class="footer">由 SpecCore 驱动 · v8.3.
|
|
1
|
+
<!DOCTYPE html><html lang="zh-CN" data-theme="ocean"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>SpecCore · ask --pipeline</title><style>@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&family=JetBrains+Mono:wght@400;600;700&display=swap');[data-theme="ocean"]{--cyan:#0ea5e9;--bg:#0b1929;--card:rgba(13,31,56,.95);--border:rgba(14,165,233,.15);--text:#bae6fd;--muted:#5b7fa5;--green:#14b8a6;--orange:#f97316;--purple:#6366f1}*{margin:0;padding:0;box-sizing:border-box}body{font-family:'JetBrains Mono',monospace;background:var(--bg);color:var(--text);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.scanlines{position:fixed;inset:0;pointer-events:none;z-index:99;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,240,255,.01) 2px,rgba(0,240,255,.01) 4px)}.card{max-width:900px;width:100%;margin:0 auto;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:32px;position:relative;overflow:hidden;z-index:1}.card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);animation:scanX 3s linear infinite}.card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);animation:scanX-rev 3s linear infinite}@keyframes scanX{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}@keyframes scanX-rev{0%{transform:translateX(100%)}100%{transform:translateX(-100%)}}@keyframes scanY{0%{transform:translateY(-100%)}100%{transform:translateY(100%)}}@keyframes scanY-rev{0%{transform:translateY(100%)}100%{transform:translateY(-100%)}}.vline{position:absolute;top:0;width:1px;bottom:0;pointer-events:none}.vline.l{left:0;background:linear-gradient(180deg,transparent,var(--cyan),transparent);animation:scanY-rev 3s linear infinite}.vline.r{right:0;background:linear-gradient(180deg,transparent,var(--cyan),transparent);animation:scanY 3s linear infinite}.card-bg{position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 25% 10%,rgba(14,165,233,.25) 0%,transparent 70%);animation:cardGlow 3s ease-in-out infinite;transform-origin:top center}@keyframes cardGlow{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.6)}}.page-title{font-family:'Orbitron',sans-serif;font-size:22px;font-weight:700;text-align:center;color:var(--cyan);margin-bottom:32px;letter-spacing:1px;text-shadow:0 0 20px rgba(14,165,233,.4),0 0 60px rgba(14,165,233,.15);animation:titleGlow 3s ease-in-out infinite}@keyframes titleGlow{0%,100%{text-shadow:0 0 20px rgba(14,165,233,.4),0 0 60px rgba(14,165,233,.15)}50%{text-shadow:0 0 30px rgba(14,165,233,.7),0 0 80px rgba(14,165,233,.3)}}.page-title span{color:var(--text);font-weight:500}.flow-chart{display:flex;align-items:stretch;gap:0;margin-bottom:28px}.flow-node{flex:1;background:rgba(13,31,56,.7);border:1px solid;border-radius:10px;padding:14px 8px;text-align:center;position:relative}.flow-node .icon{font-size:18px;margin-bottom:6px}.flow-node .name{font-size:12px;font-weight:600;margin-bottom:4px}.flow-node .desc{font-size:10px;color:var(--muted)}.flow-node.n1{border-color:rgba(14,165,233,.4);color:var(--cyan)}.flow-node.n2{border-color:rgba(99,102,241,.4);color:var(--purple)}.flow-node.n3{border-color:rgba(14,165,233,.4);color:var(--cyan)}.flow-node.n4{border-color:rgba(20,184,166,.4);color:var(--green)}.flow-connector{width:24px;display:flex;align-items:center;justify-content:center}.flow-connector::after{content:'';width:100%;height:1px;background:linear-gradient(90deg,var(--border),var(--cyan),var(--border))}.example-box{border:1px dashed rgba(14,165,233,.3);border-radius:12px;padding:16px 20px;margin-bottom:24px;background:rgba(14,165,233,.03)}.example-label{font-size:13px;font-weight:600;color:var(--cyan);margin-bottom:8px}.example-query{font-family:'JetBrains Mono',monospace;font-size:14px;color:var(--text)}.example-query code{color:var(--green);font-weight:600}.steps{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.step{background:rgba(13,31,56,.8);border:1px solid rgba(14,165,233,.12);border-radius:10px;padding:14px 18px}.step-num{font-family:'Orbitron',sans-serif;font-size:14px;font-weight:700;color:var(--green);margin-bottom:6px}.step-cmd{font-family:'JetBrains Mono',monospace;font-size:14px;color:var(--text);margin-bottom:6px}.step-cmd .cmd-name{color:var(--green)}.step-cmd .cmd-args{color:var(--muted)}.step-parse{font-size:12px;color:var(--muted);line-height:1.5}.step-parse::before{content:'→ 解析:';color:var(--cyan)}.confirm-btn{display:block;width:100%;max-width:420px;margin:0 auto 16px;text-align:center;padding:16px;background:linear-gradient(135deg,var(--cyan),#0284c7);border:none;border-radius:40px;color:#fff;font-size:15px;font-weight:600;cursor:pointer;box-shadow:0 0 30px rgba(14,165,233,.3)}.legend{display:flex;justify-content:center;gap:20px;font-size:11px;color:var(--muted);margin-bottom:16px;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:4px}.legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.legend-dot.required{background:var(--cyan)}.legend-dot.generated{background:var(--green)}.legend-dot.pending{background:rgba(255,255,255,.3)}.back-link{text-align:center;margin-top:12px}.back-link a{color:var(--cyan);font-size:11px;text-decoration:none}.footer{text-align:center;color:var(--muted);font-size:10px;margin-top:20px}</style></head><body><div class="scanlines"></div><div class="card"><div class="card-bg"></div><div class="vline l"></div><div class="vline r"></div><div class="page-title">ask --pipeline <span>多步骤编排引擎</span></div><div class="flow-chart"><div class="flow-node n1"><div class="icon">🧠</div><div class="name">AI 意图分解</div><div class="desc">LLM 分解多步骤</div></div><div class="flow-connector"></div><div class="flow-node n2"><div class="icon">📐</div><div class="name">命令匹配</div><div class="desc">意图→命令图</div></div><div class="flow-connector"></div><div class="flow-node n3"><div class="icon">🔗</div><div class="name">依赖解析</div><div class="desc">顺序/并行/参数</div></div><div class="flow-connector"></div><div class="flow-node n4"><div class="icon">✅</div><div class="name">预览</div><div class="desc">展示给用户</div></div></div><div class="example-box"><div class="example-label">📋 示例:<span class="example-query"><code>/spec-ask "本期迭代:从 PRD 导入到代码提交,跑完整开发流程"</code></span></div></div><div class="steps"><div class="step"><div class="step-num">1.</div><div class="step-cmd"><span class="cmd-name">speccore doc2spec</span> <span class="cmd-args">-f PRD.docx --iter {iteration}</span></div><div class="step-parse">导入 PRD 文档,AI 分析生成需求规格说明书</div></div><div class="step"><div class="step-num">2.</div><div class="step-cmd"><span class="cmd-name">speccore analyze</span> <span class="cmd-args">--iteration {iteration} --audit</span></div><div class="step-parse">AI 深度分析需求,生成审计报告和可行性评估</div></div><div class="step"><div class="step-num">3.</div><div class="step-cmd"><span class="cmd-name">speccore iteration taskify</span> <span class="cmd-args">-f REQUIREMENT.md</span></div><div class="step-parse">将需求拆分为独立开发任务,确定优先级和依赖关系</div></div><div class="step"><div class="step-num">4.</div><div class="step-cmd"><span class="cmd-name">speccore execute</span> <span class="cmd-args">--auto</span></div><div class="step-parse">按任务计划依次自动执行开发、测试和代码生成</div></div><div class="step"><div class="step-num">5.</div><div class="step-cmd"><span class="cmd-name">speccore verify</span> <span class="cmd-args">--ui</span></div><div class="step-parse">本地冒烟测试:自动登录 + 页面冒烟(默认 module 范围)</div></div><div class="step"><div class="step-num">6.</div><div class="step-cmd"><span class="cmd-name">speccore pr</span> <span class="cmd-args">--auto</span></div><div class="step-parse">代码提交后自动创建 Pull Request,完成交付</div></div></div><div class="confirm-btn">确认执行? (y/N) 或修改参数</div><div class="legend"><div class="legend-item"><span class="legend-dot required"></span> = 必选步骤</div><div class="legend-item"><span class="legend-dot generated"></span> = 已生成</div><div class="legend-item"><span class="legend-dot pending"></span> = 待执行</div><div class="legend-item">→ = 依赖传递</div></div><div class="back-link"><a href="speccore-ask-onboarding.html">← 返回 ask 引导页</a></div><div class="footer">由 SpecCore 驱动 · v8.3.349 · 2026-08-31</div></div></body></html>
|
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
.match-result{padding:10px 0}.match-summary{font-weight:600;font-size:14px;margin-bottom:12px}.match-detail{color:var(--muted);font-size:12px;line-height:1.6}
|
|
8
8
|
/* Pipeline */
|
|
9
9
|
.pipeline-title{font-weight:600;margin-bottom:16px}.pipeline-steps{display:flex;flex-direction:column;gap:10px}.pipe-step{display:flex;gap:14px;padding:12px 14px;background:rgba(99,102,241,.04);border-left:2px solid var(--purple);border-radius:0 8px 8px 0}.pipe-step .pipe-num{font-family:Orbitron;font-size:20px;font-weight:900;color:var(--purple);min-width:36px}.pipe-step .pipe-cmd{font-weight:600;color:var(--green)}.pipe-step .pipe-args{color:var(--muted);font-size:11px}.pipe-step .pipe-desc{color:var(--muted);font-size:10px;margin-top:4px}.pipe-step .pipe-dep{font-size:9px;color:var(--orange);margin-top:4px}.confirm-bar{text-align:center;padding:14px;margin-top:16px;background:rgba(99,102,241,.08);border:1px dashed rgba(99,102,241,.2);border-radius:8px;color:var(--purple);font-size:12px}
|
|
10
|
-
.footer{text-align:center;color:var(--muted);font-size:10px;margin-top:24px;padding-top:16px;border-top:1px solid rgba(255,255,255,.04)}@keyframes cardGlow{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.6)}}.card-bg{position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 25% 10%,rgba(14,165,233,.25) 0%,transparent 70%);animation:cardGlow 3s ease-in-out infinite;transform-origin:top center}@keyframes titleGlow{0%,100%{text-shadow:0 0 20px rgba(14,165,233,.4),0 0 60px rgba(14,165,233,.15)}50%{text-shadow:0 0 30px rgba(14,165,233,.7),0 0 80px rgba(14,165,233,.3)}}h1,h2{text-shadow:0 0 20px rgba(14,165,233,.4),0 0 60px rgba(14,165,233,.15);animation:titleGlow 3s ease-in-out infinite}</style></head><body><div class="scanlines"></div><div class="card"><div class="card-bg"></div><div class="vline l"></div><div class="vline r"></div><h1>SPECCORE ASK</h1><div class="query">"dashboard"</div><div class="badge">🎯 意图匹配</div><div class="match-result"><div class="match-summary">✅ 推荐: dashboard</div><div class="match-detail">🎯 推荐命令: <code>speccore dashboard<br>项目仪表盘:期次状态/进度/健康度,--scope</code> global 全量视图<br><br>用法: <code>speccore dashboard</code> [--scope global|iteration] [--export html] [--health] [--lifecycle]<br><br>示例:<br> $ <code>speccore dashboard<br></code> $ <code>speccore dashboard</code> --scope global --export html</div></div><div class="footer">由 SpecCore 驱动 v8.3.
|
|
10
|
+
.footer{text-align:center;color:var(--muted);font-size:10px;margin-top:24px;padding-top:16px;border-top:1px solid rgba(255,255,255,.04)}@keyframes cardGlow{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.6)}}.card-bg{position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 25% 10%,rgba(14,165,233,.25) 0%,transparent 70%);animation:cardGlow 3s ease-in-out infinite;transform-origin:top center}@keyframes titleGlow{0%,100%{text-shadow:0 0 20px rgba(14,165,233,.4),0 0 60px rgba(14,165,233,.15)}50%{text-shadow:0 0 30px rgba(14,165,233,.7),0 0 80px rgba(14,165,233,.3)}}h1,h2{text-shadow:0 0 20px rgba(14,165,233,.4),0 0 60px rgba(14,165,233,.15);animation:titleGlow 3s ease-in-out infinite}</style></head><body><div class="scanlines"></div><div class="card"><div class="card-bg"></div><div class="vline l"></div><div class="vline r"></div><h1>SPECCORE ASK</h1><div class="query">"dashboard"</div><div class="badge">🎯 意图匹配</div><div class="match-result"><div class="match-summary">✅ 推荐: dashboard</div><div class="match-detail">🎯 推荐命令: <code>speccore dashboard<br>项目仪表盘:期次状态/进度/健康度,--scope</code> global 全量视图<br><br>用法: <code>speccore dashboard</code> [--scope global|iteration] [--export html] [--health] [--lifecycle]<br><br>示例:<br> $ <code>speccore dashboard<br></code> $ <code>speccore dashboard</code> --scope global --export html</div></div><div class="footer">由 SpecCore 驱动 v8.3.349 · 2026-08-31</div></div></body></html>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="zh-CN" data-theme="ocean"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>SpecCore Help</title><style>@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&family=JetBrains+Mono:wght@400;600;700&display=swap');[data-theme="ocean"]{--cyan:#0ea5e9;--bg:#0b1929;--card:rgba(13,31,56,.95);--border:rgba(14,165,233,.15);--text:#bae6fd;--muted:#5b7fa5;--green:#14b8a6;--orange:#f97316;--purple:#6366f1}*{margin:0;padding:0;box-sizing:border-box}body{font-family:'JetBrains Mono',monospace;background:var(--bg);color:var(--text);min-height:100vh;padding:40px 20px}.scanlines{position:fixed;inset:0;pointer-events:none;z-index:99;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,240,255,.01) 2px,rgba(0,240,255,.01) 4px)}.card{max-width:960px;margin:0 auto;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:36px;position:relative;overflow:hidden}.card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);animation:scanX 3s linear infinite}.card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);animation:scanX-rev 3s linear infinite}@keyframes scanX{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}@keyframes scanX-rev{0%{transform:translateX(100%)}100%{transform:translateX(-100%)}}@keyframes scanY{0%{transform:translateY(-100%)}100%{transform:translateY(100%)}}@keyframes scanY-rev{0%{transform:translateY(100%)}100%{transform:translateY(-100%)}}.vline{position:absolute;top:0;width:1px;bottom:0;pointer-events:none}.vline.l{left:0;background:linear-gradient(180deg,transparent,var(--cyan),transparent);animation:scanY-rev 3s linear infinite}.vline.r{right:0;background:linear-gradient(180deg,transparent,var(--cyan),transparent);animation:scanY 3s linear infinite}h1{font-family:'Orbitron',sans-serif;font-size:24px;font-weight:900;background:linear-gradient(135deg,var(--cyan),var(--purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:2px;margin-bottom:4px;animation:titleGlow 3s ease-in-out infinite}.sub{color:var(--muted);font-size:11px;margin-bottom:24px}.intro-card{padding:20px;margin-bottom:20px;background:linear-gradient(135deg,rgba(14,165,233,.08),rgba(99,102,241,.08));border:1px solid rgba(14,165,233,.2);border-radius:12px}.intro-title{font-size:16px;font-weight:700;color:var(--cyan);margin-bottom:12px}.intro-text{font-size:13px;line-height:1.6;color:var(--text);margin-bottom:16px}.highlight-box{display:flex;gap:16px;padding:16px;background:rgba(20,184,166,.08);border:1px solid rgba(20,184,166,.2);border-radius:10px}.highlight-icon{font-size:32px}.highlight-content{flex:1}.highlight-title{font-size:12px;font-weight:700;color:var(--green);margin-bottom:8px;text-transform:uppercase;letter-spacing:1px}.highlight-list{list-style:none;padding:0;margin:0}.highlight-list li{font-size:12px;color:var(--text);padding:4px 0;line-height:1.5}.highlight-list strong{color:var(--cyan)}.quick-start{padding:20px;margin:20px 0;background:rgba(249,115,22,.05);border:1px solid rgba(249,115,22,.15);border-radius:12px}.section-header{display:flex;align-items:center;gap:8px;margin-bottom:16px}.header-icon{font-size:20px}.header-title{font-size:14px;font-weight:700;color:var(--orange);text-transform:uppercase;letter-spacing:1px}.step-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center}.step-item{display:flex;gap:12px;padding:12px 16px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:10px;min-width:180px}.step-num{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--orange),#ea580c);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#fff;flex-shrink:0}.step-text{font-size:12px;line-height:1.5}.step-text code{display:inline-block;margin-top:4px;padding:2px 8px;background:rgba(249,115,22,.1);border-radius:4px;color:var(--orange);font-size:11px}.step-arrow{color:var(--muted);font-size:20px;font-weight:700}.cat{margin:16px 0;padding:16px;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.04);border-radius:12px;transition:all .3s}.cat:hover{border-color:rgba(14,165,233,.3);background:rgba(14,165,233,.03)}.cat-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.cat-icon{font-size:24px}.cat-info{flex:1}.cat-title{font-size:13px;font-weight:700;color:var(--cyan);margin-bottom:2px}.cat-desc{font-size:11px;color:var(--muted)}.cat-cmds{display:flex;flex-wrap:wrap;gap:8px}.cmd-pill{padding:4px 12px;border-radius:6px;font-size:11px;background:rgba(14,165,233,.08);color:var(--cyan);border:1px solid rgba(14,165,233,.15);transition:all .2s;cursor:pointer}.core-commands{padding:16px;border:1px solid var(--border);border-radius:12px;background:rgba(14,165,233,.04)}.core-commands .cmd-pill{font-size:12px;padding:6px 14px;background:rgba(20,184,166,.12);color:var(--green);border-color:rgba(20,184,166,.3)}.core-hint{margin-top:12px;font-size:12px;color:var(--muted)}.cmd-pill:hover{background:rgba(14,165,233,.15);border-color:rgba(14,165,233,.3);transform:translateY(-1px)}.cmd-detail{padding:8px 0}.cmd-desc{font-size:14px;margin-bottom:16px;color:var(--text);line-height:1.6}.param-list{margin:16px 0}.param{display:flex;gap:16px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.03)}.param-flag{color:var(--green);font-size:12px;min-width:180px;font-weight:600}.param-meaning{color:var(--muted);font-size:12px;line-height:1.5}.example-list{margin:16px 0}.section-label{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px}.tips-section{padding:20px;margin:20px 0;background:rgba(99,102,241,.05);border:1px solid rgba(99,102,241,.15);border-radius:12px}.tip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:16px}.tip-card{padding:14px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:10px;display:flex;gap:12px;transition:all .3s}.tip-card:hover{border-color:rgba(99,102,241,.3);background:rgba(99,102,241,.05);transform:translateY(-2px)}.tip-icon{font-size:24px;flex-shrink:0}.tip-content{flex:1}.tip-title{font-size:12px;font-weight:700;color:var(--purple);margin-bottom:4px}.tip-text{font-size:11px;color:var(--muted);line-height:1.5}.tip-text code{display:inline-block;margin-top:4px;padding:2px 6px;background:rgba(99,102,241,.1);border-radius:4px;color:var(--purple);font-size:10px}code{display:block;background:rgba(14,165,233,.08);padding:6px 12px;border-radius:6px;color:var(--cyan);font-size:12px;margin:6px 0;transition:all .2s}code:hover{background:rgba(14,165,233,.12)}.params-section{padding:20px;margin:20px 0;background:rgba(14,165,233,.05);border:1px solid rgba(14,165,233,.15);border-radius:12px}.param-table{margin-top:16px}.param-row{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.03);align-items:center}.header-row{border-bottom:2px solid rgba(14,165,233,.3);font-weight:700}.param-col{flex:1;font-size:12px;line-height:1.5}.param-col.flag{min-width:120px;color:var(--green);font-weight:600}.param-col.meaning{flex:2;color:var(--text)}.param-col.example{flex:1.5;color:var(--muted)}.param-col code{display:inline-block;padding:2px 8px;background:rgba(14,165,233,.08);border-radius:4px;font-size:11px;margin:0}.footer{text-align:center;color:var(--muted);font-size:10px;margin-top:24px;padding-top:16px;border-top:1px solid rgba(255,255,255,.04)}.card-bg{position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 30% 10%,rgba(14,165,233,.25) 0%,transparent 70%);animation:cardGlow 3s ease-in-out infinite;transform-origin:top center}@keyframes cardGlow{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.6)}}@keyframes titleGlow{0%,100%{filter:drop-shadow(0 0 20px rgba(14,165,233,.4)) drop-shadow(0 0 60px rgba(14,165,233,.15))}50%{filter:drop-shadow(0 0 30px rgba(14,165,233,.7)) drop-shadow(0 0 80px rgba(14,165,233,.3))}</style></head><body><div class="scanlines"></div><div class="card"><div class="card-bg"></div><div class="vline l"></div><div class="vline r"></div><h1>SPECCORE HELP</h1><div class="sub">SpecCore 命令参考 · v8.3.
|
|
1
|
+
<!DOCTYPE html><html lang="zh-CN" data-theme="ocean"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>SpecCore Help</title><style>@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&family=JetBrains+Mono:wght@400;600;700&display=swap');[data-theme="ocean"]{--cyan:#0ea5e9;--bg:#0b1929;--card:rgba(13,31,56,.95);--border:rgba(14,165,233,.15);--text:#bae6fd;--muted:#5b7fa5;--green:#14b8a6;--orange:#f97316;--purple:#6366f1}*{margin:0;padding:0;box-sizing:border-box}body{font-family:'JetBrains Mono',monospace;background:var(--bg);color:var(--text);min-height:100vh;padding:40px 20px}.scanlines{position:fixed;inset:0;pointer-events:none;z-index:99;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,240,255,.01) 2px,rgba(0,240,255,.01) 4px)}.card{max-width:960px;margin:0 auto;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:36px;position:relative;overflow:hidden}.card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);animation:scanX 3s linear infinite}.card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);animation:scanX-rev 3s linear infinite}@keyframes scanX{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}@keyframes scanX-rev{0%{transform:translateX(100%)}100%{transform:translateX(-100%)}}@keyframes scanY{0%{transform:translateY(-100%)}100%{transform:translateY(100%)}}@keyframes scanY-rev{0%{transform:translateY(100%)}100%{transform:translateY(-100%)}}.vline{position:absolute;top:0;width:1px;bottom:0;pointer-events:none}.vline.l{left:0;background:linear-gradient(180deg,transparent,var(--cyan),transparent);animation:scanY-rev 3s linear infinite}.vline.r{right:0;background:linear-gradient(180deg,transparent,var(--cyan),transparent);animation:scanY 3s linear infinite}h1{font-family:'Orbitron',sans-serif;font-size:24px;font-weight:900;background:linear-gradient(135deg,var(--cyan),var(--purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:2px;margin-bottom:4px;animation:titleGlow 3s ease-in-out infinite}.sub{color:var(--muted);font-size:11px;margin-bottom:24px}.intro-card{padding:20px;margin-bottom:20px;background:linear-gradient(135deg,rgba(14,165,233,.08),rgba(99,102,241,.08));border:1px solid rgba(14,165,233,.2);border-radius:12px}.intro-title{font-size:16px;font-weight:700;color:var(--cyan);margin-bottom:12px}.intro-text{font-size:13px;line-height:1.6;color:var(--text);margin-bottom:16px}.highlight-box{display:flex;gap:16px;padding:16px;background:rgba(20,184,166,.08);border:1px solid rgba(20,184,166,.2);border-radius:10px}.highlight-icon{font-size:32px}.highlight-content{flex:1}.highlight-title{font-size:12px;font-weight:700;color:var(--green);margin-bottom:8px;text-transform:uppercase;letter-spacing:1px}.highlight-list{list-style:none;padding:0;margin:0}.highlight-list li{font-size:12px;color:var(--text);padding:4px 0;line-height:1.5}.highlight-list strong{color:var(--cyan)}.quick-start{padding:20px;margin:20px 0;background:rgba(249,115,22,.05);border:1px solid rgba(249,115,22,.15);border-radius:12px}.section-header{display:flex;align-items:center;gap:8px;margin-bottom:16px}.header-icon{font-size:20px}.header-title{font-size:14px;font-weight:700;color:var(--orange);text-transform:uppercase;letter-spacing:1px}.step-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center}.step-item{display:flex;gap:12px;padding:12px 16px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:10px;min-width:180px}.step-num{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--orange),#ea580c);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#fff;flex-shrink:0}.step-text{font-size:12px;line-height:1.5}.step-text code{display:inline-block;margin-top:4px;padding:2px 8px;background:rgba(249,115,22,.1);border-radius:4px;color:var(--orange);font-size:11px}.step-arrow{color:var(--muted);font-size:20px;font-weight:700}.cat{margin:16px 0;padding:16px;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.04);border-radius:12px;transition:all .3s}.cat:hover{border-color:rgba(14,165,233,.3);background:rgba(14,165,233,.03)}.cat-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.cat-icon{font-size:24px}.cat-info{flex:1}.cat-title{font-size:13px;font-weight:700;color:var(--cyan);margin-bottom:2px}.cat-desc{font-size:11px;color:var(--muted)}.cat-cmds{display:flex;flex-wrap:wrap;gap:8px}.cmd-pill{padding:4px 12px;border-radius:6px;font-size:11px;background:rgba(14,165,233,.08);color:var(--cyan);border:1px solid rgba(14,165,233,.15);transition:all .2s;cursor:pointer}.core-commands{padding:16px;border:1px solid var(--border);border-radius:12px;background:rgba(14,165,233,.04)}.core-commands .cmd-pill{font-size:12px;padding:6px 14px;background:rgba(20,184,166,.12);color:var(--green);border-color:rgba(20,184,166,.3)}.core-hint{margin-top:12px;font-size:12px;color:var(--muted)}.cmd-pill:hover{background:rgba(14,165,233,.15);border-color:rgba(14,165,233,.3);transform:translateY(-1px)}.cmd-detail{padding:8px 0}.cmd-desc{font-size:14px;margin-bottom:16px;color:var(--text);line-height:1.6}.param-list{margin:16px 0}.param{display:flex;gap:16px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.03)}.param-flag{color:var(--green);font-size:12px;min-width:180px;font-weight:600}.param-meaning{color:var(--muted);font-size:12px;line-height:1.5}.example-list{margin:16px 0}.section-label{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px}.tips-section{padding:20px;margin:20px 0;background:rgba(99,102,241,.05);border:1px solid rgba(99,102,241,.15);border-radius:12px}.tip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:16px}.tip-card{padding:14px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:10px;display:flex;gap:12px;transition:all .3s}.tip-card:hover{border-color:rgba(99,102,241,.3);background:rgba(99,102,241,.05);transform:translateY(-2px)}.tip-icon{font-size:24px;flex-shrink:0}.tip-content{flex:1}.tip-title{font-size:12px;font-weight:700;color:var(--purple);margin-bottom:4px}.tip-text{font-size:11px;color:var(--muted);line-height:1.5}.tip-text code{display:inline-block;margin-top:4px;padding:2px 6px;background:rgba(99,102,241,.1);border-radius:4px;color:var(--purple);font-size:10px}code{display:block;background:rgba(14,165,233,.08);padding:6px 12px;border-radius:6px;color:var(--cyan);font-size:12px;margin:6px 0;transition:all .2s}code:hover{background:rgba(14,165,233,.12)}.params-section{padding:20px;margin:20px 0;background:rgba(14,165,233,.05);border:1px solid rgba(14,165,233,.15);border-radius:12px}.param-table{margin-top:16px}.param-row{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.03);align-items:center}.header-row{border-bottom:2px solid rgba(14,165,233,.3);font-weight:700}.param-col{flex:1;font-size:12px;line-height:1.5}.param-col.flag{min-width:120px;color:var(--green);font-weight:600}.param-col.meaning{flex:2;color:var(--text)}.param-col.example{flex:1.5;color:var(--muted)}.param-col code{display:inline-block;padding:2px 8px;background:rgba(14,165,233,.08);border-radius:4px;font-size:11px;margin:0}.footer{text-align:center;color:var(--muted);font-size:10px;margin-top:24px;padding-top:16px;border-top:1px solid rgba(255,255,255,.04)}.card-bg{position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 30% 10%,rgba(14,165,233,.25) 0%,transparent 70%);animation:cardGlow 3s ease-in-out infinite;transform-origin:top center}@keyframes cardGlow{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.6)}}@keyframes titleGlow{0%,100%{filter:drop-shadow(0 0 20px rgba(14,165,233,.4)) drop-shadow(0 0 60px rgba(14,165,233,.15))}50%{filter:drop-shadow(0 0 30px rgba(14,165,233,.7)) drop-shadow(0 0 80px rgba(14,165,233,.3))}</style></head><body><div class="scanlines"></div><div class="card"><div class="card-bg"></div><div class="vline l"></div><div class="vline r"></div><h1>SPECCORE HELP</h1><div class="sub">SpecCore 命令参考 · v8.3.349</div>
|
|
2
2
|
<div class="intro-card">
|
|
3
3
|
<div class="intro-title">🎯 SpecCore — SDD 开发方法论 CLI 工具</div>
|
|
4
4
|
<div class="intro-text">SpecCore 采用 <strong>Specification-Driven Development(规格驱动开发)</strong>方法论,通过标准化流程和 AI 辅助,实现从需求到交付的自动化流水线。</div>
|
|
@@ -211,4 +211,4 @@
|
|
|
211
211
|
</div>
|
|
212
212
|
</div>
|
|
213
213
|
</div>
|
|
214
|
-
<div class="footer">由 SpecCore 驱动 v8.3.
|
|
214
|
+
<div class="footer">由 SpecCore 驱动 v8.3.349 · 2026-10-26</div></div></body></html>
|