@coralai/sps-cli 0.51.12 → 0.51.14

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 (33) hide show
  1. package/dist/commands/skillCommand.js +17 -17
  2. package/dist/commands/skillCommand.js.map +1 -1
  3. package/dist/console/routes/chat.js +4 -4
  4. package/dist/console/routes/chat.js.map +1 -1
  5. package/dist/console/routes/fs.js +2 -2
  6. package/dist/console/routes/fs.js.map +1 -1
  7. package/dist/console-assets/assets/{index-C5yBUuEw.js → index-Diuf9X57.js} +1 -1
  8. package/dist/console-assets/index.html +1 -1
  9. package/dist/main.js +79 -79
  10. package/dist/main.js.map +1 -1
  11. package/dist/services/CardService.js +14 -14
  12. package/dist/services/CardService.js.map +1 -1
  13. package/dist/services/ChatService.d.ts +12 -1
  14. package/dist/services/ChatService.d.ts.map +1 -1
  15. package/dist/services/ChatService.js +53 -19
  16. package/dist/services/ChatService.js.map +1 -1
  17. package/dist/services/LogService.js +2 -2
  18. package/dist/services/LogService.js.map +1 -1
  19. package/dist/services/PipelineService.js +33 -33
  20. package/dist/services/PipelineService.js.map +1 -1
  21. package/dist/services/ProjectService.js +16 -16
  22. package/dist/services/ProjectService.js.map +1 -1
  23. package/dist/services/SkillService.js +9 -9
  24. package/dist/services/SkillService.js.map +1 -1
  25. package/dist/services/SystemService.js +11 -11
  26. package/dist/services/SystemService.js.map +1 -1
  27. package/dist/services/WorkerService.js +11 -11
  28. package/dist/services/WorkerService.js.map +1 -1
  29. package/dist/services/executors.d.ts +1 -0
  30. package/dist/services/executors.d.ts.map +1 -1
  31. package/dist/services/executors.js +7 -0
  32. package/dist/services/executors.js.map +1 -1
  33. package/package.json +1 -1
@@ -46,13 +46,13 @@ function resolveProjectDir(flagProject, log) {
46
46
  if (match && existsSync(resolve(match[1], '.claude')))
47
47
  return resolve(match[1]);
48
48
  }
49
- log.error(`无法定位项目 "${flagProject}" 的工作目录(需含 .claude/)`);
49
+ log.error(`Cannot resolve working directory for project "${flagProject}" (must contain .claude/)`);
50
50
  return null;
51
51
  }
52
52
  const cwd = process.cwd();
53
53
  if (existsSync(resolve(cwd, '.claude')))
54
54
  return cwd;
55
- log.error('当前目录没有 .claude/;请在项目根目录运行,或用 --project <name>');
55
+ log.error('No .claude/ in the current directory; run from the project root or pass --project <name>');
56
56
  return null;
57
57
  }
58
58
  function resolveBundledSkillsDir() {
@@ -90,7 +90,7 @@ export async function executeSkillCommand(subcommand, positionals, flags) {
90
90
  function skillList(log, flagProject) {
91
91
  const users = listUserSkills();
92
92
  if (users.length === 0) {
93
- log.info(`~/.coral/skills/ 还没有 skill试试 \`sps skill sync\``);
93
+ log.info('~/.coral/skills/ has no skills yet try `sps skill sync`');
94
94
  return;
95
95
  }
96
96
  const projectDir = resolveProjectDir(flagProject, log);
@@ -134,13 +134,13 @@ function skillAdd(log, name, flagProject) {
134
134
  log.ok(`${name} → ${projectSkillsDir(projectDir)}/${name} (copied, symlink fallback)`);
135
135
  break;
136
136
  case 'skipped-linked':
137
- log.info(`${name} linked,跳过`);
137
+ log.info(`${name} already linked, skipping`);
138
138
  break;
139
139
  case 'skipped-frozen':
140
- log.info(`${name} frozen,跳过(先 unfreeze add 可切回 symlink)`);
140
+ log.info(`${name} already frozen, skipping (run unfreeze before add to switch back to symlink)`);
141
141
  break;
142
142
  case 'skipped-absent':
143
- log.error(`~/.coral/skills/${name} 不存在;\`sps skill list\` 看可用的`);
143
+ log.error(`~/.coral/skills/${name} does not exist; run \`sps skill list\` to see what is available`);
144
144
  process.exit(1);
145
145
  }
146
146
  }
@@ -154,10 +154,10 @@ function skillRemove(log, name, flagProject) {
154
154
  process.exit(2);
155
155
  const removed = removeSkillFromProject(projectDir, name);
156
156
  if (removed) {
157
- log.ok(`移除 ${name}(~/.coral/skills/ 下的原始 skill 未动)`);
157
+ log.ok(`Removed ${name} (the original skill under ~/.coral/skills/ is untouched)`);
158
158
  }
159
159
  else {
160
- log.info(`${name} 不在项目中,无需移除`);
160
+ log.info(`${name} is not in this project, nothing to remove`);
161
161
  }
162
162
  }
163
163
  function skillFreeze(log, name, flagProject) {
@@ -170,22 +170,22 @@ function skillFreeze(log, name, flagProject) {
170
170
  process.exit(2);
171
171
  const info = inspectProjectSkill(projectDir, name);
172
172
  if (!info) {
173
- log.error(`~/.coral/skills/${name} 不存在`);
173
+ log.error(`~/.coral/skills/${name} does not exist`);
174
174
  process.exit(1);
175
175
  }
176
176
  if (info.state === 'absent') {
177
- log.error(`${name} 还没在项目里,先 \`sps skill add ${name}\``);
177
+ log.error(`${name} is not in this project yet — run \`sps skill add ${name}\` first`);
178
178
  process.exit(1);
179
179
  }
180
180
  if (info.state === 'frozen') {
181
- log.info(`${name} 已是 frozen`);
181
+ log.info(`${name} is already frozen`);
182
182
  return;
183
183
  }
184
184
  if (freezeSkillInProject(projectDir, name)) {
185
- log.ok(`${name} symlink → 真实副本;现在可以在项目里改动了`);
185
+ log.ok(`${name}: symlink → real copy; you can now edit it locally`);
186
186
  }
187
187
  else {
188
- log.error(`freeze 失败`);
188
+ log.error('freeze failed');
189
189
  process.exit(1);
190
190
  }
191
191
  }
@@ -199,18 +199,18 @@ function skillUnfreeze(log, name, flagProject) {
199
199
  process.exit(2);
200
200
  const info = inspectProjectSkill(projectDir, name);
201
201
  if (!info) {
202
- log.error(`~/.coral/skills/${name} 不存在`);
202
+ log.error(`~/.coral/skills/${name} does not exist`);
203
203
  process.exit(1);
204
204
  }
205
205
  if (info.state === 'linked') {
206
- log.info(`${name} 已是 symlink`);
206
+ log.info(`${name} is already a symlink`);
207
207
  return;
208
208
  }
209
209
  if (unfreezeSkillInProject(projectDir, name)) {
210
- log.ok(`${name} 真实副本 → symlink;项目里的本地改动已丢弃`);
210
+ log.ok(`${name}: real copy → symlink; local edits in the project have been discarded`);
211
211
  }
212
212
  else {
213
- log.error(`unfreeze 失败`);
213
+ log.error('unfreeze failed');
214
214
  process.exit(1);
215
215
  }
216
216
  }
@@ -1 +1 @@
1
- {"version":3,"file":"skillCommand.js","sourceRoot":"","sources":["../../src/commands/skillCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,cAAc,GACf,MAAM,uBAAuB,CAAC;AAE/B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,aAAa,CAAC;AAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,WAA+B,EAAE,GAAW;IACrE,IAAI,WAAW,EAAE,CAAC;QAChB,mBAAmB;QACnB,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QACpC,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAAE,OAAO,MAAM,CAAC;QAC1D,qDAAqD;QACrD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YACzD,IAAI,KAAK,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,CAAC;QACD,GAAG,CAAC,KAAK,CAAC,WAAW,WAAW,sBAAsB,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IACpD,GAAG,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB;IAC9B,wDAAwD;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACzD,IAAI,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IACxC,qCAAqC;IACrC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;IAC/E,IAAI,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IACxC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,UAAkB,EAClB,WAAqB,EACrB,KAA8B;IAE9B,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAE,KAAK,CAAC,OAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9F,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACrC,KAAK,KAAK;YACR,OAAO,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QACpD,KAAK,QAAQ;YACX,OAAO,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QACvD,KAAK,QAAQ;YACX,OAAO,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QACvD,KAAK,UAAU;YACb,OAAO,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QACzD,KAAK,MAAM;YACT,OAAO,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvC;YACE,OAAO,CAAC,KAAK,CAAC,mFAAmF,CAAC,CAAC;YACnG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,WAA+B;IAC7D,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,GAAG,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QAC/D,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,wBAAwB,cAAc,EAAE,MAAM,CAAC,CAAC;IAC5D,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,mBAAmB,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ;oBAAE,KAAK,GAAG,2BAA2B,CAAC;qBAC5D,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ;oBAAE,KAAK,GAAG,2BAA2B,CAAC;YACxE,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,cAAc,UAAU,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW,EAAE,IAAwB,EAAE,WAA+B;IACtF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,UAAU,GAAG,iBAAiB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACvD,IAAI,CAAC,UAAU;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEjC,MAAM,MAAM,GAAG,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACnD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ;YACX,qBAAqB,CAAC,UAAU,CAAC,CAAC;YAClC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,MAAM,gBAAgB,CAAC,UAAU,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC;YACtE,MAAM;QACR,KAAK,QAAQ;YACX,qBAAqB,CAAC,UAAU,CAAC,CAAC;YAClC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,MAAM,gBAAgB,CAAC,UAAU,CAAC,IAAI,IAAI,6BAA6B,CAAC,CAAC;YACvF,MAAM;QACR,KAAK,gBAAgB;YACnB,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,cAAc,CAAC,CAAC;YAChC,MAAM;QACR,KAAK,gBAAgB;YACnB,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,4CAA4C,CAAC,CAAC;YAC9D,MAAM;QACR,KAAK,gBAAgB;YACnB,GAAG,CAAC,KAAK,CAAC,mBAAmB,IAAI,8BAA8B,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,IAAwB,EAAE,WAA+B;IACzF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,UAAU,GAAG,iBAAiB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACvD,IAAI,CAAC,UAAU;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEjC,MAAM,OAAO,GAAG,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACzD,IAAI,OAAO,EAAE,CAAC;QACZ,GAAG,CAAC,EAAE,CAAC,MAAM,IAAI,kCAAkC,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,aAAa,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,IAAwB,EAAE,WAA+B;IACzF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,UAAU,GAAG,iBAAiB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACvD,IAAI,CAAC,UAAU;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEjC,MAAM,IAAI,GAAG,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,GAAG,CAAC,KAAK,CAAC,mBAAmB,IAAI,MAAM,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,6BAA6B,IAAI,IAAI,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC;QAC9B,OAAO;IACT,CAAC;IACD,IAAI,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,6BAA6B,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,GAAW,EAAE,IAAwB,EAAE,WAA+B;IAC3F,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,UAAU,GAAG,iBAAiB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACvD,IAAI,CAAC,UAAU;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEjC,MAAM,IAAI,GAAG,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,GAAG,CAAC,KAAK,CAAC,mBAAmB,IAAI,MAAM,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,aAAa,CAAC,CAAC;QAC/B,OAAO;IACT,CAAC;IACD,IAAI,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,6BAA6B,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,KAAc;IAC5C,yCAAyC;IACzC,MAAM,UAAU,GAAG,uBAAuB,EAAE,CAAC;IAC7C,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,uBAAuB,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACpF,IAAI,MAAM,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,MAAM,CAAC,CAAC;QAC5C,IAAI,OAAO,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,UAAU,CAAC,CAAC;QAClD,IAAI,OAAO,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,OAAO,CAAC,CAAC;QAC/C,GAAG,CAAC,EAAE,CAAC,mBAAmB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;SAAM,IAAI,KAAK,EAAE,CAAC;QACjB,GAAG,CAAC,IAAI,CAAC,mBAAmB,OAAO,sBAAsB,CAAC,CAAC;IAC7D,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,gCAAgC,OAAO,8CAA8C,CAAC,CAAC;IAClG,CAAC;IAED,oEAAoE;IACpE,yDAAyD;IACzD,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,EAAE,CAAC,6BAA6B,MAAM,SAAS,CAAC,CAAC;;YAChE,GAAG,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"skillCommand.js","sourceRoot":"","sources":["../../src/commands/skillCommand.ts"],"names":[],"mappings":"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"}
@@ -289,9 +289,9 @@ export function createChatRoute(log, chat) {
289
289
  if (id.startsWith('session-')) {
290
290
  return c.json({
291
291
  type: 'validation',
292
- title: 'CLI 会话只读',
292
+ title: 'CLI session is read-only',
293
293
  status: 422,
294
- detail: '该会话由 sps agent 创建,请用 `sps agent --chat --name <名称>` 续聊',
294
+ detail: 'This session was created by sps agent continue it via `sps agent --chat --name <name>`',
295
295
  }, 422);
296
296
  }
297
297
  const session = readSession(id);
@@ -326,7 +326,7 @@ export function createChatRoute(log, chat) {
326
326
  type: 'conflict',
327
327
  title: 'session busy',
328
328
  status: 409,
329
- detail: '上一条消息还在生成中,先等完成或点中断',
329
+ detail: 'The previous message is still generating — wait for it to finish or click interrupt',
330
330
  }, 409);
331
331
  }
332
332
  if (activeSessions.size >= MAX_CONCURRENT_SESSIONS) {
@@ -334,7 +334,7 @@ export function createChatRoute(log, chat) {
334
334
  type: 'too-many-requests',
335
335
  title: 'concurrency limit',
336
336
  status: 429,
337
- detail: `最多同时 ${MAX_CONCURRENT_SESSIONS} chat 会话在生成。先等其它完成或中断。`,
337
+ detail: `At most ${MAX_CONCURRENT_SESSIONS} chat sessions can be generating at once — wait for one to finish or interrupt it.`,
338
338
  }, 429);
339
339
  }
340
340
  const userMsg = {
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/console/routes/chat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAClC,MAAM,2BAA2B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACrD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;AAEzC;;;;GAIG;AACH,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;AACnC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AA8B3B,SAAS,WAAW,CAAC,EAAU;IAC7B,OAAO,OAAO,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,WAAW,CAAC,EAAU;IAC7B,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC1B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAyB,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,CAAuB;IAC3C,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,WAAW,CAAC,YAAoB;IACvC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,OAAO,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AAChE,CAAC;AAED,SAAS,QAAQ,CAAC,SAAiB;IACjC,OAAO,gBAAgB,SAAS,EAAE,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,SAAiB,EACjB,WAAmB,EACnB,WAAmB,EACnB,GAAW,EACX,WAAsB;IAEtB,8CAA8C;IAC9C,MAAM,UAAU,GAAG,2BAA2B,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACzE,IAAI,CAAC,CAAC,MAAM,YAAY,EAAE,CAAC,EAAE,CAAC;QAC5B,sBAAsB,CACpB,SAAS,EACT;YACE,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,8BAA8B;YACvC,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC5B,MAAM,EAAE,OAAO;SAChB,EACD,GAAG,CACJ,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IACjC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEzB,gFAAgF;IAChF,yEAAyE;IACzE,2DAA2D;IAC3D,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,SAAS,EAAE,GAAG,IAAI,SAAS,CAAC;IAE/C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,sBAAsB,CACpB,SAAS,EACT;YACE,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,yBAAyB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACpF,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC5B,MAAM,EAAE,OAAO;SAChB,EACD,GAAG,CACJ,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,IAAI,eAAe,GAAG,EAAE,CAAC;IACzB,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,MAAM,OAAO,GAAG,CAAC,KAAK,IAAmB,EAAE;QACzC,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YACrC,IAAI,GAAG,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;gBACzB,IAAI,SAAS;oBAAE,SAAS;gBACxB,MAAM,eAAe,GACnB,2BAA2B,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;gBAC5E,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;oBACzB,SAAS,GAAG,IAAI,CAAC;oBACjB,GAAG,CAAC,IAAI,CACN,QAAQ,SAAS,gCAAgC,2BAA2B,qBAAqB,CAClG,CAAC;oBACF,SAAS;gBACX,CAAC;gBACD,MAAM,KAAK,GACT,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,eAAe;oBACrD,CAAC,CAAC,GAAG,CAAC,IAAI;oBACV,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACpF,eAAe,IAAI,KAAK,CAAC;gBACzB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACvC,IAAI,IAAI,EAAE,IAAI,KAAK,MAAM;oBAAE,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC;;oBACzC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE;oBACtC,SAAS;oBACT,WAAW;oBACX,IAAI,EAAE,KAAK;iBACZ,CAAC,CAAC;gBACH,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACnC,SAAS,GAAG,IAAI,CAAC;oBACjB,GAAG,CAAC,IAAI,CACN,QAAQ,SAAS,6BAA6B,2BAA2B,QAAQ,CAClF,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,UAAU;oBAChB,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,MAAM,EAAE,GAAG,CAAC,MAAM;iBACnB,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE;oBAC1C,SAAS;oBACT,WAAW;oBACX,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,MAAM,EAAE,GAAG,CAAC,MAAM;iBACnB,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,GAAG,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;gBACvC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC1E,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;oBAAE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;gBAC/D,OAAO,CAAC,IAAI,CAAC,gCAAgC,EAAE;oBAC7C,SAAS;oBACT,WAAW;oBACX,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,MAAM,EAAE,GAAG,CAAC,MAAM;iBACnB,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,GAAG,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBACpC,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACpC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC;gBAC5C,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,KAAK,WAAW,CAAC;gBACnD,MAAM,GAAG,GAAgB;oBACvB,EAAE,EAAE,WAAW;oBACf,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;oBACrC,OAAO,EACL,eAAe,CAAC,IAAI,EAAE;wBACtB,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvE,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;oBAC9C,SAAS,EAAE,SAAS,IAAI,SAAS;oBACjC,EAAE;oBACF,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU;iBACvC,CAAC;gBACF,sBAAsB,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC5C,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,CAAC,MAAM,EAAE,CAAC;QACtB,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,sBAAsB,CACpB,SAAS,EACT;YACE,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,oBAAoB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YAC/E,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC5B,MAAM,EAAE,OAAO;SAChB,EACD,GAAG,CACJ,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,CAAC;QACd,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB;QACnB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,2BAA2B,CAAC,IAAY,EAAE,WAAsB;IACvE,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,mDAAmD,CAAC,CAAC;IACxE,KAAK,MAAM,CAAC,IAAI,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClD,OAAO,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,sBAAsB,CAAC,SAAiB,EAAE,GAAgB,EAAE,GAAW;IAC9E,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,CAAC,aAAa,GAAG,GAAG,CAAC,EAAE,CAAC;IAC/B,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC/C,YAAY,CAAC,OAAO,CAAC,CAAC;IACtB,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE;QACpC,SAAS;QACT,WAAW,EAAE,GAAG,CAAC,EAAE;QACnB,OAAO,EAAE,GAAG;KACb,CAAC,CAAC;IACH,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;QAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,SAAS,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;;QAEvE,GAAG,CAAC,EAAE,CACJ,QAAQ,SAAS,0BAA0B,GAAG,CAAC,OAAO,CAAC,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,UAAU,CAC1G,CAAC;AACN,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,IAAiB;IAC5D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAEvB,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC/B,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAIjD,CAAC;QACF,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;YAC1B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAQ,CAAC,CAAC;QAC/E,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAChE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACnC,OAAO,UAAU,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC5C,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,CAAC;QACvF,OAAO,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACtC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAQ,CAAC,CAAC;QAC/E,yCAAyC;QACzC,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3C,MAAM,GAAG,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,UAAU,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC;YACP,eAAe;QACjB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC9C,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAQ,CAAC,CAAC;QAC/E,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH;;;OAGG;IACH,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,sDAAsD;QACtD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,UAAU;gBACjB,MAAM,EAAE,GAAG;gBACX,MAAM,EAAE,wDAAwD;aACjE,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAE1C,CAAC;QACT,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;QACrF,CAAC;QACD,uCAAuC;QACvC,IAAI,WAAiC,CAAC;QACtC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnE,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;oBAAE,SAAS;gBACvD,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;gBACzB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC1C,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,kCAAkC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAC/F,GAAG,CACJ,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBACzB,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EACnF,GAAG,CACJ,CAAC;gBACJ,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,WAAW,GAAG,KAAK,CAAC;QAC5C,CAAC;QAED,IAAI,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,cAAc;gBACrB,MAAM,EAAE,GAAG;gBACX,MAAM,EAAE,qBAAqB;aAC9B,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,IAAI,cAAc,CAAC,IAAI,IAAI,uBAAuB,EAAE,CAAC;YACnD,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,IAAI,EAAE,mBAAmB;gBACzB,KAAK,EAAE,mBAAmB;gBAC1B,MAAM,EAAE,GAAG;gBACX,MAAM,EAAE,QAAQ,uBAAuB,0BAA0B;aAClE,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAgB;YAC3B,EAAE,EAAE,UAAU,EAAE;YAChB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC5B,MAAM,EAAE,UAAU;YAClB,WAAW;SACZ,CAAC;QACF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC/C,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7E,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAElE,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACnC,SAAS,EAAE,EAAE;YACb,WAAW;YACX,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SAC7B,CAAC,CAAC;QAEH,uBAAuB,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACrF,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,mBAAmB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7F,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;QACpB,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,KAAK,CAAC,UAAU;gBACd,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,IAAI,MAAM,GAAG,KAAK,CAAC;gBACnB,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,IAAa,EAAQ,EAAE;oBAClD,IAAI,MAAM;wBAAE,OAAO;oBACnB,IAAI,CAAC;wBACH,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;oBACvF,CAAC;oBAAC,MAAM,CAAC;wBACP,MAAM,GAAG,IAAI,CAAC;oBAChB,CAAC;gBACH,CAAC,CAAC;gBAEF,MAAM,UAAU,GAAG;oBACjB,cAAc;oBACd,sBAAsB;oBACtB,yBAAyB;oBACzB,6BAA6B;oBAC7B,gCAAgC;oBAChC,uBAAuB;iBACxB,CAAC;gBACF,MAAM,QAAQ,GAA0D,EAAE,CAAC;gBAC3E,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;oBAC/B,MAAM,EAAE,GAAG,CAAC,IAAa,EAAQ,EAAE;wBACjC,IACE,OAAO,IAAI,KAAK,QAAQ;4BACxB,IAAI,KAAK,IAAI;4BACZ,IAA+B,CAAC,SAAS,KAAK,SAAS;4BAExD,OAAO;wBACT,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBACpB,CAAC,CAAC;oBACF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC/B,CAAC;gBAED,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;oBACjC,IAAI,MAAM;wBAAE,OAAO;oBACnB,IAAI,CAAC;wBACH,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;oBAClE,CAAC;oBAAC,MAAM,CAAC;wBACP,MAAM,GAAG,IAAI,CAAC;oBAChB,CAAC;gBACH,CAAC,EAAE,MAAM,CAAC,CAAC;gBAEX,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;oBAC/C,MAAM,GAAG,IAAI,CAAC;oBACd,KAAK,MAAM,CAAC,IAAI,QAAQ;wBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;oBACrD,aAAa,CAAC,SAAS,CAAC,CAAC;oBACzB,IAAI,CAAC;wBACH,UAAU,CAAC,KAAK,EAAE,CAAC;oBACrB,CAAC;oBAAC,MAAM,CAAC;wBACP,YAAY;oBACd,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;QACH,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE;YAC1B,OAAO,EAAE;gBACP,cAAc,EAAE,mBAAmB;gBACnC,eAAe,EAAE,wBAAwB;gBACzC,UAAU,EAAE,YAAY;aACzB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/console/routes/chat.ts"],"names":[],"mappings":"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"}
@@ -56,7 +56,7 @@ export function createFsRoute() {
56
56
  type: 'validation',
57
57
  title: 'directory not browsable',
58
58
  status: 422,
59
- detail: `${target} 是系统目录,不允许浏览`,
59
+ detail: `${target} is a system directory and cannot be browsed`,
60
60
  }, 422);
61
61
  }
62
62
  let names;
@@ -132,7 +132,7 @@ export function createFsRoute() {
132
132
  type: 'validation',
133
133
  title: 'file too large',
134
134
  status: 413,
135
- detail: `单文件上限 ${UPLOAD_MAX_BYTES / 1024 / 1024} MB;当前 ${(file.size / 1024 / 1024).toFixed(2)} MB`,
135
+ detail: `Per-file limit is ${UPLOAD_MAX_BYTES / 1024 / 1024} MB; this file is ${(file.size / 1024 / 1024).toFixed(2)} MB`,
136
136
  }, 413);
137
137
  }
138
138
  // 落盘
@@ -1 +1 @@
1
- {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../src/console/routes/fs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../src/console/routes/fs.ts"],"names":[],"mappings":"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"}
@@ -543,7 +543,7 @@ ${g.join(`
543
543
  https://github.com/highlightjs/highlight.js/issues/2277`),Kt=he,ut=Ce),Ge===void 0&&(Ge=!0);const mn={code:ut,language:Kt};Rr("before:highlight",mn);const Qn=mn.result?mn.result:na(mn.language,mn.code,Ge);return Qn.code=mn.code,Rr("after:highlight",Qn),Qn}function na(he,Ce,Ge,ut){const Kt=Object.create(null);function mn(xe,ke){return xe.keywords[ke]}function Qn(){if(!Le.keywords){Vt.addText(ft);return}let xe=0;Le.keywordPatternRe.lastIndex=0;let ke=Le.keywordPatternRe.exec(ft),$e="";for(;ke;){$e+=ft.substring(xe,ke.index);const We=ln.case_insensitive?ke[0].toLowerCase():ke[0],Dt=mn(Le,We);if(Dt){const[ui,Zl]=Dt;if(Vt.addText($e),$e="",Kt[We]=(Kt[We]||0)+1,Kt[We]<=xs&&(La+=Zl),ui.startsWith("_"))$e+=ke[0];else{const zc=ln.classNameAliases[ui]||ui;Yn(ke[0],zc)}}else $e+=ke[0];xe=Le.keywordPatternRe.lastIndex,ke=Le.keywordPatternRe.exec(ft)}$e+=ft.substring(xe),Vt.addText($e)}function On(){if(ft==="")return;let xe=null;if(typeof Le.subLanguage=="string"){if(!re[Le.subLanguage]){Vt.addText(ft);return}xe=na(Le.subLanguage,ft,!0,Lc[Le.subLanguage]),Lc[Le.subLanguage]=xe._top}else xe=Es(ft,Le.subLanguage.length?Le.subLanguage:null);Le.relevance>0&&(La+=xe.relevance),Vt.__addSublanguage(xe._emitter,xe.language)}function _t(){Le.subLanguage!=null?On():Qn(),ft=""}function Yn(xe,ke){xe!==""&&(Vt.startScope(ke),Vt.addText(xe),Vt.endScope())}function jc(xe,ke){let $e=1;const We=ke.length-1;for(;$e<=We;){if(!xe._emit[$e]){$e++;continue}const Dt=ln.classNameAliases[xe[$e]]||xe[$e],ui=ke[$e];Dt?Yn(ui,Dt):(ft=ui,Qn(),ft=""),$e++}}function ws(xe,ke){return xe.scope&&typeof xe.scope=="string"&&Vt.openNode(ln.classNameAliases[xe.scope]||xe.scope),xe.beginScope&&(xe.beginScope._wrap?(Yn(ft,ln.classNameAliases[xe.beginScope._wrap]||xe.beginScope._wrap),ft=""):xe.beginScope._multi&&(jc(xe.beginScope,ke),ft="")),Le=Object.create(xe,{parent:{value:Le}}),Le}function Vl(xe,ke,$e){let We=T(xe.endRe,$e);if(We){if(xe["on:end"]){const Dt=new t(xe);xe["on:end"](ke,Dt),Dt.isMatchIgnored&&(We=!1)}if(We){for(;xe.endsParent&&xe.parent;)xe=xe.parent;return xe}}if(xe.endsWithParent)return Vl(xe.parent,ke,$e)}function _s(xe){return Le.matcher.regexIndex===0?(ft+=xe[0],1):(za=!0,0)}function rd(xe){const ke=xe[0],$e=xe.rule,We=new t($e),Dt=[$e.__beforeBegin,$e["on:begin"]];for(const ui of Dt)if(ui&&(ui(xe,We),We.isMatchIgnored))return _s(ke);return $e.skip?ft+=ke:($e.excludeBegin&&(ft+=ke),_t(),!$e.returnBegin&&!$e.excludeBegin&&(ft=ke)),ws($e,xe),$e.returnBegin?0:ke.length}function Rn(xe){const ke=xe[0],$e=Ce.substring(xe.index),We=Vl(Le,xe,$e);if(!We)return Cr;const Dt=Le;Le.endScope&&Le.endScope._wrap?(_t(),Yn(ke,Le.endScope._wrap)):Le.endScope&&Le.endScope._multi?(_t(),jc(Le.endScope,xe)):Dt.skip?ft+=ke:(Dt.returnEnd||Dt.excludeEnd||(ft+=ke),_t(),Dt.excludeEnd&&(ft=ke));do Le.scope&&Vt.closeNode(),!Le.skip&&!Le.subLanguage&&(La+=Le.relevance),Le=Le.parent;while(Le!==We.parent);return We.starts&&ws(We.starts,xe),Dt.returnEnd?0:ke.length}function Wl(){const xe=[];for(let ke=Le;ke!==ln;ke=ke.parent)ke.scope&&xe.unshift(ke.scope);xe.forEach(ke=>Vt.openNode(ke))}let Mr={};function ks(xe,ke){const $e=ke&&ke[0];if(ft+=xe,$e==null)return _t(),0;if(Mr.type==="begin"&&ke.type==="end"&&Mr.index===ke.index&&$e===""){if(ft+=Ce.slice(ke.index,ke.index+1),!Nt){const We=new Error(`0 width match regex (${he})`);throw We.languageName=he,We.badRule=Mr.rule,We}return 1}if(Mr=ke,ke.type==="begin")return rd(ke);if(ke.type==="illegal"&&!Ge){const We=new Error('Illegal lexeme "'+$e+'" for mode "'+(Le.scope||"<unnamed>")+'"');throw We.mode=Le,We}else if(ke.type==="end"){const We=Rn(ke);if(We!==Cr)return We}if(ke.type==="illegal"&&$e==="")return ft+=`
544
544
  `,1;if(Xl>1e5&&Xl>ke.index*3)throw new Error("potential infinite loop, way more iterations than matches");return ft+=$e,$e.length}const ln=Sn(he);if(!ln)throw jt(vt.replace("{}",he)),new Error('Unknown language: "'+he+'"');const Dc=sn(ln);let Ns="",Le=ut||Dc;const Lc={},Vt=new Se.__emitter(Se);Wl();let ft="",La=0,ra=0,Xl=0,za=!1;try{if(ln.__emitTokens)ln.__emitTokens(Ce,Vt);else{for(Le.matcher.considerAll();;){Xl++,za?za=!1:Le.matcher.considerAll(),Le.matcher.lastIndex=ra;const xe=Le.matcher.exec(Ce);if(!xe)break;const ke=Ce.substring(ra,xe.index),$e=ks(ke,xe);ra=xe.index+$e}ks(Ce.substring(ra))}return Vt.finalize(),Ns=Vt.toHTML(),{language:he,value:Ns,relevance:La,illegal:!1,_emitter:Vt,_top:Le}}catch(xe){if(xe.message&&xe.message.includes("Illegal"))return{language:he,value:En(Ce),illegal:!0,relevance:0,_illegalBy:{message:xe.message,index:ra,context:Ce.slice(ra-100,ra+100),mode:xe.mode,resultSoFar:Ns},_emitter:Vt};if(Nt)return{language:he,value:En(Ce),illegal:!1,relevance:0,errorRaised:xe,_emitter:Vt,_top:Le};throw xe}}function vs(he){const Ce={value:En(he),illegal:!1,relevance:0,_top:_e,_emitter:new Se.__emitter(Se)};return Ce._emitter.addText(he),Ce}function Es(he,Ce){Ce=Ce||Se.languages||Object.keys(re);const Ge=vs(he),ut=Ce.filter(Sn).filter(ja).map(_t=>na(_t,he,!1));ut.unshift(Ge);const Kt=ut.sort((_t,Yn)=>{if(_t.relevance!==Yn.relevance)return Yn.relevance-_t.relevance;if(_t.language&&Yn.language){if(Sn(_t.language).supersetOf===Yn.language)return 1;if(Sn(Yn.language).supersetOf===_t.language)return-1}return 0}),[mn,Qn]=Kt,On=mn;return On.secondBest=Qn,On}function Pi(he,Ce,Ge){const ut=Ce&&ve[Ce]||Ge;he.classList.add("hljs"),he.classList.add(`language-${ut}`)}function Ht(he){let Ce=null;const Ge=qt(he);if(ze(Ge))return;if(Rr("before:highlightElement",{el:he,language:Ge}),he.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",he);return}if(he.children.length>0&&(Se.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(he)),Se.throwUnescapedHTML))throw new Fi("One of your code blocks includes unescaped HTML.",he.innerHTML);Ce=he;const ut=Ce.textContent,Kt=Ge?At(ut,{language:Ge,ignoreIllegals:!0}):Es(ut);he.innerHTML=Kt.value,he.dataset.highlighted="yes",Pi(he,Ge,Kt.language),he.result={language:Kt.language,re:Kt.relevance,relevance:Kt.relevance},Kt.secondBest&&(he.secondBest={language:Kt.secondBest.language,relevance:Kt.secondBest.relevance}),Rr("after:highlightElement",{el:he,result:Kt,text:ut})}function hn(he){Se=Ac(Se,he)}const Ma=()=>{Ss(),ne("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function Ql(){Ss(),ne("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let Oc=!1;function Ss(){function he(){Ss()}if(document.readyState==="loading"){Oc||window.addEventListener("DOMContentLoaded",he,!1),Oc=!0;return}document.querySelectorAll(Se.cssSelector).forEach(Ht)}function Rc(he,Ce){let Ge=null;try{Ge=Ce(B)}catch(ut){if(jt("Language definition for '{}' could not be registered.".replace("{}",he)),Nt)jt(ut);else throw ut;Ge=_e}Ge.name||(Ge.name=he),re[he]=Ge,Ge.rawDefinition=Ce.bind(null,B),Ge.aliases&&ia(Ge.aliases,{languageName:he})}function Or(he){delete re[he];for(const Ce of Object.keys(ve))ve[Ce]===he&&delete ve[Ce]}function Yl(){return Object.keys(re)}function Sn(he){return he=(he||"").toLowerCase(),re[he]||re[ve[he]]}function ia(he,{languageName:Ce}){typeof he=="string"&&(he=[he]),he.forEach(Ge=>{ve[Ge.toLowerCase()]=Ce})}function ja(he){const Ce=Sn(he);return Ce&&!Ce.disableAutodetect}function Da(he){he["before:highlightBlock"]&&!he["before:highlightElement"]&&(he["before:highlightElement"]=Ce=>{he["before:highlightBlock"](Object.assign({block:Ce.el},Ce))}),he["after:highlightBlock"]&&!he["after:highlightElement"]&&(he["after:highlightElement"]=Ce=>{he["after:highlightBlock"](Object.assign({block:Ce.el},Ce))})}function Yt(he){Da(he),Ie.push(he)}function Mc(he){const Ce=Ie.indexOf(he);Ce!==-1&&Ie.splice(Ce,1)}function Rr(he,Ce){const Ge=he;Ie.forEach(function(ut){ut[Ge]&&ut[Ge](Ce)})}function aa(he){return ne("10.7.0","highlightBlock will be removed entirely in v12.0"),ne("10.7.0","Please use highlightElement now."),Ht(he)}Object.assign(B,{highlight:At,highlightAuto:Es,highlightAll:Ss,highlightElement:Ht,highlightBlock:aa,configure:hn,initHighlighting:Ma,initHighlightingOnLoad:Ql,registerLanguage:Rc,unregisterLanguage:Or,listLanguages:Yl,getLanguage:Sn,registerAliases:ia,autoDetection:ja,inherit:Ac,addPlugin:Yt,removePlugin:Mc}),B.debugMode=function(){Nt=!1},B.safeMode=function(){Nt=!0},B.versionString=ct,B.regex={concat:w,lookahead:x,either:_,optional:E,anyNumberOfTimes:v};for(const he in Re)typeof Re[he]=="object"&&e(Re[he]);return Object.assign(B,Re),B},An=Ar({});return An.newInstance=()=>Ar({}),Km=An,An.HighlightJS=An,An.default=An,Km}var uB=cB();const fB=Dp(uB),l1={},dB="hljs-";function hB(e){const t=fB.newInstance();return e&&o(e),{highlight:n,highlightAuto:a,listLanguages:s,register:o,registerAlias:c,registered:f};function n(h,m,b){const g=b||l1,x=typeof g.prefix=="string"?g.prefix:dB;if(!t.getLanguage(h))throw new Error("Unknown language: `"+h+"` is not registered");t.configure({__emitter:mB,classPrefix:x});const v=t.highlight(m,{ignoreIllegals:!0,language:h});if(v.errorRaised)throw new Error("Could not highlight with `Highlight.js`",{cause:v.errorRaised});const E=v._emitter.root,w=E.data;return w.language=v.language,w.relevance=v.relevance,E}function a(h,m){const g=(m||l1).subset||s();let x=-1,v=0,E;for(;++x<g.length;){const w=g[x];if(!t.getLanguage(w))continue;const k=n(w,h,m);k.data&&k.data.relevance!==void 0&&k.data.relevance>v&&(v=k.data.relevance,E=k)}return E||{type:"root",children:[],data:{language:void 0,relevance:v}}}function s(){return t.listLanguages()}function o(h,m){if(typeof h=="string")t.registerLanguage(h,m);else{let b;for(b in h)Object.hasOwn(h,b)&&t.registerLanguage(b,h[b])}}function c(h,m){if(typeof h=="string")t.registerAliases(typeof m=="string"?m:[...m],{languageName:h});else{let b;for(b in h)if(Object.hasOwn(h,b)){const g=h[b];t.registerAliases(typeof g=="string"?g:[...g],{languageName:b})}}}function f(h){return!!t.getLanguage(h)}}class mB{constructor(t){this.options=t,this.root={type:"root",children:[],data:{language:void 0,relevance:0}},this.stack=[this.root]}addText(t){if(t==="")return;const n=this.stack[this.stack.length-1],a=n.children[n.children.length-1];a&&a.type==="text"?a.value+=t:n.children.push({type:"text",value:t})}startScope(t){this.openNode(String(t))}endScope(){this.closeNode()}__addSublanguage(t,n){const a=this.stack[this.stack.length-1],s=t.root.children;n?a.children.push({type:"element",tagName:"span",properties:{className:[n]},children:s}):a.children.push(...s)}openNode(t){const n=this,a=t.split(".").map(function(c,f){return f?c+"_".repeat(f):n.options.classPrefix+c}),s=this.stack[this.stack.length-1],o={type:"element",tagName:"span",properties:{className:a},children:[]};s.children.push(o),this.stack.push(o)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return""}}const pB={};function Bg(e){const t=e||pB,n=t.aliases,a=t.detect||!1,s=t.languages||oB,o=t.plainText,c=t.prefix,f=t.subset;let h="hljs";const m=hB(s);if(n&&m.registerAlias(n),c){const b=c.indexOf("-");h=b===-1?c:c.slice(0,b)}return function(b,g){ad(b,"element",function(x,v,E){if(x.tagName!=="code"||!E||E.type!=="element"||E.tagName!=="pre")return;const w=gB(x);if(w===!1||!w&&!a||w&&o&&o.includes(w))return;Array.isArray(x.properties.className)||(x.properties.className=[]),x.properties.className.includes(h)||x.properties.className.unshift(h);const k=LI(x,{whitespace:"pre"});let _;try{_=w?m.highlight(w,k,{prefix:c}):m.highlightAuto(k,{prefix:c,subset:f})}catch(A){const T=A;if(w&&/Unknown language/.test(T.message)){g.message("Cannot highlight as `"+w+"`, it’s not registered",{ancestors:[E,x],cause:T,place:x.position,ruleId:"missing-language",source:"rehype-highlight"});return}throw T}!w&&_.data&&_.data.language&&x.properties.className.push("language-"+_.data.language),_.children.length>0&&(x.children=_.children)})}}function gB(e){const t=e.properties.className;let n=-1;if(!Array.isArray(t))return;let a;for(;++n<t.length;){const s=String(t[n]);if(s==="no-highlight"||s==="nohighlight")return!1;!a&&s.slice(0,5)==="lang-"&&(a=s.slice(5)),!a&&s.slice(0,9)==="language-"&&(a=s.slice(9))}return a}function bB({name:e,projects:t,onClose:n,onChange:a}){const{confirm:s,alert:o}=li(),{data:c,isLoading:f,isError:h,error:m,refetch:b}=lt({queryKey:["skill",e],queryFn:()=>iR(e)});O.useEffect(()=>{const _=A=>{A.key==="Escape"&&n()};return window.addEventListener("keydown",_),()=>window.removeEventListener("keydown",_)},[n]);const g=async(_,A)=>{try{await A(),await b(),a()}catch(T){o({title:`${_}失败`,body:T instanceof Error?T.message:String(T)})}},x=_=>g("link",()=>rR(e,_)),v=async _=>{await s({title:`从 ${_} 移除 ${e}`,body:"skill 链接会被解除,项目后续运行时将无法使用该 skill。",confirm:"移除",danger:!0})&&await g("unlink",()=>sR(e,_))},E=_=>g("freeze",()=>lR(e,_)),w=async _=>{await s({title:`解冻 ${e} @ ${_}`,body:"本地对这个 skill 的改动会被覆盖,回到最新共享版本。",confirm:"解冻",danger:!0})&&await g("unfreeze",()=>oR(e,_))},k=new Map(((c==null?void 0:c.linkedProjects)??[]).map(_=>[_.project,_.state]));return d.jsx("div",{role:"dialog","aria-modal":"true",className:"fixed inset-0 z-40 flex items-start justify-center p-6 bg-black/30 overflow-auto",children:d.jsxs("div",{className:"nb-card mt-8 w-full max-w-4xl",children:[d.jsxs("header",{className:"flex items-start justify-between gap-4 mb-4",children:[d.jsxs("div",{children:[d.jsx("h2",{className:"font-[family-name:var(--font-heading)] text-3xl font-bold",children:e}),c&&d.jsxs("p",{className:"text-sm text-[var(--color-text-muted)] mt-1",children:[c.category," · ",c.origin||"local"]})]}),d.jsx("button",{onClick:n,className:"nb-btn nb-btn-mint p-2","aria-label":"关闭",type:"button",children:d.jsx(_i,{size:16,strokeWidth:3})})]}),f&&d.jsx("p",{children:"加载中…"}),h&&d.jsxs("p",{className:"text-[var(--color-crashed)]",children:["加载失败: ",m instanceof Error?m.message:String(m)]}),c&&d.jsxs("div",{className:"flex flex-col gap-4",children:[d.jsxs("div",{className:"nb-card bg-[var(--color-bg-cream)] p-4",children:[d.jsx("h3",{className:"font-[family-name:var(--font-heading)] text-sm font-bold mb-3 uppercase tracking-wider",children:"项目链接状态"}),d.jsxs("div",{className:"flex flex-col gap-2",children:[t.map(_=>{const A=k.get(_);return d.jsxs("div",{className:"flex items-center justify-between gap-3 p-2 bg-[var(--color-bg)] border-2 border-[var(--color-text)] rounded-lg",children:[d.jsxs("div",{className:"flex items-center gap-3",children:[d.jsx("span",{className:"font-[family-name:var(--font-mono)] font-bold text-sm",children:_}),A==="linked"&&d.jsx("span",{className:"nb-status",style:{background:"var(--color-running-bg)",color:"var(--color-running)"},children:"linked"}),A==="frozen"&&d.jsx("span",{className:"nb-status",style:{background:"var(--color-stuck-bg)",color:"var(--color-stuck)"},children:"frozen"}),!A&&d.jsx("span",{className:"nb-status",style:{background:"var(--color-idle-bg)",color:"var(--color-idle)"},children:"absent"})]}),d.jsxs("div",{className:"flex gap-2",children:[!A&&d.jsxs("button",{className:"nb-btn nb-btn-primary",style:{padding:"4px 10px",fontSize:11},onClick:()=>x(_),type:"button",children:[d.jsx(xC,{size:11})," link"]}),A==="linked"&&d.jsxs(d.Fragment,{children:[d.jsxs("button",{className:"nb-btn",style:{padding:"4px 10px",fontSize:11},onClick:()=>E(_),type:"button",children:[d.jsx(PC,{size:11})," freeze"]}),d.jsx("button",{className:"nb-btn nb-btn-danger",style:{padding:"4px 10px",fontSize:11},onClick:()=>v(_),type:"button",children:"unlink"})]}),A==="frozen"&&d.jsxs(d.Fragment,{children:[d.jsxs("button",{className:"nb-btn",style:{padding:"4px 10px",fontSize:11},onClick:()=>w(_),type:"button",children:[d.jsx(XT,{size:11})," unfreeze"]}),d.jsx("button",{className:"nb-btn nb-btn-danger",style:{padding:"4px 10px",fontSize:11},onClick:()=>v(_),type:"button",children:"unlink"})]})]})]},_)}),t.length===0&&d.jsx("p",{className:"text-sm text-[var(--color-text-muted)] italic",children:"还没有任何项目。先去创建一个项目。"})]})]}),d.jsxs("div",{children:[d.jsx("h3",{className:"font-[family-name:var(--font-heading)] text-sm font-bold mb-2 uppercase tracking-wider",children:"SKILL.md 预览"}),d.jsx("div",{className:"prose-chat bg-[var(--color-bg-cream)] border-2 border-[var(--color-text)] rounded-lg p-4 max-h-80 overflow-auto text-sm",children:c.body?d.jsx(Rg,{remarkPlugins:[Lg],rehypePlugins:[Bg],children:c.body}):d.jsx("p",{className:"text-[var(--color-text-muted)] italic",children:"(empty)"})})]}),c.references.length>0&&d.jsxs("div",{children:[d.jsx("h3",{className:"font-[family-name:var(--font-heading)] text-sm font-bold mb-2 uppercase tracking-wider",children:"References"}),d.jsx("ul",{className:"flex flex-col gap-2",children:c.references.map(_=>d.jsx(yB,{skillName:e,file:_.name,lines:_.lines},_.name))})]})]})]})})}function yB({skillName:e,file:t,lines:n}){const[a,s]=O.useState(!1),{data:o,isLoading:c,isError:f,error:h}=lt({queryKey:["skill-ref",e,t],queryFn:()=>aR(e,t),enabled:a,staleTime:1/0});return d.jsxs("li",{className:"border-2 border-[var(--color-text)] rounded-lg overflow-hidden bg-[var(--color-bg-cream)]",children:[d.jsxs("button",{type:"button",onClick:()=>s(m=>!m),"aria-label":`${a?"收起":"展开"} ${t}`,"aria-expanded":a,className:"w-full flex items-center gap-2 px-3 py-2 text-sm font-[family-name:var(--font-mono)] hover:bg-[var(--color-accent-yellow)] transition-colors",children:[d.jsx(Bf,{size:12,strokeWidth:3,className:["transition-transform",a?"rotate-90":""].join(" ")}),d.jsx(Ec,{size:12,strokeWidth:2.5}),d.jsx("span",{className:"flex-1 text-left font-bold",children:t}),d.jsxs("span",{className:"text-xs text-[var(--color-text-subtle)]",children:[n," lines"]})]}),a&&d.jsxs("div",{className:"px-4 py-3 border-t-2 border-[var(--color-text)] bg-[var(--color-bg)] max-h-96 overflow-auto",children:[c&&d.jsx("p",{className:"text-xs text-[var(--color-text-muted)]",children:"加载中…"}),f&&d.jsxs("p",{className:"text-xs text-[var(--color-crashed)]",children:["加载失败: ",h instanceof Error?h.message:String(h)]}),o&&d.jsx("div",{className:"prose-chat text-sm",children:d.jsx(Rg,{remarkPlugins:[Lg],rehypePlugins:[Bg],children:o.content})})]})]})}const xB=[{value:"all",label:"全部"},{value:"language",label:"language"},{value:"end",label:"end"},{value:"persona",label:"persona"},{value:"workflow",label:"workflow"},{value:"other",label:"other"}],vB={language:"var(--color-accent-purple)",end:"var(--color-secondary)",persona:"var(--color-primary)",workflow:"var(--color-accent-mint)",other:"var(--color-bg-cream)"};function EB(){var x;const[e,t]=O.useState("all"),[n,a]=O.useState(""),[s,o]=O.useState(null),c=Hn(),{data:f,isLoading:h}=lt({queryKey:["skills"],queryFn:()=>hg()}),m=lt({queryKey:["projects"],queryFn:_r}),b=O.useMemo(()=>((f==null?void 0:f.data)??[]).filter(E=>!(e!=="all"&&E.category!==e||n&&!E.name.toLowerCase().includes(n.toLowerCase()))),[f,e,n]),g=O.useMemo(()=>{const v=(f==null?void 0:f.data)??[],E={all:v.length};for(const w of v)E[w.category]=(E[w.category]??0)+1;return E},[f]);return d.jsxs("div",{className:"flex flex-col gap-4 max-w-full",children:[d.jsxs("header",{className:"flex items-center justify-between flex-wrap gap-3",children:[d.jsxs("div",{children:[d.jsx("h1",{className:"font-[family-name:var(--font-heading)] text-4xl font-bold",children:"Skills 🎯"}),d.jsx("p",{className:"text-sm text-[var(--color-text-muted)] mt-1",children:h?"加载中…":`${(f==null?void 0:f.data.length)??0} 个 user-level skill`})]}),d.jsx("div",{className:"flex gap-3 items-center",children:d.jsxs("button",{className:"nb-btn nb-btn-mint",onClick:async()=>{await cR(),c.invalidateQueries({queryKey:["skills"]})},type:"button",children:[d.jsx(Cl,{size:14,strokeWidth:2.5}),"Sync bundled"]})})]}),d.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[d.jsxs("div",{className:"relative flex-1 max-w-md",children:[d.jsx(Sf,{size:14,className:"absolute left-3 top-1/2 -translate-y-1/2 text-[var(--color-text-subtle)]"}),d.jsx("input",{className:"nb-input pl-9 w-full",placeholder:"搜索 skill…",value:n,onChange:v=>a(v.target.value),"aria-label":"搜索 skill"})]}),d.jsx("div",{className:"flex gap-1 p-1 bg-[var(--color-bg)] border-[2px] border-[var(--color-text)] rounded-full shadow-[2px_2px_0_var(--color-text)]",children:xB.map(v=>d.jsxs("button",{type:"button",onClick:()=>t(v.value),className:["px-3 py-1 rounded-full text-xs font-bold font-[family-name:var(--font-body)]",e===v.value?"bg-[var(--color-text)] text-[var(--color-bg)]":"text-[var(--color-text-muted)] hover:text-[var(--color-text)]"].join(" "),children:[v.label," ",g[v.value]]},v.value))})]}),d.jsx("div",{className:"grid gap-4 grid-cols-[repeat(auto-fill,minmax(280px,1fr))]",children:b.map(v=>{var E;return d.jsx(SB,{skill:v,projectCount:((E=m.data)==null?void 0:E.data.length)??0,onOpen:()=>o(v.name)},v.name)})}),s&&d.jsx(bB,{name:s,projects:((x=m.data)==null?void 0:x.data.map(v=>v.name))??[],onClose:()=>o(null),onChange:()=>c.invalidateQueries({queryKey:["skills"]})})]})}function SB({skill:e,projectCount:t,onOpen:n}){const a=vB[e.category];return d.jsxs("article",{onClick:n,onKeyDown:s=>{(s.key==="Enter"||s.key===" ")&&(s.preventDefault(),n())},tabIndex:0,role:"button","aria-label":`Open ${e.name}`,className:"nb-card nb-card-interactive flex flex-col gap-3",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("h3",{className:"font-[family-name:var(--font-heading)] font-bold text-lg",children:e.name}),d.jsx("span",{className:"nb-badge text-[10px]",style:{background:a},children:e.category})]}),d.jsx("p",{className:"text-sm text-[var(--color-text-muted)] leading-5 line-clamp-3",children:e.description||"(no description)"}),d.jsxs("div",{className:"flex items-center justify-between text-xs font-[family-name:var(--font-mono)] pt-2 border-t-[1.5px] border-dashed border-[var(--color-border-light)]",children:[d.jsx("span",{className:"font-bold",children:e.linkedProjects.length>0?`● linked in ${e.linkedProjects.length}`:"○ not linked"}),d.jsxs("span",{className:"text-[var(--color-text-subtle)]",children:[t," projects"]})]})]})}function wB(){var s;const e=lt({queryKey:["system-info"],queryFn:dE}),t=lt({queryKey:["system-env"],queryFn:rA}),[n,a]=O.useState(!1);return d.jsxs("div",{className:"flex flex-col gap-6 max-w-4xl",children:[d.jsx("header",{children:d.jsx("h1",{className:"font-[family-name:var(--font-heading)] text-4xl font-bold",children:"系统 ⚙️"})}),d.jsx(_B,{current:(s=e.data)==null?void 0:s.version}),d.jsxs("section",{className:"nb-card",children:[d.jsx("h2",{className:"font-[family-name:var(--font-heading)] text-xl font-bold mb-3",children:"运行时"}),e.data?d.jsxs("dl",{className:"grid grid-cols-[160px_1fr] gap-y-2 text-sm",children:[d.jsx("dt",{className:"font-bold",children:"Node"}),d.jsx("dd",{className:"font-[family-name:var(--font-mono)]",children:e.data.nodeVersion}),d.jsx("dt",{className:"font-bold",children:"Platform"}),d.jsx("dd",{className:"font-[family-name:var(--font-mono)]",children:e.data.platform}),d.jsx("dt",{className:"font-bold",children:"PID"}),d.jsx("dd",{className:"font-[family-name:var(--font-mono)]",children:e.data.pid??"—"}),d.jsx("dt",{className:"font-bold",children:"Uptime"}),d.jsx("dd",{className:"font-[family-name:var(--font-mono)]",children:CB(e.data.uptimeMs)})]}):d.jsx("p",{className:"text-[var(--color-text-muted)]",children:"加载中…"})]}),d.jsxs("section",{className:"nb-card",children:[d.jsxs("div",{className:"flex items-center justify-between mb-3",children:[d.jsxs("h2",{className:"font-[family-name:var(--font-heading)] text-xl font-bold",children:["全局配置 ",d.jsx("code",{className:"text-sm font-[family-name:var(--font-mono)] font-normal bg-[var(--color-bg-cream)] border-2 border-[var(--color-text)] px-2 py-0.5 rounded",children:"~/.coral/env"})]}),n?d.jsx("span",{className:"text-xs text-[var(--color-stuck)] font-bold",children:"⚠ 编辑模式"}):d.jsxs("button",{className:"nb-btn",style:{padding:"6px 12px",fontSize:12},onClick:()=>a(!0),type:"button","aria-label":"编辑 env 文件",children:[d.jsx(Vp,{size:12,strokeWidth:2.5})," 编辑"]})]}),n?d.jsx(kB,{onClose:()=>{a(!1),t.refetch()}}):t.data&&t.data.exists?d.jsx("dl",{className:"grid grid-cols-[220px_1fr] gap-y-1 text-sm font-[family-name:var(--font-mono)]",children:t.data.entries.map(o=>d.jsxs("div",{className:"contents",children:[d.jsxs("dt",{className:"font-bold flex items-center gap-2",children:[o.masked&&d.jsx("span",{className:"text-[var(--color-stuck)]",children:"🔒"}),o.key]}),d.jsx("dd",{className:"text-[var(--color-text-muted)] truncate",children:o.value})]},o.key))}):d.jsxs("p",{className:"text-[var(--color-text-muted)] text-sm",children:['env 文件不存在。点"编辑"或者终端运行 ',d.jsx("code",{className:"bg-[var(--color-bg-cream)] border-2 border-[var(--color-text)] px-2 py-0.5 rounded font-[family-name:var(--font-mono)]",children:"sps setup"}),"。"]})]}),d.jsx(NB,{})]})}function _B({current:e}){var E;const{confirm:t,alert:n}=li(),[a,s]=O.useState(!1),[o,c]=O.useState(null),f=lt({queryKey:["latest-version"],queryFn:oA,enabled:!1}),[h,m]=O.useState(null),[b,g]=O.useState("npm i -g @coralai/sps-cli@latest"),x=async()=>{var k;if(await t({title:"升级 sps-cli",body:`当前 ${e},升级到 ${(k=f.data)==null?void 0:k.latest}。要求所有 pipeline 已停止。升级后请重启 sps console 生效。`,confirm:"升级"})){s(!0),c(null),m(null);try{const _=await cA();if(c(_.output),m(_.installedVersion),g(_.command),_.ok)n({title:"升级完成",body:`装上了 v${_.installedVersion}。请 \`pkill -f "sps console"\` 再重启以生效。`});else{const A=_.installedVersion&&_.installedVersion===e?`npm 执行完毕但版本没变(仍 ${_.installedVersion})——多半是权限或 registry 问题。可复制下面的命令在终端手动跑。`:"npm 没装上新版本。可复制命令手动跑,或看下面日志定位。";n({title:"升级未生效",body:A})}}catch(_){c(_.message),n({title:"升级失败",body:_.message})}finally{s(!1)}}},v=async()=>{const w=f.data&&!f.data.upToDate?`npm i -g @coralai/sps-cli@${f.data.latest}`:b;try{await navigator.clipboard.writeText(w),n({title:"命令已复制",body:`粘贴到终端运行即可:
545
545
  ${w}`})}catch{n({title:"复制失败",body:`请手动复制:
546
- ${w}`})}};return d.jsxs("section",{className:"nb-card",children:[d.jsxs("div",{className:"flex items-center justify-between mb-3",children:[d.jsx("h2",{className:"font-[family-name:var(--font-heading)] text-xl font-bold",children:"版本"}),d.jsxs("button",{className:"nb-btn",style:{padding:"6px 12px",fontSize:12},onClick:()=>f.refetch(),disabled:f.isFetching||!e,type:"button","aria-label":"检查最新版本",children:[f.isFetching?d.jsx(zt,{size:12,strokeWidth:3,className:"animate-spin"}):d.jsx(Cl,{size:12,strokeWidth:2.5}),"检查更新"]})]}),d.jsxs("dl",{className:"grid grid-cols-[160px_1fr] gap-y-2 text-sm",children:[d.jsx("dt",{className:"font-bold",children:"sps-cli (当前)"}),d.jsx("dd",{className:"font-[family-name:var(--font-mono)]",children:e??"—"}),f.data&&d.jsxs(d.Fragment,{children:[d.jsx("dt",{className:"font-bold",children:"npm (最新)"}),d.jsxs("dd",{className:"font-[family-name:var(--font-mono)] flex items-center gap-2 flex-wrap",children:[f.data.latest,f.data.upToDate?d.jsx("span",{className:"nb-status",style:{background:"var(--color-running-bg)",color:"var(--color-running)"},children:"最新"}):d.jsxs(d.Fragment,{children:[d.jsxs("button",{className:"nb-btn nb-btn-primary",style:{padding:"3px 10px",fontSize:11},onClick:x,disabled:a,type:"button","aria-label":"升级到最新版本",children:[a?d.jsx(zt,{size:11,strokeWidth:3,className:"animate-spin"}):d.jsx(nE,{size:11,strokeWidth:2.5}),"升级"]}),d.jsxs("button",{className:"nb-btn",style:{padding:"3px 10px",fontSize:11},onClick:v,type:"button","aria-label":"复制升级命令",title:"自动升级失败时手动跑",children:[d.jsx(HT,{size:11,strokeWidth:2.5})," 复制命令"]})]})]})]}),h&&d.jsxs(d.Fragment,{children:[d.jsx("dt",{className:"font-bold",children:"已安装"}),d.jsxs("dd",{className:"font-[family-name:var(--font-mono)] flex items-center gap-2",children:[h,h===((E=f.data)==null?void 0:E.latest)?d.jsx("span",{className:"nb-status",style:{background:"var(--color-running-bg)",color:"var(--color-running)"},children:"已生效(重启 console 后可见)"}):h===e?d.jsx("span",{className:"nb-status",style:{background:"var(--color-stuck-bg)",color:"var(--color-stuck)"},children:"未升级成功"}):null]})]}),f.isError&&d.jsxs(d.Fragment,{children:[d.jsx("dt",{className:"font-bold",children:"检查"}),d.jsx("dd",{className:"text-[var(--color-crashed)] text-xs",children:f.error instanceof Error?f.error.message:String(f.error)})]})]}),o&&d.jsx("pre",{className:"mt-3 text-xs font-[family-name:var(--font-mono)] bg-[var(--color-bg-cream)] border-2 border-[var(--color-text)] rounded-lg p-3 max-h-40 overflow-auto whitespace-pre-wrap",children:o})]})}function kB({onClose:e}){const t=Hn(),{alert:n}=li(),a=lt({queryKey:["system-env-raw"],queryFn:sA}),[s,o]=O.useState(null),[c,f]=O.useState(null);O.useEffect(()=>{a.data&&s===null&&(o(a.data.content),f(a.data.etag))},[a.data,s]);const h=s!==null&&a.data&&s!==a.data.content,m=qn({mutationFn:()=>{if(s===null)throw new Error("no draft");return lA(s,c??"")},onSuccess:()=>{t.invalidateQueries({queryKey:["system-env"]}),t.invalidateQueries({queryKey:["system-env-raw"]}),e()},onError:b=>{const g=b.status;n({title:g===409?"env 被其他地方修改了":"保存失败",body:g===409?"请点取消后重开编辑。":b instanceof Error?b.message:String(b)})}});return a.isLoading?d.jsx("p",{className:"text-[var(--color-text-muted)]",children:"加载中…"}):d.jsxs("div",{children:[d.jsx("p",{className:"text-xs text-[var(--color-stuck)] font-bold mb-2",children:"⚠ 文件包含凭证明文。保存时保持 0600 权限。"}),d.jsx("textarea",{className:"nb-input w-full font-[family-name:var(--font-mono)] text-xs",style:{minHeight:320,resize:"vertical"},value:s??"",onChange:b=>o(b.target.value),spellCheck:!1,"aria-label":"env 文件编辑器"}),d.jsxs("div",{className:"flex items-center justify-between mt-3",children:[d.jsxs("span",{className:"text-xs text-[var(--color-text-muted)] font-[family-name:var(--font-mono)]",children:[c?`etag: ${c}`:"",h?" · ● 未保存":""]}),d.jsxs("div",{className:"flex gap-2",children:[d.jsxs("button",{className:"nb-btn",style:{padding:"6px 12px"},onClick:e,disabled:m.isPending,type:"button",children:[d.jsx(_i,{size:12,strokeWidth:3})," 取消"]}),d.jsxs("button",{className:"nb-btn nb-btn-primary",style:{padding:"6px 12px"},onClick:()=>m.mutate(),disabled:!h||m.isPending,type:"button","aria-label":"保存 env",children:[m.isPending?d.jsx(zt,{size:12,strokeWidth:3,className:"animate-spin"}):d.jsx(Uf,{size:12,strokeWidth:3}),"保存"]})]})]})]})}function NB(){var g;const{alert:e}=li(),t=lt({queryKey:["projects"],queryFn:_r}),[n,a]=O.useState({}),[s,o]=O.useState({}),[c,f]=O.useState({}),h=(((g=t.data)==null?void 0:g.data)??[]).map(x=>({project:x.name})),m=async(x,v)=>{o(E=>({...E,[x]:v?"fix":"check"}));try{const E=await uA(x,v);a(w=>({...w,[x]:E})),f(w=>({...w,[x]:!0}))}catch(E){e({title:`doctor ${v?"修复":"检查"}失败`,body:E instanceof Error?E.message:String(E)})}finally{o(E=>({...E,[x]:null}))}},b=async()=>{for(const x of h)await m(x.project,!1)};return d.jsxs("section",{className:"nb-card",children:[d.jsxs("div",{className:"flex items-center justify-between mb-3",children:[d.jsx("h2",{className:"font-[family-name:var(--font-heading)] text-xl font-bold",children:"项目健康检查"}),d.jsxs("button",{className:"nb-btn nb-btn-mint",style:{padding:"6px 12px",fontSize:12},onClick:()=>{b()},disabled:h.length===0||Object.values(s).some(Boolean),type:"button",children:[d.jsx(Cl,{size:12,strokeWidth:2.5}),"检查全部"]})]}),h.length===0?d.jsx("p",{className:"text-[var(--color-text-muted)] text-sm",children:"还没有项目。"}):d.jsx("ul",{className:"flex flex-col gap-2",children:h.map(x=>{const v=n[x.project],E=s[x.project],w=v?v.checks.filter(T=>T.status==="fail").length:0,k=v?v.checks.filter(T=>T.status==="warn").length:0,_=c[x.project]??!1,A=v!=null;return d.jsxs("li",{className:"bg-[var(--color-bg-cream)] border-2 border-[var(--color-text)] rounded-lg",children:[d.jsxs("div",{className:"flex items-center gap-3 px-3 py-2",children:[d.jsxs("button",{type:"button",onClick:()=>f(T=>({...T,[x.project]:!_})),disabled:!A,className:"flex items-center gap-2 flex-1 text-left min-w-0","aria-label":_?"折叠":"展开",children:[A&&v.ok?d.jsx(fp,{size:16,className:"text-[var(--color-running)] shrink-0",strokeWidth:2.5}):A?d.jsx(rc,{size:16,className:"text-[var(--color-stuck)] shrink-0",strokeWidth:2.5}):d.jsx(fp,{size:16,className:"text-[var(--color-text-subtle)] shrink-0",strokeWidth:2.5}),A&&(_?d.jsx(vc,{size:12}):d.jsx(Bf,{size:12})),d.jsx("span",{className:"font-bold font-[family-name:var(--font-mono)]",children:x.project}),A?v.ok?d.jsx("span",{className:"text-xs text-[var(--color-running)] font-semibold",children:"OK"}):d.jsxs("span",{className:"text-xs text-[var(--color-stuck)] font-semibold",children:[w," fail · ",k," warn"]}):d.jsx("span",{className:"text-xs text-[var(--color-text-muted)]",children:'点 "检查" 运行 sps doctor'})]}),d.jsxs("button",{className:"nb-btn",style:{padding:"4px 10px",fontSize:11},onClick:()=>{m(x.project,!1)},disabled:!!E,type:"button","aria-label":"检查",children:[E==="check"?d.jsx(zt,{size:11,strokeWidth:3,className:"animate-spin"}):d.jsx(Cl,{size:11,strokeWidth:2.5}),"检查"]}),d.jsxs("button",{className:"nb-btn nb-btn-primary",style:{padding:"4px 10px",fontSize:11},onClick:()=>{m(x.project,!0)},disabled:!!E||A&&v.ok,type:"button","aria-label":"自动修复",title:A&&v.ok?"已无可修问题":"调 sps doctor <proj> --fix:自动创建 .claude/hooks/stop.sh、state.json 等",children:[E==="fix"?d.jsx(zt,{size:11,strokeWidth:3,className:"animate-spin"}):d.jsx(fE,{size:11,strokeWidth:2.5}),"修复"]})]}),_&&A&&d.jsxs("div",{className:"border-t-2 border-dashed border-[var(--color-text)] px-3 py-2",children:[d.jsx("ul",{className:"flex flex-col gap-1 text-xs font-[family-name:var(--font-mono)]",children:v.checks.map((T,j)=>d.jsx(TB,{check:T},`${T.name}-${j}`))}),v.fixes.length>0&&d.jsxs("div",{className:"mt-3 bg-[var(--color-running-bg)] border-2 border-[var(--color-running)] rounded p-2",children:[d.jsx("div",{className:"text-xs font-bold text-[var(--color-running)] mb-1",children:"已修复"}),d.jsx("ul",{className:"text-xs list-disc pl-4",children:v.fixes.map((T,j)=>d.jsx("li",{children:T},j))})]})]})]},x.project)})})]})}function TB({check:e}){const t=e.status==="pass"?d.jsx(fp,{size:12,className:"text-[var(--color-running)]",strokeWidth:2.5}):e.status==="fail"?d.jsx(rc,{size:12,className:"text-[var(--color-crashed)]",strokeWidth:2.5}):e.status==="warn"?d.jsx(rc,{size:12,className:"text-[var(--color-stuck)]",strokeWidth:2.5}):d.jsx("span",{className:"w-3 h-3 rounded-full bg-[var(--color-text-subtle)] inline-block"});return d.jsxs("li",{className:"flex items-start gap-2",children:[d.jsx("span",{className:"pt-0.5 shrink-0",children:t}),d.jsx("span",{className:"font-bold w-32 shrink-0",children:e.name}),d.jsx("span",{className:"text-[var(--color-text-muted)] break-words",children:e.message})]})}function CB(e){const t=Math.floor(e/1e3),n=Math.floor(t/3600),a=Math.floor(t%3600/60),s=t%60;return n>0?`${n}h ${a}m ${s}s`:a>0?`${a}m ${s}s`:`${s}s`}function AB(){return Pt("/api/chat/sessions")}function OB(e){return Pt(`/api/chat/sessions/${e}`)}async function Gm(e={}){const t=await fetch("/api/chat/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`${t.status}: ${await t.text()}`);return await t.json()}async function RB(e){const t=await fetch(`/api/chat/sessions/${e}`,{method:"DELETE"});if(!t.ok)throw new Error(`${t.status}`)}async function MB(e,t,n){const a=await fetch(`/api/chat/sessions/${e}/messages`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:t,attachments:n})});if(!a.ok)throw new Error(`${a.status}: ${await a.text()}`);return await a.json()}async function jB(e){const t=await fetch(`/api/chat/sessions/${e}/interrupt`,{method:"POST"});if(!t.ok&&t.status!==204)throw new Error(`${t.status}: ${await t.text()}`)}function DB(e,t){const n=t?`?since=${encodeURIComponent(t)}`:"";return Pt(`/api/chat/sessions/${e}/messages${n}`)}function o1(){var q,ce,Y,ye,R,D,X,C,ge;const{sessionId:e}=K1(),t=wr(),n=Hn(),{confirm:a,alert:s}=li(),o=lt({queryKey:["chat-sessions"],queryFn:AB}),c=lt({queryKey:["chat-session",e],queryFn:()=>OB(e??""),enabled:!!e}),[f,h]=O.useState(null),[m,b]=O.useState(""),[g,x]=O.useState(!1),v=O.useRef(null),[E,w]=O.useState(!1),[k,_]=O.useState([]),[A,T]=O.useState(!1),[j,$]=O.useState(!1),[M,F]=O.useState(!1),[H,ee]=O.useState(null);O.useEffect(()=>{if(!e)return;const W=new EventSource(`/stream/chat/${encodeURIComponent(e)}`);let fe=!0;return W.addEventListener("open",()=>{if(fe){fe=!1;return}const K=n.getQueryData(["chat-session",e]),se=K!=null&&K.messages.length?K.messages[K.messages.length-1].ts:void 0;DB(e,se).then(de=>{de.data.length!==0&&n.setQueryData(["chat-session",e],Re=>{if(!Re)return Re;const mt=new Set(Re.messages.map(oi=>oi.id)),xt=de.data.filter(oi=>!mt.has(oi.id));return xt.length===0?Re:{...Re,messages:[...Re.messages,...xt],lastMessageAt:xt[xt.length-1].ts,messageCount:Re.messageCount+xt.length}})}).catch(()=>{})}),W.addEventListener("chat.message",K=>{try{const se=JSON.parse(K.data);n.setQueryData(["chat-session",e],de=>{if(!de||de.messages.some(xt=>xt.id===se.message.id))return de;const mt=de.messages.findIndex(xt=>xt.role==="user"&&xt.id.startsWith("optim-")&&xt.content===se.message.content);if(mt>=0){const xt=[...de.messages];return xt[mt]=se.message,{...de,messages:xt}}return{...de,messages:[...de.messages,se.message]}})}catch{}}),W.addEventListener("chat.message.pending",K=>{try{const se=JSON.parse(K.data);h({id:se.assistantId,blocks:[],done:!1,finalMessage:null})}catch{}}),W.addEventListener("chat.message.chunk.text",K=>{try{const se=JSON.parse(K.data);h(de=>{if(!de||de.id!==se.assistantId)return de;const Re=[...de.blocks],mt=Re[Re.length-1];return mt&&mt.type==="text"?Re[Re.length-1]={...mt,target:mt.target+se.text}:Re.push({type:"text",target:se.text,displayed:""}),{...de,blocks:Re}})}catch{}}),W.addEventListener("chat.message.chunk.tool_use",K=>{try{const se=JSON.parse(K.data);h(de=>!de||de.id!==se.assistantId?de:{...de,blocks:[...de.blocks,{type:"tool_use",id:se.id,title:se.title,kind:se.kind,status:se.status}]})}catch{}}),W.addEventListener("chat.message.chunk.tool_update",K=>{try{const se=JSON.parse(K.data);h(de=>!de||de.id!==se.assistantId?de:{...de,blocks:de.blocks.map(Re=>Re.type==="tool_use"&&Re.id===se.id?{...Re,status:se.status}:Re)})}catch{}}),W.addEventListener("chat.message.complete",K=>{try{const se=JSON.parse(K.data);h(de=>de&&de.id===se.assistantId?{...de,done:!0,finalMessage:se.message}:de)}catch{}}),()=>W.close()},[e,n]),O.useEffect(()=>{if(!f)return;const W=f.blocks.reduce((K,se)=>se.type==="text"?K+(se.target.length-se.displayed.length):K,0);if(W<=0){if(f.done&&f.finalMessage){const K=f.finalMessage;n.setQueryData(["chat-session",e],se=>!se||se.messages.some(de=>de.id===K.id)?se:{...se,messages:[...se.messages,K],lastMessageAt:K.ts,messageCount:se.messageCount+1}),n.invalidateQueries({queryKey:["chat-sessions"]}),h(null),x(!1)}return}const fe=setTimeout(()=>{h(K=>{if(!K)return K;let se=Math.max(1,Math.ceil(W/40));const de=K.blocks.map(Re=>{if(Re.type!=="text"||se<=0)return Re;const mt=Re.target.length-Re.displayed.length;if(mt<=0)return Re;const xt=Math.min(mt,se);return se-=xt,{...Re,displayed:Re.target.slice(0,Re.displayed.length+xt)}});return{...K,blocks:de}})},25);return()=>clearTimeout(fe)},[f,n,e]),O.useEffect(()=>{const W=v.current;W&&(W.scrollTop=W.scrollHeight)},[c.data,f]);const L=O.useCallback(async(W={})=>{var fe,K;try{const se=await Gm({cwd:((fe=W.cwd)==null?void 0:fe.trim())||void 0,title:((K=W.title)==null?void 0:K.trim())||void 0});n.invalidateQueries({queryKey:["chat-sessions"]}),t(`/chat/${se.id}`),w(!1)}catch(se){s({title:"新建对话失败",body:se instanceof Error?se.message:String(se)})}},[n,t,s]),J=O.useCallback(async()=>{const W=m.trim();if(!W&&k.length===0||g)return;let fe=e;if(!fe){const de=await Gm();n.invalidateQueries({queryKey:["chat-sessions"]}),fe=de.id,t(`/chat/${fe}`,{replace:!0})}const K=k.map(de=>de.path),se={id:`optim-${Date.now()}`,role:"user",content:W||"(附件)",ts:new Date().toISOString(),status:"complete",attachments:K.length>0?K:void 0};n.setQueryData(["chat-session",fe],de=>de?{...de,messages:[...de.messages,se],lastMessageAt:se.ts,messageCount:de.messageCount+1}:{id:fe,createdAt:se.ts,lastMessageAt:se.ts,title:W.slice(0,60)||"附件",project:null,messageCount:1,messages:[se]}),b(""),_([]),x(!0);try{await MB(fe,W||"(请查看附件)",K.length>0?K:void 0)}catch(de){x(!1),console.error("sendMessage failed",de),s({title:"发送失败",body:de instanceof Error?de.message:String(de)})}},[m,k,g,e,n,t,s]),ae=O.useCallback(async W=>{if(W.size>hE){s({title:"文件超过上限",body:`单文件上限 50 MB;当前 ${(W.size/1024/1024).toFixed(2)} MB(${W.name})`});return}let fe=e;if(!fe){const K=await Gm();n.invalidateQueries({queryKey:["chat-sessions"]}),fe=K.id,t(`/chat/${fe}`,{replace:!0})}T(!0);try{const K=await DA(fe,W);_(se=>[...se,{path:K.path,name:K.name}])}catch(K){s({title:"附件上传失败",body:K instanceof Error?K.message:String(K)})}finally{T(!1)}},[e,n,t,s]),be=O.useCallback(W=>{_(fe=>fe.filter(K=>K.path!==W))},[]),ue=O.useCallback(async W=>{await a({title:"删除对话",body:"对话记录会永久删除,不可恢复。",confirm:"删除",danger:!0})&&(await RB(W),n.invalidateQueries({queryKey:["chat-sessions"]}),e===W&&t("/chat"))},[n,e,t,a]),te=O.useCallback(async()=>{if(e)try{await jB(e)}catch(W){s({title:"中断失败",body:W instanceof Error?W.message:String(W)})}},[e,s]);return d.jsxs("div",{className:"grid grid-cols-[260px_1fr] gap-4 h-[calc(100vh-140px)]",children:[d.jsxs("aside",{className:"nb-card p-3 overflow-auto flex flex-col gap-2",children:[d.jsxs("button",{className:"nb-btn nb-btn-primary w-full justify-center",onClick:()=>w(!0),type:"button",children:[d.jsx(Ii,{size:14,strokeWidth:3}),"新建对话"]}),d.jsxs("div",{className:"mt-2 text-xs font-[family-name:var(--font-heading)] uppercase tracking-wider text-[var(--color-text-muted)] px-2",children:["历史 ",((q=o.data)==null?void 0:q.data.length)??0]}),d.jsxs("div",{className:"flex flex-col gap-1.5 mt-1",children:[(((ce=o.data)==null?void 0:ce.data)??[]).map(W=>d.jsxs("div",{className:["group flex items-start gap-2 p-2 rounded-lg border-2 border-transparent",e===W.id?"bg-[var(--color-accent-mint)] border-[var(--color-text)] shadow-[2px_2px_0_var(--color-text)]":"hover:bg-[var(--color-bg-cream)] hover:border-[var(--color-text)]"].join(" "),children:[d.jsxs("button",{type:"button","aria-label":`打开对话 ${W.title}${W.cwd?`(工作目录 ${W.cwd})`:""}`,onClick:()=>t(`/chat/${W.id}`),className:"flex items-start gap-2 flex-1 min-w-0 text-left",children:[d.jsx(Qv,{size:14,strokeWidth:2.5,className:"mt-0.5 flex-shrink-0"}),d.jsxs("div",{className:"flex-1 min-w-0",children:[d.jsxs("div",{className:"flex items-center gap-1.5 min-w-0",children:[d.jsx("p",{className:"text-sm font-semibold truncate flex-1",children:W.title}),W.source==="cli"&&d.jsx("span",{className:"flex-shrink-0 px-1.5 py-0 rounded-md bg-[var(--color-accent-purple)] border-2 border-[var(--color-text)] text-[9px] font-[family-name:var(--font-mono)] uppercase tracking-wider leading-tight",title:"该会话由 sps agent CLI 创建,从 Claude jsonl 实时读取(只读)",children:"CLI"})]}),d.jsxs("p",{className:"text-[10px] text-[var(--color-text-muted)] font-[family-name:var(--font-mono)] truncate",children:[W.messageCount," msg · ",Pw(W.lastMessageAt??W.createdAt)]}),W.cwd&&d.jsxs("p",{className:"text-[10px] text-[var(--color-text-subtle)] font-[family-name:var(--font-mono)] truncate flex items-center gap-1",title:W.cwd,children:[d.jsx(lc,{size:9,strokeWidth:2.5,className:"flex-shrink-0"}),d.jsx("span",{className:"truncate",dir:"rtl",children:W.cwd})]})]})]}),W.source!=="cli"&&d.jsx("button",{type:"button","aria-label":"删除对话",className:"opacity-0 group-hover:opacity-100 p-1 hover:text-[var(--color-crashed)]",onClick:fe=>{fe.stopPropagation(),ue(W.id)},children:d.jsx(zl,{size:12})})]},W.id)),(((Y=o.data)==null?void 0:Y.data)??[]).length===0&&d.jsx("p",{className:"text-xs text-[var(--color-text-subtle)] italic text-center py-4",children:"还没对话。点上面新建。"})]})]}),d.jsx("div",{className:"nb-card p-0 flex flex-col overflow-hidden",children:e?d.jsxs(d.Fragment,{children:[d.jsxs("header",{className:"px-4 py-3 border-b-2 border-[var(--color-text)] bg-[var(--color-bg-cream)]",children:[d.jsx("h2",{className:"font-[family-name:var(--font-heading)] font-bold text-lg",children:((ye=c.data)==null?void 0:ye.title)??"新对话"}),d.jsx("p",{className:"text-xs text-[var(--color-text-muted)] font-[family-name:var(--font-mono)]",children:e}),((R=c.data)==null?void 0:R.cwd)&&d.jsxs("p",{className:"text-xs text-[var(--color-text-muted)] font-[family-name:var(--font-mono)] flex items-center gap-1 mt-1",title:c.data.cwd,children:[d.jsx(lc,{size:11,strokeWidth:2.5,className:"flex-shrink-0"}),d.jsx("span",{className:"truncate",children:c.data.cwd})]})]}),d.jsxs("div",{ref:v,className:"flex-1 overflow-auto p-4 flex flex-col gap-4",children:[(((D=c.data)==null?void 0:D.messages)??[]).map(W=>d.jsx(IB,{msg:W,sessionId:e??null,onPreviewAttachment:fe=>ee(fe)},W.id)),f&&d.jsx(UB,{pending:f}),!c.isLoading&&(((X=c.data)==null?void 0:X.messages)??[]).length===0&&!f&&!g&&d.jsx("p",{className:"text-center text-[var(--color-text-subtle)] italic mt-12",children:"下方输入问题开始对话 · Enter 发送 · Shift+Enter 换行"})]}),((C=c.data)==null?void 0:C.source)==="cli"?d.jsxs("div",{className:"border-t-2 border-[var(--color-text)] p-4 bg-[var(--color-accent-purple)]",children:[d.jsxs("p",{className:"text-sm font-[family-name:var(--font-mono)] text-[var(--color-text-muted)] text-center",children:["这是 ",d.jsx("strong",{children:"CLI 会话"}),"(由 ",d.jsx("code",{children:"sps agent"})," 创建),Console 仅展示历史。续聊请在终端运行:"]}),d.jsxs("pre",{className:"mt-2 px-3 py-2 bg-[var(--color-bg)] border-2 border-[var(--color-text)] rounded-md text-xs font-[family-name:var(--font-mono)] overflow-x-auto",children:["sps agent --chat --name ",(e??"").replace(/^session-/,"")]})]}):d.jsxs("div",{className:["border-t-2 border-[var(--color-text)] p-3 bg-[var(--color-bg-cream)] transition-colors",M?"bg-[var(--color-accent-mint)]":""].join(" "),onDragOver:W=>{W.dataTransfer.types.includes("Files")&&(W.preventDefault(),W.dataTransfer.dropEffect="copy",M||F(!0))},onDragLeave:()=>F(!1),onDrop:W=>{if(!W.dataTransfer.types.includes("Files"))return;W.preventDefault(),F(!1);const fe=Array.from(W.dataTransfer.files??[]);for(const K of fe)ae(K)},children:[(k.length>0||A)&&d.jsxs("div",{className:"flex flex-wrap gap-2 mb-2",children:[k.map(W=>d.jsxs("button",{type:"button",className:"flex items-center gap-1.5 px-2 py-1 rounded-md bg-[var(--color-bg)] border-2 border-[var(--color-text)] text-xs font-[family-name:var(--font-mono)] hover:bg-[var(--color-accent-mint)] group",onClick:()=>ee(W.path),title:`${W.name}
546
+ ${w}`})}};return d.jsxs("section",{className:"nb-card",children:[d.jsxs("div",{className:"flex items-center justify-between mb-3",children:[d.jsx("h2",{className:"font-[family-name:var(--font-heading)] text-xl font-bold",children:"版本"}),d.jsxs("button",{className:"nb-btn",style:{padding:"6px 12px",fontSize:12},onClick:()=>f.refetch(),disabled:f.isFetching||!e,type:"button","aria-label":"检查最新版本",children:[f.isFetching?d.jsx(zt,{size:12,strokeWidth:3,className:"animate-spin"}):d.jsx(Cl,{size:12,strokeWidth:2.5}),"检查更新"]})]}),d.jsxs("dl",{className:"grid grid-cols-[160px_1fr] gap-y-2 text-sm",children:[d.jsx("dt",{className:"font-bold",children:"sps-cli (当前)"}),d.jsx("dd",{className:"font-[family-name:var(--font-mono)]",children:e??"—"}),f.data&&d.jsxs(d.Fragment,{children:[d.jsx("dt",{className:"font-bold",children:"npm (最新)"}),d.jsxs("dd",{className:"font-[family-name:var(--font-mono)] flex items-center gap-2 flex-wrap",children:[f.data.latest,f.data.upToDate?d.jsx("span",{className:"nb-status",style:{background:"var(--color-running-bg)",color:"var(--color-running)"},children:"最新"}):d.jsxs(d.Fragment,{children:[d.jsxs("button",{className:"nb-btn nb-btn-primary",style:{padding:"3px 10px",fontSize:11},onClick:x,disabled:a,type:"button","aria-label":"升级到最新版本",children:[a?d.jsx(zt,{size:11,strokeWidth:3,className:"animate-spin"}):d.jsx(nE,{size:11,strokeWidth:2.5}),"升级"]}),d.jsxs("button",{className:"nb-btn",style:{padding:"3px 10px",fontSize:11},onClick:v,type:"button","aria-label":"复制升级命令",title:"自动升级失败时手动跑",children:[d.jsx(HT,{size:11,strokeWidth:2.5})," 复制命令"]})]})]})]}),h&&d.jsxs(d.Fragment,{children:[d.jsx("dt",{className:"font-bold",children:"已安装"}),d.jsxs("dd",{className:"font-[family-name:var(--font-mono)] flex items-center gap-2",children:[h,h===((E=f.data)==null?void 0:E.latest)?d.jsx("span",{className:"nb-status",style:{background:"var(--color-running-bg)",color:"var(--color-running)"},children:"已生效(重启 console 后可见)"}):h===e?d.jsx("span",{className:"nb-status",style:{background:"var(--color-stuck-bg)",color:"var(--color-stuck)"},children:"未升级成功"}):null]})]}),f.isError&&d.jsxs(d.Fragment,{children:[d.jsx("dt",{className:"font-bold",children:"检查"}),d.jsx("dd",{className:"text-[var(--color-crashed)] text-xs",children:f.error instanceof Error?f.error.message:String(f.error)})]})]}),o&&d.jsx("pre",{className:"mt-3 text-xs font-[family-name:var(--font-mono)] bg-[var(--color-bg-cream)] border-2 border-[var(--color-text)] rounded-lg p-3 max-h-40 overflow-auto whitespace-pre-wrap",children:o})]})}function kB({onClose:e}){const t=Hn(),{alert:n}=li(),a=lt({queryKey:["system-env-raw"],queryFn:sA}),[s,o]=O.useState(null),[c,f]=O.useState(null);O.useEffect(()=>{a.data&&s===null&&(o(a.data.content),f(a.data.etag))},[a.data,s]);const h=s!==null&&a.data&&s!==a.data.content,m=qn({mutationFn:()=>{if(s===null)throw new Error("no draft");return lA(s,c??"")},onSuccess:()=>{t.invalidateQueries({queryKey:["system-env"]}),t.invalidateQueries({queryKey:["system-env-raw"]}),e()},onError:b=>{const g=b.status;n({title:g===409?"env 被其他地方修改了":"保存失败",body:g===409?"请点取消后重开编辑。":b instanceof Error?b.message:String(b)})}});return a.isLoading?d.jsx("p",{className:"text-[var(--color-text-muted)]",children:"加载中…"}):d.jsxs("div",{children:[d.jsx("p",{className:"text-xs text-[var(--color-stuck)] font-bold mb-2",children:"⚠ 文件包含凭证明文。保存时保持 0600 权限。"}),d.jsx("textarea",{className:"nb-input w-full font-[family-name:var(--font-mono)] text-xs",style:{minHeight:320,resize:"vertical"},value:s??"",onChange:b=>o(b.target.value),spellCheck:!1,"aria-label":"env 文件编辑器"}),d.jsxs("div",{className:"flex items-center justify-between mt-3",children:[d.jsxs("span",{className:"text-xs text-[var(--color-text-muted)] font-[family-name:var(--font-mono)]",children:[c?`etag: ${c}`:"",h?" · ● 未保存":""]}),d.jsxs("div",{className:"flex gap-2",children:[d.jsxs("button",{className:"nb-btn",style:{padding:"6px 12px"},onClick:e,disabled:m.isPending,type:"button",children:[d.jsx(_i,{size:12,strokeWidth:3})," 取消"]}),d.jsxs("button",{className:"nb-btn nb-btn-primary",style:{padding:"6px 12px"},onClick:()=>m.mutate(),disabled:!h||m.isPending,type:"button","aria-label":"保存 env",children:[m.isPending?d.jsx(zt,{size:12,strokeWidth:3,className:"animate-spin"}):d.jsx(Uf,{size:12,strokeWidth:3}),"保存"]})]})]})]})}function NB(){var g;const{alert:e}=li(),t=lt({queryKey:["projects"],queryFn:_r}),[n,a]=O.useState({}),[s,o]=O.useState({}),[c,f]=O.useState({}),h=(((g=t.data)==null?void 0:g.data)??[]).map(x=>({project:x.name})),m=async(x,v)=>{o(E=>({...E,[x]:v?"fix":"check"}));try{const E=await uA(x,v);a(w=>({...w,[x]:E})),f(w=>({...w,[x]:!0}))}catch(E){e({title:`doctor ${v?"修复":"检查"}失败`,body:E instanceof Error?E.message:String(E)})}finally{o(E=>({...E,[x]:null}))}},b=async()=>{for(const x of h)await m(x.project,!1)};return d.jsxs("section",{className:"nb-card",children:[d.jsxs("div",{className:"flex items-center justify-between mb-3",children:[d.jsx("h2",{className:"font-[family-name:var(--font-heading)] text-xl font-bold",children:"项目健康检查"}),d.jsxs("button",{className:"nb-btn nb-btn-mint",style:{padding:"6px 12px",fontSize:12},onClick:()=>{b()},disabled:h.length===0||Object.values(s).some(Boolean),type:"button",children:[d.jsx(Cl,{size:12,strokeWidth:2.5}),"检查全部"]})]}),h.length===0?d.jsx("p",{className:"text-[var(--color-text-muted)] text-sm",children:"还没有项目。"}):d.jsx("ul",{className:"flex flex-col gap-2",children:h.map(x=>{const v=n[x.project],E=s[x.project],w=v?v.checks.filter(T=>T.status==="fail").length:0,k=v?v.checks.filter(T=>T.status==="warn").length:0,_=c[x.project]??!1,A=v!=null;return d.jsxs("li",{className:"bg-[var(--color-bg-cream)] border-2 border-[var(--color-text)] rounded-lg",children:[d.jsxs("div",{className:"flex items-center gap-3 px-3 py-2",children:[d.jsxs("button",{type:"button",onClick:()=>f(T=>({...T,[x.project]:!_})),disabled:!A,className:"flex items-center gap-2 flex-1 text-left min-w-0","aria-label":_?"折叠":"展开",children:[A&&v.ok?d.jsx(fp,{size:16,className:"text-[var(--color-running)] shrink-0",strokeWidth:2.5}):A?d.jsx(rc,{size:16,className:"text-[var(--color-stuck)] shrink-0",strokeWidth:2.5}):d.jsx(fp,{size:16,className:"text-[var(--color-text-subtle)] shrink-0",strokeWidth:2.5}),A&&(_?d.jsx(vc,{size:12}):d.jsx(Bf,{size:12})),d.jsx("span",{className:"font-bold font-[family-name:var(--font-mono)]",children:x.project}),A?v.ok?d.jsx("span",{className:"text-xs text-[var(--color-running)] font-semibold",children:"OK"}):d.jsxs("span",{className:"text-xs text-[var(--color-stuck)] font-semibold",children:[w," fail · ",k," warn"]}):d.jsx("span",{className:"text-xs text-[var(--color-text-muted)]",children:'点 "检查" 运行 sps doctor'})]}),d.jsxs("button",{className:"nb-btn",style:{padding:"4px 10px",fontSize:11},onClick:()=>{m(x.project,!1)},disabled:!!E,type:"button","aria-label":"检查",children:[E==="check"?d.jsx(zt,{size:11,strokeWidth:3,className:"animate-spin"}):d.jsx(Cl,{size:11,strokeWidth:2.5}),"检查"]}),d.jsxs("button",{className:"nb-btn nb-btn-primary",style:{padding:"4px 10px",fontSize:11},onClick:()=>{m(x.project,!0)},disabled:!!E||A&&v.ok,type:"button","aria-label":"自动修复",title:A&&v.ok?"已无可修问题":"调 sps doctor <proj> --fix:自动创建 .claude/hooks/stop.sh、state.json 等",children:[E==="fix"?d.jsx(zt,{size:11,strokeWidth:3,className:"animate-spin"}):d.jsx(fE,{size:11,strokeWidth:2.5}),"修复"]})]}),_&&A&&d.jsxs("div",{className:"border-t-2 border-dashed border-[var(--color-text)] px-3 py-2",children:[d.jsx("ul",{className:"flex flex-col gap-1 text-xs font-[family-name:var(--font-mono)]",children:v.checks.map((T,j)=>d.jsx(TB,{check:T},`${T.name}-${j}`))}),v.fixes.length>0&&d.jsxs("div",{className:"mt-3 bg-[var(--color-running-bg)] border-2 border-[var(--color-running)] rounded p-2",children:[d.jsx("div",{className:"text-xs font-bold text-[var(--color-running)] mb-1",children:"已修复"}),d.jsx("ul",{className:"text-xs list-disc pl-4",children:v.fixes.map((T,j)=>d.jsx("li",{children:T},j))})]})]})]},x.project)})})]})}function TB({check:e}){const t=e.status==="pass"?d.jsx(fp,{size:12,className:"text-[var(--color-running)]",strokeWidth:2.5}):e.status==="fail"?d.jsx(rc,{size:12,className:"text-[var(--color-crashed)]",strokeWidth:2.5}):e.status==="warn"?d.jsx(rc,{size:12,className:"text-[var(--color-stuck)]",strokeWidth:2.5}):d.jsx("span",{className:"w-3 h-3 rounded-full bg-[var(--color-text-subtle)] inline-block"});return d.jsxs("li",{className:"flex items-start gap-2",children:[d.jsx("span",{className:"pt-0.5 shrink-0",children:t}),d.jsx("span",{className:"font-bold w-32 shrink-0",children:e.name}),d.jsx("span",{className:"text-[var(--color-text-muted)] break-words",children:e.message})]})}function CB(e){const t=Math.floor(e/1e3),n=Math.floor(t/3600),a=Math.floor(t%3600/60),s=t%60;return n>0?`${n}h ${a}m ${s}s`:a>0?`${a}m ${s}s`:`${s}s`}function AB(){return Pt("/api/chat/sessions")}function OB(e){return Pt(`/api/chat/sessions/${e}`)}async function Gm(e={}){const t=await fetch("/api/chat/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`${t.status}: ${await t.text()}`);return await t.json()}async function RB(e){const t=await fetch(`/api/chat/sessions/${e}`,{method:"DELETE"});if(!t.ok)throw new Error(`${t.status}`)}async function MB(e,t,n){const a=await fetch(`/api/chat/sessions/${e}/messages`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:t,attachments:n})});if(!a.ok)throw new Error(`${a.status}: ${await a.text()}`);return await a.json()}async function jB(e){const t=await fetch(`/api/chat/sessions/${e}/interrupt`,{method:"POST"});if(!t.ok&&t.status!==204)throw new Error(`${t.status}: ${await t.text()}`)}function DB(e,t){const n=t?`?since=${encodeURIComponent(t)}`:"";return Pt(`/api/chat/sessions/${e}/messages${n}`)}function o1(){var q,ce,Y,ye,R,D,X,C,ge;const{sessionId:e}=K1(),t=wr(),n=Hn(),{confirm:a,alert:s}=li(),o=lt({queryKey:["chat-sessions"],queryFn:AB}),c=lt({queryKey:["chat-session",e],queryFn:()=>OB(e??""),enabled:!!e}),[f,h]=O.useState(null),[m,b]=O.useState(""),[g,x]=O.useState(!1),v=O.useRef(null),[E,w]=O.useState(!1),[k,_]=O.useState([]),[A,T]=O.useState(!1),[j,$]=O.useState(!1),[M,F]=O.useState(!1),[H,ee]=O.useState(null);O.useEffect(()=>{if(!e)return;const W=new EventSource(`/stream/chat/${encodeURIComponent(e)}`);let fe=!0;return W.addEventListener("open",()=>{if(fe){fe=!1;return}const K=n.getQueryData(["chat-session",e]),se=K!=null&&K.messages.length?K.messages[K.messages.length-1].ts:void 0;DB(e,se).then(de=>{de.data.length!==0&&n.setQueryData(["chat-session",e],Re=>{if(!Re)return Re;const mt=new Set(Re.messages.map(oi=>oi.id)),xt=de.data.filter(oi=>!mt.has(oi.id));return xt.length===0?Re:{...Re,messages:[...Re.messages,...xt],lastMessageAt:xt[xt.length-1].ts,messageCount:Re.messageCount+xt.length}})}).catch(()=>{})}),W.addEventListener("chat.message",K=>{try{const se=JSON.parse(K.data);n.setQueryData(["chat-session",e],de=>{if(!de||de.messages.some(xt=>xt.id===se.message.id))return de;const mt=de.messages.findIndex(xt=>xt.role==="user"&&xt.id.startsWith("optim-")&&xt.content===se.message.content);if(mt>=0){const xt=[...de.messages];return xt[mt]=se.message,{...de,messages:xt}}return{...de,messages:[...de.messages,se.message]}})}catch{}}),W.addEventListener("chat.message.pending",K=>{try{const se=JSON.parse(K.data);h({id:se.assistantId,blocks:[],done:!1,finalMessage:null})}catch{}}),W.addEventListener("chat.message.chunk.text",K=>{try{const se=JSON.parse(K.data);h(de=>{if(!de||de.id!==se.assistantId)return de;const Re=[...de.blocks],mt=Re[Re.length-1];return mt&&mt.type==="text"?Re[Re.length-1]={...mt,target:mt.target+se.text}:Re.push({type:"text",target:se.text,displayed:""}),{...de,blocks:Re}})}catch{}}),W.addEventListener("chat.message.chunk.tool_use",K=>{try{const se=JSON.parse(K.data);h(de=>!de||de.id!==se.assistantId?de:{...de,blocks:[...de.blocks,{type:"tool_use",id:se.id,title:se.title,kind:se.kind,status:se.status}]})}catch{}}),W.addEventListener("chat.message.chunk.tool_update",K=>{try{const se=JSON.parse(K.data);h(de=>!de||de.id!==se.assistantId?de:{...de,blocks:de.blocks.map(Re=>Re.type==="tool_use"&&Re.id===se.id?{...Re,status:se.status}:Re)})}catch{}}),W.addEventListener("chat.message.complete",K=>{try{const se=JSON.parse(K.data);h(de=>de&&de.id===se.assistantId?{...de,done:!0,finalMessage:se.message}:de)}catch{}}),()=>W.close()},[e,n]),O.useEffect(()=>{if(!f)return;const W=f.blocks.reduce((K,se)=>se.type==="text"?K+(se.target.length-se.displayed.length):K,0);if(W<=0){if(f.done&&f.finalMessage){const K=f.finalMessage;n.setQueryData(["chat-session",e],se=>!se||se.messages.some(de=>de.id===K.id)?se:{...se,messages:[...se.messages,K],lastMessageAt:K.ts,messageCount:se.messageCount+1}),n.invalidateQueries({queryKey:["chat-sessions"]}),h(null),x(!1)}return}const fe=setTimeout(()=>{h(K=>{if(!K)return K;let se=Math.max(1,Math.ceil(W/40));const de=K.blocks.map(Re=>{if(Re.type!=="text"||se<=0)return Re;const mt=Re.target.length-Re.displayed.length;if(mt<=0)return Re;const xt=Math.min(mt,se);return se-=xt,{...Re,displayed:Re.target.slice(0,Re.displayed.length+xt)}});return{...K,blocks:de}})},25);return()=>clearTimeout(fe)},[f,n,e]),O.useEffect(()=>{const W=v.current;W&&(W.scrollTop=W.scrollHeight)},[c.data,f]);const L=O.useCallback(async(W={})=>{var fe,K;try{const se=await Gm({cwd:((fe=W.cwd)==null?void 0:fe.trim())||void 0,title:((K=W.title)==null?void 0:K.trim())||void 0});n.invalidateQueries({queryKey:["chat-sessions"]}),t(`/chat/${se.id}`),w(!1)}catch(se){s({title:"新建对话失败",body:se instanceof Error?se.message:String(se)})}},[n,t,s]),J=O.useCallback(async()=>{const W=m.trim();if(!W&&k.length===0||g)return;let fe=e;if(!fe){const de=await Gm();n.invalidateQueries({queryKey:["chat-sessions"]}),fe=de.id,t(`/chat/${fe}`,{replace:!0})}const K=k.map(de=>de.path),se={id:`optim-${Date.now()}`,role:"user",content:W||"(附件)",ts:new Date().toISOString(),status:"complete",attachments:K.length>0?K:void 0};n.setQueryData(["chat-session",fe],de=>de?{...de,messages:[...de.messages,se],lastMessageAt:se.ts,messageCount:de.messageCount+1}:{id:fe,createdAt:se.ts,lastMessageAt:se.ts,title:W.slice(0,60)||"附件",project:null,messageCount:1,messages:[se]}),b(""),_([]),x(!0);try{await MB(fe,W||"(请查看附件)",K.length>0?K:void 0)}catch(de){x(!1),console.error("sendMessage failed",de),s({title:"发送失败",body:de instanceof Error?de.message:String(de)})}},[m,k,g,e,n,t,s]),ae=O.useCallback(async W=>{if(W.size>hE){s({title:"文件超过上限",body:`单文件上限 50 MB;当前 ${(W.size/1024/1024).toFixed(2)} MB(${W.name})`});return}let fe=e;if(!fe){const K=await Gm();n.invalidateQueries({queryKey:["chat-sessions"]}),fe=K.id,t(`/chat/${fe}`,{replace:!0})}T(!0);try{const K=await DA(fe,W);_(se=>[...se,{path:K.path,name:K.name}])}catch(K){s({title:"附件上传失败",body:K instanceof Error?K.message:String(K)})}finally{T(!1)}},[e,n,t,s]),be=O.useCallback(W=>{_(fe=>fe.filter(K=>K.path!==W))},[]),ue=O.useCallback(async(W,fe)=>{await a({title:"删除对话",body:fe==="cli"?"会从 Console 列表移除(停 daemon 会话)。Claude CLI 在 ~/.claude/projects 下的对话存档会保留 —— 想恢复到终端继续聊就重新跑 sps agent --chat --name <名>。":"对话记录会永久删除,不可恢复。",confirm:"删除",danger:!0})&&(await RB(W),n.invalidateQueries({queryKey:["chat-sessions"]}),e===W&&t("/chat"))},[n,e,t,a]),te=O.useCallback(async()=>{if(e)try{await jB(e)}catch(W){s({title:"中断失败",body:W instanceof Error?W.message:String(W)})}},[e,s]);return d.jsxs("div",{className:"grid grid-cols-[260px_1fr] gap-4 h-[calc(100vh-140px)]",children:[d.jsxs("aside",{className:"nb-card p-3 overflow-auto flex flex-col gap-2",children:[d.jsxs("button",{className:"nb-btn nb-btn-primary w-full justify-center",onClick:()=>w(!0),type:"button",children:[d.jsx(Ii,{size:14,strokeWidth:3}),"新建对话"]}),d.jsxs("div",{className:"mt-2 text-xs font-[family-name:var(--font-heading)] uppercase tracking-wider text-[var(--color-text-muted)] px-2",children:["历史 ",((q=o.data)==null?void 0:q.data.length)??0]}),d.jsxs("div",{className:"flex flex-col gap-1.5 mt-1",children:[(((ce=o.data)==null?void 0:ce.data)??[]).map(W=>d.jsxs("div",{className:["group flex items-start gap-2 p-2 rounded-lg border-2 border-transparent",e===W.id?"bg-[var(--color-accent-mint)] border-[var(--color-text)] shadow-[2px_2px_0_var(--color-text)]":"hover:bg-[var(--color-bg-cream)] hover:border-[var(--color-text)]"].join(" "),children:[d.jsxs("button",{type:"button","aria-label":`打开对话 ${W.title}${W.cwd?`(工作目录 ${W.cwd})`:""}`,onClick:()=>t(`/chat/${W.id}`),className:"flex items-start gap-2 flex-1 min-w-0 text-left",children:[d.jsx(Qv,{size:14,strokeWidth:2.5,className:"mt-0.5 flex-shrink-0"}),d.jsxs("div",{className:"flex-1 min-w-0",children:[d.jsxs("div",{className:"flex items-center gap-1.5 min-w-0",children:[d.jsx("p",{className:"text-sm font-semibold truncate flex-1",children:W.title}),W.source==="cli"&&d.jsx("span",{className:"flex-shrink-0 px-1.5 py-0 rounded-md bg-[var(--color-accent-purple)] border-2 border-[var(--color-text)] text-[9px] font-[family-name:var(--font-mono)] uppercase tracking-wider leading-tight",title:"该会话由 sps agent CLI 创建,从 Claude jsonl 实时读取(只读)",children:"CLI"})]}),d.jsxs("p",{className:"text-[10px] text-[var(--color-text-muted)] font-[family-name:var(--font-mono)] truncate",children:[W.messageCount," msg · ",Pw(W.lastMessageAt??W.createdAt)]}),W.cwd&&d.jsxs("p",{className:"text-[10px] text-[var(--color-text-subtle)] font-[family-name:var(--font-mono)] truncate flex items-center gap-1",title:W.cwd,children:[d.jsx(lc,{size:9,strokeWidth:2.5,className:"flex-shrink-0"}),d.jsx("span",{className:"truncate",dir:"rtl",children:W.cwd})]})]})]}),d.jsx("button",{type:"button","aria-label":W.source==="cli"?"从 Console 移除该 CLI 会话(不影响 Claude jsonl 存档)":"删除对话",className:"opacity-0 group-hover:opacity-100 p-1 hover:text-[var(--color-crashed)]",onClick:fe=>{fe.stopPropagation(),ue(W.id,W.source)},children:d.jsx(zl,{size:12})})]},W.id)),(((Y=o.data)==null?void 0:Y.data)??[]).length===0&&d.jsx("p",{className:"text-xs text-[var(--color-text-subtle)] italic text-center py-4",children:"还没对话。点上面新建。"})]})]}),d.jsx("div",{className:"nb-card p-0 flex flex-col overflow-hidden",children:e?d.jsxs(d.Fragment,{children:[d.jsxs("header",{className:"px-4 py-3 border-b-2 border-[var(--color-text)] bg-[var(--color-bg-cream)]",children:[d.jsx("h2",{className:"font-[family-name:var(--font-heading)] font-bold text-lg",children:((ye=c.data)==null?void 0:ye.title)??"新对话"}),d.jsx("p",{className:"text-xs text-[var(--color-text-muted)] font-[family-name:var(--font-mono)]",children:e}),((R=c.data)==null?void 0:R.cwd)&&d.jsxs("p",{className:"text-xs text-[var(--color-text-muted)] font-[family-name:var(--font-mono)] flex items-center gap-1 mt-1",title:c.data.cwd,children:[d.jsx(lc,{size:11,strokeWidth:2.5,className:"flex-shrink-0"}),d.jsx("span",{className:"truncate",children:c.data.cwd})]})]}),d.jsxs("div",{ref:v,className:"flex-1 overflow-auto p-4 flex flex-col gap-4",children:[(((D=c.data)==null?void 0:D.messages)??[]).map(W=>d.jsx(IB,{msg:W,sessionId:e??null,onPreviewAttachment:fe=>ee(fe)},W.id)),f&&d.jsx(UB,{pending:f}),!c.isLoading&&(((X=c.data)==null?void 0:X.messages)??[]).length===0&&!f&&!g&&d.jsx("p",{className:"text-center text-[var(--color-text-subtle)] italic mt-12",children:"下方输入问题开始对话 · Enter 发送 · Shift+Enter 换行"})]}),((C=c.data)==null?void 0:C.source)==="cli"?d.jsxs("div",{className:"border-t-2 border-[var(--color-text)] p-4 bg-[var(--color-accent-purple)]",children:[d.jsxs("p",{className:"text-sm font-[family-name:var(--font-mono)] text-[var(--color-text-muted)] text-center",children:["这是 ",d.jsx("strong",{children:"CLI 会话"}),"(由 ",d.jsx("code",{children:"sps agent"})," 创建),Console 仅展示历史。续聊请在终端运行:"]}),d.jsxs("pre",{className:"mt-2 px-3 py-2 bg-[var(--color-bg)] border-2 border-[var(--color-text)] rounded-md text-xs font-[family-name:var(--font-mono)] overflow-x-auto",children:["sps agent --chat --name ",(e??"").replace(/^session-/,"")]})]}):d.jsxs("div",{className:["border-t-2 border-[var(--color-text)] p-3 bg-[var(--color-bg-cream)] transition-colors",M?"bg-[var(--color-accent-mint)]":""].join(" "),onDragOver:W=>{W.dataTransfer.types.includes("Files")&&(W.preventDefault(),W.dataTransfer.dropEffect="copy",M||F(!0))},onDragLeave:()=>F(!1),onDrop:W=>{if(!W.dataTransfer.types.includes("Files"))return;W.preventDefault(),F(!1);const fe=Array.from(W.dataTransfer.files??[]);for(const K of fe)ae(K)},children:[(k.length>0||A)&&d.jsxs("div",{className:"flex flex-wrap gap-2 mb-2",children:[k.map(W=>d.jsxs("button",{type:"button",className:"flex items-center gap-1.5 px-2 py-1 rounded-md bg-[var(--color-bg)] border-2 border-[var(--color-text)] text-xs font-[family-name:var(--font-mono)] hover:bg-[var(--color-accent-mint)] group",onClick:()=>ee(W.path),title:`${W.name}
547
547
  ${W.path}
548
548
  点击预览`,children:[jf(W.path)?d.jsx(hC,{size:11,strokeWidth:2.5,className:"flex-shrink-0"}):d.jsx(Ec,{size:11,strokeWidth:2.5,className:"flex-shrink-0"}),d.jsx("span",{className:"truncate max-w-[180px]",children:W.name}),d.jsx("span",{role:"button","aria-label":`移除 ${W.name}`,className:"ml-1 hover:text-[var(--color-crashed)] cursor-pointer",onClick:fe=>{fe.stopPropagation(),be(W.path)},children:d.jsx(_i,{size:11,strokeWidth:3})})]},W.path)),A&&d.jsxs("span",{className:"flex items-center gap-1.5 px-2 py-1 text-xs text-[var(--color-text-muted)] font-[family-name:var(--font-mono)]",children:[d.jsx(zt,{size:11,strokeWidth:2.5,className:"animate-spin"}),"上传中..."]})]}),d.jsxs("div",{className:"flex gap-2 items-end",children:[d.jsx("button",{type:"button",className:"nb-btn flex-shrink-0",onClick:()=>$(!0),disabled:g,"aria-label":"附加本地文件",title:"附加本地文件(也可拖拽 / 粘贴图片)",children:d.jsx(kC,{size:14,strokeWidth:2.5})}),d.jsx("textarea",{className:"nb-input flex-1 resize-none",placeholder:M?"松开鼠标以附加文件…":"说点什么… (Enter 发送,Shift+Enter 换行,可拖入文件 / 粘贴图片)",rows:2,value:m,onChange:W=>b(W.target.value),onKeyDown:W=>{W.key==="Enter"&&!W.shiftKey&&!W.nativeEvent.isComposing&&(W.preventDefault(),J())},onPaste:W=>{const K=Array.from(W.clipboardData.items??[]).filter(se=>se.kind==="file"&&se.type.startsWith("image/"));if(K.length!==0){W.preventDefault();for(const se of K){const de=se.getAsFile();de&&ae(de)}}},"aria-label":"消息输入"}),f?d.jsxs("button",{className:"nb-btn nb-btn-danger",onClick:te,type:"button","aria-label":"中断生成",children:[d.jsx(lE,{size:14,strokeWidth:3}),"中断"]}):d.jsxs("button",{className:"nb-btn nb-btn-primary",onClick:J,disabled:!m.trim()&&k.length===0||g,type:"button","aria-label":"发送",children:[g?d.jsx(zt,{size:14,strokeWidth:3,className:"animate-spin"}):d.jsx(IC,{size:14,strokeWidth:3}),"发送"]})]})]})]}):d.jsx("div",{className:"flex-1 flex items-center justify-center p-8",children:d.jsxs("div",{className:"text-center max-w-md",children:[d.jsx("div",{className:"w-20 h-20 rounded-2xl bg-[var(--color-accent-mint)] border-[3px] border-[var(--color-text)] shadow-[3px_3px_0_var(--color-text)] flex items-center justify-center mx-auto mb-4",children:d.jsx(Qv,{size:32,strokeWidth:2.5})}),d.jsx("h1",{className:"font-[family-name:var(--font-heading)] text-2xl font-bold mb-2",children:"对话 💬"}),d.jsx("p",{className:"text-sm text-[var(--color-text-muted)] mb-4",children:'点左上角"新建对话"开始一个 session。或直接在下方输入,会自动建 session。'}),d.jsx("p",{className:"text-xs text-[var(--color-text-subtle)] italic",children:"Enter 发送 · Shift+Enter 换行 · 内容流式返回"})]})})}),E&&d.jsx(zB,{onCancel:()=>w(!1),onCreate:W=>L(W)}),j&&d.jsx(Xp,{mode:"file",title:"选择附件文件",initialPath:((ge=c.data)==null?void 0:ge.cwd)??void 0,onCancel:()=>$(!1),onSelect:W=>{_(fe=>{if(fe.some(se=>se.path===W))return fe;const K=W.split(/[\\/]/).pop()||W;return[...fe,{path:W,name:K}]}),$(!1)}}),H&&e&&d.jsx(LB,{sessionId:e,path:H,onClose:()=>ee(null)})]})}function jf(e){return/\.(png|jpe?g|gif|webp|svg|avif)$/i.test(e)}function c1(e){return/\.pdf$/i.test(e)}function Qm(e){return/\.(txt|md|log|json|yaml|yml|csv|html|xml|tsx?|jsx?|css|sh|ya?ml|conf|toml|ini|env|gitignore|sql|py|rb|go|rs|java|kt|swift|c|cc|cpp|h|hpp)$/i.test(e)}function LB({sessionId:e,path:t,onClose:n}){const[a,s]=O.useState(null),[o,c]=O.useState(null);O.useEffect(()=>{const m=b=>{b.key==="Escape"&&(b.preventDefault(),n())};return window.addEventListener("keydown",m),()=>window.removeEventListener("keydown",m)},[n]),O.useEffect(()=>{if(!Qm(t))return;let m=!1;return fetch(hp(e,t)).then(async b=>{if(!b.ok)throw new Error(`${b.status}`);return b.text()}).then(b=>{m||s(b.length>2e5?b.slice(0,2e5)+`
549
549
 
@@ -7,7 +7,7 @@
7
7
  <link rel="preconnect" href="https://fonts.googleapis.com">
8
8
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9
9
  <link href="https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
10
- <script type="module" crossorigin src="/assets/index-C5yBUuEw.js"></script>
10
+ <script type="module" crossorigin src="/assets/index-Diuf9X57.js"></script>
11
11
  <link rel="stylesheet" crossorigin href="/assets/index-BPZgV2XB.css">
12
12
  </head>
13
13
  <body>