@mengzf/skillflow-mcp 1.0.0 → 1.0.1

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 (73) hide show
  1. package/README.md +48 -7
  2. package/dist/adapters/claude-code.adapter.d.ts +10 -0
  3. package/dist/adapters/claude-code.adapter.d.ts.map +1 -0
  4. package/dist/adapters/claude-code.adapter.js +166 -0
  5. package/dist/adapters/claude-code.adapter.js.map +1 -0
  6. package/dist/adapters/codex.adapter.d.ts +10 -0
  7. package/dist/adapters/codex.adapter.d.ts.map +1 -0
  8. package/dist/adapters/codex.adapter.js +109 -0
  9. package/dist/adapters/codex.adapter.js.map +1 -0
  10. package/dist/adapters/dsh.adapter.d.ts +7 -0
  11. package/dist/adapters/dsh.adapter.d.ts.map +1 -0
  12. package/dist/adapters/dsh.adapter.js +60 -0
  13. package/dist/adapters/dsh.adapter.js.map +1 -0
  14. package/dist/adapters/qoder.adapter.d.ts +10 -0
  15. package/dist/adapters/qoder.adapter.d.ts.map +1 -0
  16. package/dist/adapters/qoder.adapter.js +119 -0
  17. package/dist/adapters/qoder.adapter.js.map +1 -0
  18. package/dist/adapters/trae.adapter.d.ts +8 -0
  19. package/dist/adapters/trae.adapter.d.ts.map +1 -0
  20. package/dist/adapters/trae.adapter.js +104 -0
  21. package/dist/adapters/trae.adapter.js.map +1 -0
  22. package/dist/adapters/types.d.ts +25 -0
  23. package/dist/adapters/types.d.ts.map +1 -0
  24. package/dist/adapters/types.js +2 -0
  25. package/dist/adapters/types.js.map +1 -0
  26. package/dist/adapters/universal.sync.d.ts +22 -0
  27. package/dist/adapters/universal.sync.d.ts.map +1 -0
  28. package/dist/adapters/universal.sync.js +140 -0
  29. package/dist/adapters/universal.sync.js.map +1 -0
  30. package/dist/adapters/workbuddy.sniffer.d.ts.map +1 -1
  31. package/dist/adapters/workbuddy.sniffer.js +8 -3
  32. package/dist/adapters/workbuddy.sniffer.js.map +1 -1
  33. package/dist/db/invocation-filter.d.ts +29 -0
  34. package/dist/db/invocation-filter.d.ts.map +1 -0
  35. package/dist/db/invocation-filter.js +78 -0
  36. package/dist/db/invocation-filter.js.map +1 -0
  37. package/dist/db/schema.d.ts.map +1 -1
  38. package/dist/db/schema.js +28 -2
  39. package/dist/db/schema.js.map +1 -1
  40. package/dist/server.d.ts.map +1 -1
  41. package/dist/server.js +16 -12
  42. package/dist/server.js.map +1 -1
  43. package/dist/services/dashboard.service.d.ts +2 -0
  44. package/dist/services/dashboard.service.d.ts.map +1 -1
  45. package/dist/services/dashboard.service.js +145 -40
  46. package/dist/services/dashboard.service.js.map +1 -1
  47. package/dist/services/filter.service.d.ts +26 -0
  48. package/dist/services/filter.service.d.ts.map +1 -0
  49. package/dist/services/filter.service.js +103 -0
  50. package/dist/services/filter.service.js.map +1 -0
  51. package/dist/services/telemetry.service.d.ts +9 -1
  52. package/dist/services/telemetry.service.d.ts.map +1 -1
  53. package/dist/services/telemetry.service.js +105 -36
  54. package/dist/services/telemetry.service.js.map +1 -1
  55. package/dist/types/models.d.ts +13 -1
  56. package/dist/types/models.d.ts.map +1 -1
  57. package/dist/types/tools.d.ts +44 -5
  58. package/dist/types/tools.d.ts.map +1 -1
  59. package/dist/types/tools.js +47 -1
  60. package/dist/types/tools.js.map +1 -1
  61. package/dist/utils/governance.d.ts +25 -0
  62. package/dist/utils/governance.d.ts.map +1 -0
  63. package/dist/utils/governance.js +70 -0
  64. package/dist/utils/governance.js.map +1 -0
  65. package/dist/utils/pricing.js +1 -1
  66. package/dist/utils/pricing.js.map +1 -1
  67. package/dist/web/render.d.ts.map +1 -1
  68. package/dist/web/render.js +1565 -239
  69. package/dist/web/render.js.map +1 -1
  70. package/dist/web/server.d.ts.map +1 -1
  71. package/dist/web/server.js +52 -28
  72. package/dist/web/server.js.map +1 -1
  73. package/package.json +1 -1
package/dist/server.js CHANGED
@@ -5,7 +5,7 @@ import { ImpactService } from './services/impact.service.js';
5
5
  import { DashboardService } from './services/dashboard.service.js';
6
6
  import { BenchmarkService } from './services/benchmark.service.js';
7
7
  import { renderDashboardHtml } from './web/render.js';
8
- import { WorkBuddySniffer } from './adapters/workbuddy.sniffer.js';
8
+ import { UniversalHistorySync } from './adapters/universal.sync.js';
9
9
  export function createMcpServer(db, options = {}) {
10
10
  const server = new McpServer({
11
11
  name: 'skillflow-mcp',
@@ -15,11 +15,11 @@ export function createMcpServer(db, options = {}) {
15
15
  const impactService = new ImpactService(db);
16
16
  const dashboardService = new DashboardService(db);
17
17
  const benchmarkService = new BenchmarkService(db);
18
- const sniffer = new WorkBuddySniffer(db);
18
+ const universalSync = new UniversalHistorySync(db);
19
19
  const webUrl = options.webUrl || 'http://localhost:3000';
20
20
  // Initial auto-sync from host agents
21
21
  try {
22
- sniffer.sync();
22
+ universalSync.syncAll();
23
23
  }
24
24
  catch { }
25
25
  // -------------------------------------------------------------
@@ -170,10 +170,7 @@ export function createMcpServer(db, options = {}) {
170
170
  .describe('是否在报告末尾附加整个会话的累计效能看板 (默认 true)'),
171
171
  }, async (args) => {
172
172
  try {
173
- try {
174
- sniffer.sync();
175
- }
176
- catch { }
173
+ universalSync.triggerBackgroundSync();
177
174
  const result = impactService.getRoundImpact({
178
175
  session_id: args.session_id,
179
176
  round_index: args.round_index,
@@ -191,7 +188,7 @@ export function createMcpServer(db, options = {}) {
191
188
  }
192
189
  });
193
190
  // 3. Tool: get_skill_dashboard
194
- server.tool('get_skill_dashboard', '获取全景 Skill 效能统计看板,支持按当前对话、今日、最近7天、全量历史等多时间维度,以及按 Agent (Trae, Claude Code, Qoder 等) 或 Skill 分组统计', {
191
+ server.tool('get_skill_dashboard', '获取全景 Skill 效能统计看板,支持按当前对话、今日、最近7天、全量历史等多时间维度,以及按 Agent (Trae, Claude Code, Qoder 等)、Skill、执行模型、执行状态筛选并分组统计', {
195
192
  time_range: z
196
193
  .enum(['current_session', 'today', '7days', '30days', 'all'])
197
194
  .optional()
@@ -208,21 +205,28 @@ export function createMcpServer(db, options = {}) {
208
205
  .string()
209
206
  .optional()
210
207
  .describe('按特定 Skill 筛选'),
208
+ model_name: z
209
+ .string()
210
+ .optional()
211
+ .describe("按执行模型筛选 (如 'claude-sonnet-4.5', 'gpt-5')"),
212
+ status: z
213
+ .enum(['success', 'failed', 'partial', 'skipped'])
214
+ .optional()
215
+ .describe('按执行状态筛选'),
211
216
  group_by: z
212
217
  .enum(['skill', 'agent', 'category', 'date'])
213
218
  .optional()
214
219
  .describe('主要聚合分组维度 (默认为 skill)'),
215
220
  }, async (args) => {
216
221
  try {
217
- try {
218
- sniffer.sync();
219
- }
220
- catch { }
222
+ universalSync.triggerBackgroundSync();
221
223
  const result = dashboardService.getDashboard({
222
224
  time_range: args.time_range || 'all',
223
225
  session_id: args.session_id,
224
226
  agent_name: args.agent_name,
225
227
  skill_id: args.skill_id,
228
+ model_name: args.model_name,
229
+ status: args.status,
226
230
  group_by: args.group_by || 'skill',
227
231
  });
228
232
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAMnE,MAAM,UAAU,eAAe,CAAC,EAAgB,EAAE,UAA4B,EAAE;IAC9E,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC;IAC5C,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAClD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,uBAAuB,CAAC;IAEzD,qCAAqC;IACrC,IAAI,CAAC;QAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEhC,gEAAgE;IAChE,gBAAgB;IAChB,gEAAgE;IAEhE,qCAAqC;IACrC,MAAM,CAAC,QAAQ,CACb,gBAAgB,EAChB,uBAAuB,EACvB,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACd,QAAQ,EAAE;YACR;gBACE,GAAG,EAAE,GAAG,CAAC,IAAI;gBACb,IAAI,EAAE,mBAAmB,EAAE;gBAC3B,QAAQ,EAAE,WAAW;aACtB;SACF;KACF,CAAC,CACH,CAAC;IAEF,kCAAkC;IAClC,MAAM,CAAC,QAAQ,CACb,gBAAgB,EAChB,4BAA4B,EAC5B,KAAK,EAAE,GAAG,EAAE,EAAE;QACZ,MAAM,IAAI,GAAG,gBAAgB,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC;QACvE,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBACnC,QAAQ,EAAE,kBAAkB;iBAC7B;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,4CAA4C;IAC5C,MAAM,CAAC,QAAQ,CACb,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,EAAE,GAAG,EAAE,EAAE;QACZ,MAAM,IAAI,GAAG,gBAAgB,CAAC,cAAc,EAAE,CAAC;QAC/C,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBACnC,QAAQ,EAAE,kBAAkB;iBAC7B;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,gEAAgE;IAChE,YAAY;IACZ,gEAAgE;IAEhE,4BAA4B;IAC5B,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,oDAAoD,EACpD;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAChE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;QACrF,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,+EAA+E,CAAC;QAC5F,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,mEAAmE,CAAC;QAChF,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,EAAE;aACV,QAAQ,CAAC,yBAAyB,CAAC;QACtC,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;aACjD,QAAQ,EAAE;aACV,QAAQ,CAAC,qEAAqE,CAAC;QAClF,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,EAAE;aACV,QAAQ,CAAC,8BAA8B,CAAC;QAC3C,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,EAAE;aACV,QAAQ,CAAC,sBAAsB,CAAC;QACnC,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,QAAQ,CAAC,8BAA8B,CAAC;QAC3C,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,QAAQ,CAAC,kCAAkC,CAAC;QAC/C,iBAAiB,EAAE,CAAC;aACjB,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,EAAE;aACV,QAAQ,CAAC,QAAQ,CAAC;QACrB,QAAQ,EAAE,CAAC;aACR,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;aACf,QAAQ,EAAE;aACV,QAAQ,CAAC,+BAA+B,CAAC;KAC7C,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC;gBACxC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS;gBACxC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS;gBACxC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS;gBAChC,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC;gBACtC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC;gBACpC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,IAAI,CAAC;gBAC9C,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,uBAAuB,MAAM,CAAC,UAAU;aACtD,MAAM,CAAC,UAAU,cAAc,MAAM,CAAC,WAAW;YAClD,MAAM,CAAC,UAAU,aAAa,MAAM,CAAC,UAAU;UACjD,MAAM,CAAC,MAAM;iBACN,MAAM,CAAC,WAAW,mBAAmB,MAAM,CAAC,WAAW;gBACxD,MAAM,CAAC,YAAY,iBAAiB,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;cAC7G,MAAM,CAAC,OAAO,CAAC,iBAAiB,YAAY,MAAM,CAAC,OAAO,CAAC,iBAAiB,SAAS,MAAM,CAAC,OAAO,CAAC,kBAAkB,SAAS,CAAC;YAEtI,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;aAC9C,CAAC;QACJ,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;aACrE,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kCAAkC;IAClC,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,4DAA4D,EAC5D;QACE,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,6BAA6B,CAAC;QAC1C,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,EAAE;aACV,QAAQ,CAAC,yBAAyB,CAAC;QACtC,uBAAuB,EAAE,CAAC;aACvB,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,gCAAgC,CAAC;KAC9C,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,IAAI,CAAC;gBAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YAChC,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc,CAAC;gBAC1C,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,IAAI,IAAI;aAC9D,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;aACnD,CAAC;QACJ,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;aAClE,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,+BAA+B;IAC/B,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,kGAAkG,EAClG;QACE,UAAU,EAAE,CAAC;aACV,IAAI,CAAC,CAAC,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;aAC5D,QAAQ,EAAE;aACV,QAAQ,CAAC,wFAAwF,CAAC;QACrG,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,iDAAiD,CAAC;QAC9D,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,8DAA8D,CAAC;QAC3E,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,cAAc,CAAC;QAC3B,QAAQ,EAAE,CAAC;aACR,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;aAC5C,QAAQ,EAAE;aACV,QAAQ,CAAC,sBAAsB,CAAC;KACpC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,IAAI,CAAC;gBAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YAChC,MAAM,MAAM,GAAG,gBAAgB,CAAC,YAAY,CAAC;gBAC3C,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,KAAK;gBACpC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,OAAO;aACnC,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;aACnD,CAAC;QACJ,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;aAChE,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kCAAkC;IAClC,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,sDAAsD,EACtD;QACE,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;aACxD,QAAQ,CAAC,iFAAiF,CAAC;QAC9F,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,gCAAgC,CAAC;QAC7C,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,YAAY,CAAC;QACzB,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,gFAAgF,CAAC;QAC7F,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,QAAQ,CAAC;QACrB,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,EAAE;aACV,QAAQ,CAAC,qBAAqB,CAAC;QAClC,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,sBAAsB,CAAC;QACnC,mBAAmB,EAAE,CAAC;aACnB,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,EAAE;aACV,QAAQ,CAAC,YAAY,CAAC;QACzB,oBAAoB,EAAE,CAAC;aACpB,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,EAAE,CAAC;aACP,QAAQ,EAAE;aACV,QAAQ,CAAC,iBAAiB,CAAC;QAC9B,IAAI,EAAE,CAAC;aACJ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,QAAQ,CAAC,MAAM,CAAC;KACpB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5D,IAAI,IAAI,GAAG,yBAAyB,IAAI,CAAC,MAAM,SAAS,CAAC;gBACzD,IAAI,IAAI,kEAAkE,CAAC;gBAC3E,IAAI,IAAI,2DAA2D,CAAC;gBACpE,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;oBACrB,IAAI,IAAI,OAAO,CAAC,CAAC,QAAQ,UAAU,CAAC,CAAC,UAAU,QAAQ,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,cAAc,QAAQ,CAAC,CAAC,eAAe,cAAc,CAAC,CAAC,mBAAmB,SAAS,CAAC,CAAC,oBAAoB,aAAa,CAAC;gBAClM,CAAC;gBACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/C,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,EAAE,CAAC;gBACzF,CAAC;gBACD,MAAM,IAAI,GAAG,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1D,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,IAAI,CAAC,QAAQ,gBAAgB,EAAE,CAAC,EAAE,CAAC;gBAC5F,CAAC;gBACD,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBACjE,CAAC;YACJ,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,EAAE,CAAC;gBACzF,CAAC;gBACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,YAAY,CAAC;oBAC5C,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;oBACnC,eAAe,EAAE,IAAI,CAAC,eAAe;oBACrC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;oBAC7C,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;oBAC/C,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB,CAAC,CAAC;gBACH,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,OAAO,CAAC,QAAQ,QAAQ,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC;iBACxG,CAAC;YACJ,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,EAAE,CAAC;gBAC5F,CAAC;gBACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC/D,OAAO;oBACL,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO;oBACxB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;iBAClD,CAAC;YACJ,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;gBACrC,MAAM,GAAG,GAAG,gBAAgB,CAAC,aAAa,EAAE,CAAC;gBAC7C,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,GAAG,CAAC,UAAU,aAAa,EAAE,CAAC;iBACnF,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;aAC1D,CAAC;QACJ,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;aAC/D,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,iCAAiC;IACjC,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,qCAAqC,EACrC,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,GAAG,GAAG,8CAA8C,MAAM,KAAK,MAAM,uFAAuF,CAAC;QACnK,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;SACvC,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ export declare class DashboardService {
4
4
  private db;
5
5
  private telemetryService;
6
6
  constructor(db: DatabaseSync);
7
+ private resolveSessionId;
8
+ private describeFilters;
7
9
  getDashboard(input: GetSkillDashboardInput): {
8
10
  markdown: string;
9
11
  data: any;
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.service.d.ts","sourceRoot":"","sources":["../../src/services/dashboard.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAM3D,qBAAa,gBAAgB;IAGf,OAAO,CAAC,EAAE;IAFtB,OAAO,CAAC,gBAAgB,CAAmB;gBAEvB,EAAE,EAAE,YAAY;IAIpC,YAAY,CAAC,KAAK,EAAE,sBAAsB,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE;CAkM7E"}
1
+ {"version":3,"file":"dashboard.service.d.ts","sourceRoot":"","sources":["../../src/services/dashboard.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAQ3D,qBAAa,gBAAgB;IAGf,OAAO,CAAC,EAAE;IAFtB,OAAO,CAAC,gBAAgB,CAAmB;gBAEvB,EAAE,EAAE,YAAY;IAIpC,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,eAAe;IAgBvB,YAAY,CAAC,KAAK,EAAE,sBAAsB,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE;CA0R7E"}
@@ -1,6 +1,8 @@
1
1
  import { formatNumber, formatPercent } from '../utils/formatter.js';
2
2
  import { renderHorizontalBarChart } from '../utils/ascii-chart.js';
3
3
  import { formatWorkHours } from '../utils/hours.js';
4
+ import { buildInvocationWhere, normalizeTimeRange } from '../db/invocation-filter.js';
5
+ import { calculateSkillHealthScore, MODIFIER_PATTERNS } from '../utils/governance.js';
4
6
  import { TelemetryService } from './telemetry.service.js';
5
7
  export class DashboardService {
6
8
  db;
@@ -9,50 +11,62 @@ export class DashboardService {
9
11
  this.db = db;
10
12
  this.telemetryService = new TelemetryService(db);
11
13
  }
12
- getDashboard(input) {
13
- const timeRange = input.time_range || 'all';
14
- let whereClauses = ['1=1'];
15
- const params = [];
16
- if (timeRange === 'current_session') {
17
- let sessId = input.session_id;
18
- if (!sessId) {
19
- const lastSession = this.telemetryService.getLastActiveSession();
20
- sessId = lastSession?.session_id || 'unknown';
21
- }
22
- whereClauses.push('i.session_id = ?');
23
- params.push(sessId);
24
- }
25
- else if (timeRange === 'today') {
26
- whereClauses.push("date(i.timestamp) = date('now')");
27
- }
28
- else if (timeRange === '7days') {
29
- whereClauses.push("i.timestamp >= datetime('now', '-7 days')");
14
+ resolveSessionId(sessionId) {
15
+ if (sessionId) {
16
+ return sessionId;
30
17
  }
31
- else if (timeRange === '30days') {
32
- whereClauses.push("i.timestamp >= datetime('now', '-30 days')");
18
+ const lastSession = this.telemetryService.getLastActiveSession();
19
+ return lastSession?.session_id || 'unknown';
20
+ }
21
+ describeFilters(input) {
22
+ const parts = [];
23
+ parts.push(`范围 \`${normalizeTimeRange(input.time_range)}\``);
24
+ parts.push(`Agent \`${input.agent_name || '全部'}\``);
25
+ if (input.skill_id) {
26
+ parts.push(`Skill \`${input.skill_id}\``);
33
27
  }
34
- if (input.agent_name) {
35
- whereClauses.push('i.agent_name = ?');
36
- params.push(input.agent_name);
28
+ if (input.model_name) {
29
+ parts.push(`模型 \`${input.model_name}\``);
37
30
  }
38
- if (input.skill_id) {
39
- whereClauses.push('i.skill_id = ?');
40
- params.push(input.skill_id);
31
+ if (input.status) {
32
+ parts.push(`状态 \`${input.status}\``);
41
33
  }
42
- const whereSql = whereClauses.join(' AND ');
43
- // 1. KPI Aggregation
34
+ return parts.join(' | ');
35
+ }
36
+ getDashboard(input) {
37
+ const timeRange = normalizeTimeRange(input.time_range);
38
+ const sessionId = timeRange === 'current_session' ? this.resolveSessionId(input.session_id) : undefined;
39
+ const { whereSql, params } = buildInvocationWhere({
40
+ timeRange,
41
+ sessionId,
42
+ agentName: input.agent_name,
43
+ skillId: input.skill_id,
44
+ modelName: input.model_name,
45
+ status: input.status,
46
+ });
47
+ // 1. L1 & L2 KPI Aggregation
44
48
  const kpiRow = this.db
45
49
  .prepare(`
46
50
  SELECT
47
51
  COUNT(DISTINCT i.session_id) as session_count,
48
52
  COUNT(*) as total_invocations,
49
53
  SUM(CASE WHEN i.status = 'success' THEN 1 ELSE 0 END) as success_count,
54
+ SUM(CASE WHEN i.status = 'failed' THEN 1 ELSE 0 END) as failure_count,
50
55
  SUM(i.saved_steps) as total_saved_steps,
51
56
  SUM(i.saved_tokens) as total_saved_tokens,
52
57
  SUM(i.saved_hours) as total_saved_hours,
53
58
  SUM(i.cost_saved_usd) as total_cost_saved_usd,
54
59
  SUM(i.cost_saved_cny) as total_cost_saved_cny,
55
60
  SUM(i.actual_tokens) as total_actual_tokens,
61
+ SUM(i.context_tokens) as total_context_tokens,
62
+ SUM(i.output_tokens) as total_output_tokens,
63
+ SUM(CASE WHEN i.trigger_mode = 'explicit' THEN 1 ELSE 0 END) as explicit_count,
64
+ SUM(CASE WHEN i.trigger_mode = 'implicit' THEN 1 ELSE 0 END) as implicit_count,
65
+ SUM(i.has_correction) as total_corrections,
66
+ SUM(CASE WHEN i.quality_profile = 'heavy_investment' THEN 1 ELSE 0 END) as heavy_investment_count,
67
+ SUM(CASE WHEN i.quality_profile = 'efficient' THEN 1 ELSE 0 END) as efficient_count,
68
+ SUM(i.tool_chain_depth) as total_tool_chain_depth,
69
+ SUM(i.tool_failures) as total_tool_failures,
56
70
  AVG(i.execution_time_ms) as avg_execution_time
57
71
  FROM invocations i
58
72
  WHERE ${whereSql}
@@ -67,6 +81,17 @@ export class DashboardService {
67
81
  const totalCostSavedUsd = kpiRow?.total_cost_saved_usd ?? 0.0;
68
82
  const totalCostSavedCny = kpiRow?.total_cost_saved_cny ?? 0.0;
69
83
  const successRate = totalInvocations > 0 ? successCount / totalInvocations : 1;
84
+ // L2 Engineering Metrics
85
+ const explicitCount = kpiRow?.explicit_count ?? 0;
86
+ const implicitCount = kpiRow?.implicit_count ?? 0;
87
+ const totalCorrections = kpiRow?.total_corrections ?? 0;
88
+ const totalContextTokens = kpiRow?.total_context_tokens ?? 0;
89
+ const totalOutputTokens = kpiRow?.total_output_tokens ?? 0;
90
+ const totalToolDepth = kpiRow?.total_tool_chain_depth ?? 0;
91
+ const totalToolFailures = kpiRow?.total_tool_failures ?? 0;
92
+ const correctionRate = totalInvocations > 0 ? totalCorrections / totalInvocations : 0;
93
+ const explicitRate = totalInvocations > 0 ? explicitCount / totalInvocations : 1;
94
+ const yieldRatio = totalContextTokens > 0 ? (totalOutputTokens / totalContextTokens) * 100 : 100;
70
95
  const kpiData = {
71
96
  sessionCount,
72
97
  totalInvocations,
@@ -76,11 +101,21 @@ export class DashboardService {
76
101
  totalSavedHours,
77
102
  totalCostSavedUsd,
78
103
  totalCostSavedCny,
104
+ explicitCount,
105
+ implicitCount,
106
+ explicitRate,
107
+ totalCorrections,
108
+ correctionRate,
109
+ totalContextTokens,
110
+ totalOutputTokens,
111
+ yieldRatio,
112
+ totalToolDepth,
113
+ totalToolFailures,
79
114
  };
80
115
  if (totalInvocations === 0) {
81
116
  return {
82
- markdown: `## 📊 SkillFlow 全景效能看板\n\n> **范围**: \`${timeRange}\` | **Agent**: \`${input.agent_name || '全部'}\`\n\n当前筛选条件下暂无任何 Skill 调用数据。`,
83
- data: { kpi: kpiData, agentRows: [], skillRows: [], modelRows: [] },
117
+ markdown: `## 📊 SkillFlow 全景效能看板\n\n> **筛选条件**: ${this.describeFilters(input)}\n\n当前筛选条件下暂无任何 Skill 调用数据。`,
118
+ data: { kpi: kpiData, agentRows: [], skillRows: [], modelRows: [], governance: {} },
84
119
  };
85
120
  }
86
121
  // 2. Breakdown by Agent
@@ -123,11 +158,14 @@ export class DashboardService {
123
158
  s.skill_id,
124
159
  s.skill_name,
125
160
  s.category,
161
+ s.baseline_steps,
162
+ s.health_score,
126
163
  COUNT(*) as hit_cnt,
127
164
  SUM(i.saved_steps) as saved_steps,
128
165
  SUM(i.saved_tokens) as saved_tokens,
129
166
  SUM(i.saved_hours) as saved_hours,
130
167
  SUM(i.cost_saved_cny) as cost_saved_cny,
168
+ SUM(i.has_correction) as corrections,
131
169
  AVG(i.saved_tokens) as avg_saved_tokens
132
170
  FROM invocations i
133
171
  JOIN skills_manifest s ON i.skill_id = s.skill_id
@@ -137,7 +175,60 @@ export class DashboardService {
137
175
  LIMIT 10
138
176
  `)
139
177
  .all(...params);
140
- // 5. ASCII Chart for Top Skills by Steps Saved
178
+ // 5. L3 Governance: Dormant Skills (No invocations in > 14 days or never invoked)
179
+ const dormantSkills = this.db
180
+ .prepare(`
181
+ SELECT
182
+ s.skill_id,
183
+ s.skill_name,
184
+ s.category,
185
+ s.description,
186
+ s.last_invoked_at
187
+ FROM skills_manifest s
188
+ WHERE s.skill_id NOT IN (
189
+ SELECT DISTINCT skill_id FROM invocations WHERE timestamp >= datetime('now', '-14 days')
190
+ )
191
+ ORDER BY s.skill_name ASC
192
+ `)
193
+ .all();
194
+ // 6. L3 Governance: Follow-Up Modifiers Mining (Clustered blind-spot suggestions)
195
+ const modifierRows = this.db
196
+ .prepare(`
197
+ SELECT
198
+ i.follow_up_modifier,
199
+ COUNT(*) as cnt
200
+ FROM invocations i
201
+ WHERE ${whereSql} AND i.follow_up_modifier IS NOT NULL
202
+ GROUP BY i.follow_up_modifier
203
+ ORDER BY cnt DESC
204
+ LIMIT 5
205
+ `)
206
+ .all(...params);
207
+ const followUpModifiers = modifierRows.map((m) => {
208
+ const matched = MODIFIER_PATTERNS.find((p) => p.category === m.follow_up_modifier);
209
+ return {
210
+ category: m.follow_up_modifier,
211
+ count: m.cnt,
212
+ recommendation: matched ? matched.recommendation : '建议将该高频补充指令收敛进对应技能规则中',
213
+ };
214
+ });
215
+ // 7. L3 Governance: Health Leaderboard with Grades
216
+ const healthLeaderboard = skillRows.map((s) => {
217
+ const health = calculateSkillHealthScore({
218
+ totalInvocations: s.hit_cnt,
219
+ successCount: s.hit_cnt,
220
+ correctionCount: s.corrections || 0,
221
+ });
222
+ return {
223
+ skill_id: s.skill_id,
224
+ skill_name: s.skill_name,
225
+ category: s.category,
226
+ score: health.score,
227
+ grade: health.grade,
228
+ summary: health.summary,
229
+ };
230
+ });
231
+ // ASCII Chart for Top Skills by Steps Saved
141
232
  const chartItems = skillRows.slice(0, 5).map((s) => ({
142
233
  label: s.skill_name.length > 18 ? s.skill_name.substring(0, 16) + '..' : s.skill_name,
143
234
  value: s.saved_steps,
@@ -145,16 +236,25 @@ export class DashboardService {
145
236
  }));
146
237
  // Build Markdown output
147
238
  let md = `## 📊 SkillFlow 跨平台全景效能看板\n\n`;
148
- md += `> **筛选范围**: \`${timeRange.toUpperCase()}\` | **Agent 维度**: \`${input.agent_name || '全部生态'}\` | **主视角**: \`${input.group_by || 'skill'}\`\n\n`;
239
+ md += `> **筛选条件**: ${this.describeFilters(input)} | **主视角**: \`${input.group_by || 'skill'}\`\n\n`;
149
240
  md += `### 💡 核心效能大盘指标\n\n`;
150
241
  md += `| 统计维度 | 数值指标 | 效能评估说明 |\n`;
151
242
  md += `| :--- | :--- | :--- |\n`;
152
243
  md += `| **覆盖会话** | **${formatNumber(sessionCount)}** 场 | 活跃对话会话总数 |\n`;
153
- md += `| **Skill 触发总量** | **${formatNumber(totalInvocations)}** 次 | 成功率 **${formatPercent(successRate)}** |\n`;
244
+ md += `| **Skill 触发总量** | **${formatNumber(totalInvocations)}** 次 | 成功率 **${formatPercent(successRate)}** (显式 ${explicitCount} / 隐式 ${implicitCount}) |\n`;
154
245
  md += `| **累计节省工时** | **+${formatWorkHours(totalSavedHours)}** | 替代开发者手动排查与撰写工时 |\n`;
155
246
  md += `| **累计精简流程** | **+${formatNumber(totalSavedSteps)} 步** | 消除的重复/排查交互步骤 |\n`;
156
247
  md += `| **累计节省 Token** | **+${formatNumber(totalSavedTokens)} Tokens** | 模型真金白银节约 **¥${totalCostSavedCny.toFixed(2)} ($${totalCostSavedUsd.toFixed(2)})** |\n\n`;
157
- md += `### 🏆 价值贡献最大 Skill Top 5 (节省步骤榜)\n\n`;
248
+ md += `### ⚙️ 工程质量与健康度\n\n`;
249
+ md += `- **意图触发方式**: 显式调用率 **${formatPercent(explicitRate)}** | 隐式自动匹配 **${formatPercent(1 - explicitRate)}**\n`;
250
+ md += `- **采纳纯度与返工**: 二次纠错返工率 **${formatPercent(correctionRate)}** (${totalCorrections} 次被要求修改)\n`;
251
+ if (totalContextTokens > 0) {
252
+ md += `- **上下文注入与产出**: 累计注入规则 **${formatNumber(totalContextTokens)} Tokens** | 产出 **${formatNumber(totalOutputTokens)} Tokens** (产出比 ${yieldRatio.toFixed(1)}%)\n`;
253
+ }
254
+ if (totalToolDepth > 0) {
255
+ md += `- **工具调用链**: 驱动子工具 **${totalToolDepth} 次** | 阻断失败 **${totalToolFailures} 次**\n`;
256
+ }
257
+ md += `\n### 🏆 价值贡献最大 Skill Top 5 (节省步骤榜)\n\n`;
158
258
  md += `${renderHorizontalBarChart(chartItems, 18)}\n\n`;
159
259
  md += `### 🤖 各 Agent 生态调用与收益贡献矩阵\n\n`;
160
260
  md += `| Agent 宿主 | 覆盖会话 | 触发次数 | 占比 | 贡献节约工时 | 贡献节约 Token |\n`;
@@ -171,12 +271,12 @@ export class DashboardService {
171
271
  md += `| \`${m.model_name}\` | ${m.hit_cnt} 次 | +${formatNumber(m.saved_tokens)} | +${formatWorkHours(m.saved_hours || 0)} | **¥${(m.cost_saved_cny || 0).toFixed(2)}** ($${(m.cost_saved_usd || 0).toFixed(2)}) |\n`;
172
272
  }
173
273
  }
174
- md += `\n### 📦 技能效益完整明细榜 (Top 10)\n\n`;
175
- md += `| 排名 | Skill 名称 | 领域分类 | 调用次数 | 节省工时 | 节省步骤 | 节省总 Token |\n`;
176
- md += `| :---: | :--- | :---: | :---: | :---: | :---: | :---: |\n`;
177
- skillRows.forEach((s, idx) => {
178
- md += `| #${idx + 1} | **${s.skill_name}** | \`${s.category}\` | ${s.hit_cnt} 次 | **+${formatWorkHours(s.saved_hours || 0)}** | **+${formatNumber(s.saved_steps)}** | **+${formatNumber(s.saved_tokens)}** |\n`;
179
- });
274
+ if (dormantSkills.length > 0) {
275
+ md += `\n### 💤 僵尸技能待治理清单 (>14天未调用)\n\n`;
276
+ for (const d of dormantSkills.slice(0, 5)) {
277
+ md += `- \`${d.skill_id}\` (${d.skill_name}): ${d.description || '无描述'}\n`;
278
+ }
279
+ }
180
280
  return {
181
281
  markdown: md,
182
282
  data: {
@@ -184,6 +284,11 @@ export class DashboardService {
184
284
  agentRows,
185
285
  modelRows,
186
286
  skillRows,
287
+ governance: {
288
+ healthLeaderboard,
289
+ dormantSkills,
290
+ followUpModifiers,
291
+ },
187
292
  },
188
293
  };
189
294
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.service.js","sourceRoot":"","sources":["../../src/services/dashboard.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard.service.js","sourceRoot":"","sources":["../../src/services/dashboard.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { DatabaseSync } from 'node:sqlite';
2
+ export interface FilterOption {
3
+ value: string;
4
+ label: string;
5
+ count: number;
6
+ }
7
+ export interface FilterOptions {
8
+ agents: FilterOption[];
9
+ skills: FilterOption[];
10
+ models: FilterOption[];
11
+ statuses: FilterOption[];
12
+ }
13
+ /**
14
+ * Supplies the option lists for the dashboard query filters.
15
+ * Every list is produced by a single grouped query so the UI never fans out per row.
16
+ */
17
+ export declare class FilterService {
18
+ private db;
19
+ constructor(db: DatabaseSync);
20
+ list(): FilterOptions;
21
+ private listAgents;
22
+ private listSkills;
23
+ private listModels;
24
+ private listStatuses;
25
+ }
26
+ //# sourceMappingURL=filter.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.service.d.ts","sourceRoot":"","sources":["../../src/services/filter.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AASD;;;GAGG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY;IAEpC,IAAI,IAAI,aAAa;IASrB,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,UAAU;IAqBlB,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,YAAY;CA4BrB"}
@@ -0,0 +1,103 @@
1
+ import { INVOCATION_STATUSES } from '../db/invocation-filter.js';
2
+ const STATUS_LABELS = {
3
+ success: '成功',
4
+ partial: '部分成功',
5
+ failed: '失败',
6
+ skipped: '已跳过',
7
+ };
8
+ /**
9
+ * Supplies the option lists for the dashboard query filters.
10
+ * Every list is produced by a single grouped query so the UI never fans out per row.
11
+ */
12
+ export class FilterService {
13
+ db;
14
+ constructor(db) {
15
+ this.db = db;
16
+ }
17
+ list() {
18
+ return {
19
+ agents: this.listAgents(),
20
+ skills: this.listSkills(),
21
+ models: this.listModels(),
22
+ statuses: this.listStatuses(),
23
+ };
24
+ }
25
+ listAgents() {
26
+ const rows = this.db
27
+ .prepare(`
28
+ SELECT agent_name AS value, COUNT(*) AS count
29
+ FROM invocations
30
+ WHERE agent_name IS NOT NULL AND TRIM(agent_name) <> ''
31
+ GROUP BY agent_name
32
+ ORDER BY count DESC, agent_name ASC
33
+ `)
34
+ .all();
35
+ return rows.map((row) => ({
36
+ value: row.value,
37
+ label: row.value,
38
+ count: row.count,
39
+ }));
40
+ }
41
+ listSkills() {
42
+ const rows = this.db
43
+ .prepare(`
44
+ SELECT
45
+ i.skill_id AS value,
46
+ COALESCE(s.skill_name, i.skill_id) AS label,
47
+ COUNT(*) AS count
48
+ FROM invocations i
49
+ LEFT JOIN skills_manifest s ON s.skill_id = i.skill_id
50
+ GROUP BY i.skill_id
51
+ ORDER BY count DESC, label ASC
52
+ `)
53
+ .all();
54
+ return rows.map((row) => ({
55
+ value: row.value,
56
+ label: row.label,
57
+ count: row.count,
58
+ }));
59
+ }
60
+ listModels() {
61
+ const rows = this.db
62
+ .prepare(`
63
+ SELECT model_name AS value, COUNT(*) AS count
64
+ FROM invocations
65
+ WHERE model_name IS NOT NULL AND TRIM(model_name) <> ''
66
+ GROUP BY model_name
67
+ ORDER BY count DESC, model_name ASC
68
+ `)
69
+ .all();
70
+ return rows.map((row) => ({
71
+ value: row.value,
72
+ label: row.value === 'unknown' ? '未标注模型' : row.value,
73
+ count: row.count,
74
+ }));
75
+ }
76
+ listStatuses() {
77
+ const rows = this.db
78
+ .prepare(`
79
+ SELECT status AS value, COUNT(*) AS count
80
+ FROM invocations
81
+ GROUP BY status
82
+ `)
83
+ .all();
84
+ const counts = new Map();
85
+ for (const row of rows) {
86
+ counts.set(row.value, row.count);
87
+ }
88
+ const options = [];
89
+ for (const status of INVOCATION_STATUSES) {
90
+ const count = counts.get(status);
91
+ if (!count) {
92
+ continue;
93
+ }
94
+ options.push({
95
+ value: status,
96
+ label: STATUS_LABELS[status],
97
+ count,
98
+ });
99
+ }
100
+ return options;
101
+ }
102
+ }
103
+ //# sourceMappingURL=filter.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.service.js","sourceRoot":"","sources":["../../src/services/filter.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAgBjE,MAAM,aAAa,GAAqC;IACtD,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,KAAK;CACf,CAAC;AAEF;;;GAGG;AACH,MAAM,OAAO,aAAa;IACJ;IAApB,YAAoB,EAAgB;QAAhB,OAAE,GAAF,EAAE,CAAc;IAAG,CAAC;IAExC,IAAI;QACF,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE;YACzB,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE;YACzB,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE;YACzB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE;SAC9B,CAAC;IACJ,CAAC;IAEO,UAAU;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CAAC;;;;;;OAMR,CAAC;aACD,GAAG,EAA6C,CAAC;QAEpD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,KAAK,EAAE,GAAG,CAAC,KAAK;SACjB,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,UAAU;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CAAC;;;;;;;;;OASR,CAAC;aACD,GAAG,EAA4D,CAAC;QAEnE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,KAAK,EAAE,GAAG,CAAC,KAAK;SACjB,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,UAAU;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CAAC;;;;;;OAMR,CAAC;aACD,GAAG,EAA6C,CAAC;QAEpD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,KAAK,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK;YACpD,KAAK,EAAE,GAAG,CAAC,KAAK;SACjB,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,YAAY;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CAAC;;;;OAIR,CAAC;aACD,GAAG,EAA6C,CAAC;QAEpD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,KAAK,MAAM,MAAM,IAAI,mBAAmB,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,SAAS;YACX,CAAC;YACD,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC;gBAC5B,KAAK;aACN,CAAC,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -1,6 +1,6 @@
1
1
  import { DatabaseSync } from 'node:sqlite';
2
2
  import { RecordSkillHitInput } from '../types/tools.js';
3
- import { SessionRow } from '../types/models.js';
3
+ import { SessionRow, TriggerMode } from '../types/models.js';
4
4
  export interface RecordHitResult {
5
5
  invocation_id: number;
6
6
  session_id: string;
@@ -8,18 +8,26 @@ export interface RecordHitResult {
8
8
  model_name: string;
9
9
  skill_id: string;
10
10
  skill_name: string;
11
+ skill_version: string;
11
12
  round_index: number;
13
+ trigger_mode: TriggerMode;
12
14
  status: string;
13
15
  actual_steps: number;
14
16
  saved_steps: number;
15
17
  actual_tokens: number;
18
+ context_tokens: number;
19
+ output_tokens: number;
16
20
  saved_tokens: number;
17
21
  net_tokens: number;
18
22
  quality_profile: string;
19
23
  has_correction: boolean;
24
+ follow_up_modifier: string | null;
20
25
  saved_hours: number;
21
26
  cost_saved_usd: number;
22
27
  cost_saved_cny: number;
28
+ tool_chain_depth: number;
29
+ tool_failures: number;
30
+ health_score: number;
23
31
  session: SessionRow;
24
32
  }
25
33
  export declare class TelemetryService {
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.service.d.ts","sourceRoot":"","sources":["../../src/services/telemetry.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAoB,MAAM,oBAAoB,CAAC;AAMlE,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,qBAAa,gBAAgB;IAGf,OAAO,CAAC,EAAE;IAFtB,OAAO,CAAC,gBAAgB,CAAmB;gBAEvB,EAAE,EAAE,YAAY;IAIpC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,SAAY,EAAE,UAAU,SAAI,GAAG,UAAU;IAuCnF,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,eAAe;IAmJtD,oBAAoB,IAAI,UAAU,GAAG,SAAS;CAK/C"}
1
+ {"version":3,"file":"telemetry.service.d.ts","sourceRoot":"","sources":["../../src/services/telemetry.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAoB,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAO/E,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,WAAW,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,qBAAa,gBAAgB;IAGf,OAAO,CAAC,EAAE;IAFtB,OAAO,CAAC,gBAAgB,CAAmB;gBAEvB,EAAE,EAAE,YAAY;IAIpC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,SAAY,EAAE,UAAU,SAAI,GAAG,UAAU;IAuCnF,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,eAAe;IAiOtD,oBAAoB,IAAI,UAAU,GAAG,SAAS;CAK/C"}