oh-my-knowledge 0.28.0 → 0.30.0

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 (281) hide show
  1. package/README.md +49 -3
  2. package/README.zh.md +49 -3
  3. package/dist/src/analysis/failure-clusterer.js +1 -1
  4. package/dist/src/analysis/failure-clusterer.js.map +1 -1
  5. package/dist/src/analysis/gap-analyzer.d.ts +8 -1
  6. package/dist/src/analysis/gap-analyzer.d.ts.map +1 -1
  7. package/dist/src/analysis/gap-analyzer.js +65 -33
  8. package/dist/src/analysis/gap-analyzer.js.map +1 -1
  9. package/dist/src/analysis/report-diagnostics.js +2 -0
  10. package/dist/src/analysis/report-diagnostics.js.map +1 -1
  11. package/dist/src/analysis/sample-diagnostics.js +14 -14
  12. package/dist/src/analysis/sample-diagnostics.js.map +1 -1
  13. package/dist/src/authoring/evolver.d.ts +7 -1
  14. package/dist/src/authoring/evolver.d.ts.map +1 -1
  15. package/dist/src/authoring/evolver.js +8 -5
  16. package/dist/src/authoring/evolver.js.map +1 -1
  17. package/dist/src/authoring/generator.d.ts +21 -23
  18. package/dist/src/authoring/generator.d.ts.map +1 -1
  19. package/dist/src/authoring/generator.js +621 -40
  20. package/dist/src/authoring/generator.js.map +1 -1
  21. package/dist/src/authoring/sample-fixer.d.ts +45 -0
  22. package/dist/src/authoring/sample-fixer.d.ts.map +1 -0
  23. package/dist/src/authoring/sample-fixer.js +186 -0
  24. package/dist/src/authoring/sample-fixer.js.map +1 -0
  25. package/dist/src/cli/commands/evolve.d.ts.map +1 -1
  26. package/dist/src/cli/commands/evolve.js +17 -0
  27. package/dist/src/cli/commands/evolve.js.map +1 -1
  28. package/dist/src/cli/commands/observe.d.ts.map +1 -1
  29. package/dist/src/cli/commands/observe.js +170 -0
  30. package/dist/src/cli/commands/observe.js.map +1 -1
  31. package/dist/src/cli/commands/registry.d.ts.map +1 -1
  32. package/dist/src/cli/commands/registry.js +9 -1
  33. package/dist/src/cli/commands/registry.js.map +1 -1
  34. package/dist/src/cli/commands/sample.d.ts +13 -0
  35. package/dist/src/cli/commands/sample.d.ts.map +1 -1
  36. package/dist/src/cli/commands/sample.js +307 -13
  37. package/dist/src/cli/commands/sample.js.map +1 -1
  38. package/dist/src/cli/commands/studio.d.ts.map +1 -1
  39. package/dist/src/cli/commands/studio.js +8 -0
  40. package/dist/src/cli/commands/studio.js.map +1 -1
  41. package/dist/src/cli/i18n-dict.d.ts +1 -1
  42. package/dist/src/cli/i18n-dict.d.ts.map +1 -1
  43. package/dist/src/cli/i18n-dict.js +189 -17
  44. package/dist/src/cli/i18n-dict.js.map +1 -1
  45. package/dist/src/cli/parse-run-config.d.ts +14 -2
  46. package/dist/src/cli/parse-run-config.d.ts.map +1 -1
  47. package/dist/src/cli/parse-run-config.js +62 -10
  48. package/dist/src/cli/parse-run-config.js.map +1 -1
  49. package/dist/src/doctor/health/builtin-dimensions.d.ts.map +1 -1
  50. package/dist/src/doctor/health/builtin-dimensions.js +20 -23
  51. package/dist/src/doctor/health/builtin-dimensions.js.map +1 -1
  52. package/dist/src/doctor/health/composer.d.ts.map +1 -1
  53. package/dist/src/doctor/health/composer.js +7 -3
  54. package/dist/src/doctor/health/composer.js.map +1 -1
  55. package/dist/src/doctor/health/dimension-spec.d.ts +1 -0
  56. package/dist/src/doctor/health/dimension-spec.d.ts.map +1 -1
  57. package/dist/src/doctor/health/parser.d.ts.map +1 -1
  58. package/dist/src/doctor/health/parser.js +1 -0
  59. package/dist/src/doctor/health/parser.js.map +1 -1
  60. package/dist/src/doctor/health/prompt-builder.js +25 -17
  61. package/dist/src/doctor/health/prompt-builder.js.map +1 -1
  62. package/dist/src/doctor/html-renderer.d.ts.map +1 -1
  63. package/dist/src/doctor/html-renderer.js +76 -66
  64. package/dist/src/doctor/html-renderer.js.map +1 -1
  65. package/dist/src/doctor/rules.d.ts.map +1 -1
  66. package/dist/src/doctor/rules.js +32 -0
  67. package/dist/src/doctor/rules.js.map +1 -1
  68. package/dist/src/eval-core/cache.d.ts +16 -2
  69. package/dist/src/eval-core/cache.d.ts.map +1 -1
  70. package/dist/src/eval-core/cache.js +86 -15
  71. package/dist/src/eval-core/cache.js.map +1 -1
  72. package/dist/src/eval-core/evaluation-execution.d.ts +11 -1
  73. package/dist/src/eval-core/evaluation-execution.d.ts.map +1 -1
  74. package/dist/src/eval-core/evaluation-execution.js +78 -6
  75. package/dist/src/eval-core/evaluation-execution.js.map +1 -1
  76. package/dist/src/eval-core/evaluation-job.d.ts +2 -1
  77. package/dist/src/eval-core/evaluation-job.d.ts.map +1 -1
  78. package/dist/src/eval-core/evaluation-job.js +2 -1
  79. package/dist/src/eval-core/evaluation-job.js.map +1 -1
  80. package/dist/src/eval-core/evaluation-reporting.d.ts +7 -0
  81. package/dist/src/eval-core/evaluation-reporting.d.ts.map +1 -1
  82. package/dist/src/eval-core/evaluation-reporting.js +19 -2
  83. package/dist/src/eval-core/evaluation-reporting.js.map +1 -1
  84. package/dist/src/eval-core/execution-strategy.d.ts +1 -1
  85. package/dist/src/eval-core/execution-strategy.d.ts.map +1 -1
  86. package/dist/src/eval-core/execution-strategy.js +12 -1
  87. package/dist/src/eval-core/execution-strategy.js.map +1 -1
  88. package/dist/src/eval-core/mock-hook.cjs +203 -0
  89. package/dist/src/eval-core/mocks-runtime.d.ts +96 -0
  90. package/dist/src/eval-core/mocks-runtime.d.ts.map +1 -0
  91. package/dist/src/eval-core/mocks-runtime.js +323 -0
  92. package/dist/src/eval-core/mocks-runtime.js.map +1 -0
  93. package/dist/src/eval-core/schema.d.ts.map +1 -1
  94. package/dist/src/eval-core/schema.js +18 -5
  95. package/dist/src/eval-core/schema.js.map +1 -1
  96. package/dist/src/eval-core/task-planner.d.ts +9 -1
  97. package/dist/src/eval-core/task-planner.d.ts.map +1 -1
  98. package/dist/src/eval-core/task-planner.js +40 -1
  99. package/dist/src/eval-core/task-planner.js.map +1 -1
  100. package/dist/src/eval-workflows/batch-evaluation-workflow.d.ts +5 -1
  101. package/dist/src/eval-workflows/batch-evaluation-workflow.d.ts.map +1 -1
  102. package/dist/src/eval-workflows/batch-evaluation-workflow.js +2 -1
  103. package/dist/src/eval-workflows/batch-evaluation-workflow.js.map +1 -1
  104. package/dist/src/eval-workflows/evaluation-pipeline.d.ts +22 -1
  105. package/dist/src/eval-workflows/evaluation-pipeline.d.ts.map +1 -1
  106. package/dist/src/eval-workflows/evaluation-pipeline.js +39 -12
  107. package/dist/src/eval-workflows/evaluation-pipeline.js.map +1 -1
  108. package/dist/src/eval-workflows/evaluation-preparation.d.ts +5 -0
  109. package/dist/src/eval-workflows/evaluation-preparation.d.ts.map +1 -1
  110. package/dist/src/eval-workflows/evaluation-preparation.js +3 -1
  111. package/dist/src/eval-workflows/evaluation-preparation.js.map +1 -1
  112. package/dist/src/eval-workflows/run-evaluation.d.ts +12 -2
  113. package/dist/src/eval-workflows/run-evaluation.d.ts.map +1 -1
  114. package/dist/src/eval-workflows/run-evaluation.js +17 -5
  115. package/dist/src/eval-workflows/run-evaluation.js.map +1 -1
  116. package/dist/src/executors/claude-cli.d.ts +1 -1
  117. package/dist/src/executors/claude-cli.d.ts.map +1 -1
  118. package/dist/src/executors/claude-cli.js +57 -6
  119. package/dist/src/executors/claude-cli.js.map +1 -1
  120. package/dist/src/executors/claude-sdk-trace.d.ts.map +1 -1
  121. package/dist/src/executors/claude-sdk-trace.js +10 -4
  122. package/dist/src/executors/claude-sdk-trace.js.map +1 -1
  123. package/dist/src/executors/claude-sdk.d.ts +1 -1
  124. package/dist/src/executors/claude-sdk.d.ts.map +1 -1
  125. package/dist/src/executors/claude-sdk.js +25 -2
  126. package/dist/src/executors/claude-sdk.js.map +1 -1
  127. package/dist/src/executors/shared.d.ts +1 -1
  128. package/dist/src/executors/shared.d.ts.map +1 -1
  129. package/dist/src/executors/shared.js +6 -1
  130. package/dist/src/executors/shared.js.map +1 -1
  131. package/dist/src/grading/assertions.d.ts +5 -0
  132. package/dist/src/grading/assertions.d.ts.map +1 -1
  133. package/dist/src/grading/assertions.js +27 -1
  134. package/dist/src/grading/assertions.js.map +1 -1
  135. package/dist/src/grading/debias-validate.js +4 -4
  136. package/dist/src/grading/debias-validate.js.map +1 -1
  137. package/dist/src/grading/diagnostic.d.ts +40 -0
  138. package/dist/src/grading/diagnostic.d.ts.map +1 -0
  139. package/dist/src/grading/diagnostic.js +450 -0
  140. package/dist/src/grading/diagnostic.js.map +1 -0
  141. package/dist/src/grading/gold-cli.js +2 -2
  142. package/dist/src/grading/gold-cli.js.map +1 -1
  143. package/dist/src/grading/index.d.ts +5 -0
  144. package/dist/src/grading/index.d.ts.map +1 -1
  145. package/dist/src/grading/judge.d.ts.map +1 -1
  146. package/dist/src/grading/judge.js +54 -2
  147. package/dist/src/grading/judge.js.map +1 -1
  148. package/dist/src/grading/layered-scores.d.ts.map +1 -1
  149. package/dist/src/grading/layered-scores.js +1 -0
  150. package/dist/src/grading/layered-scores.js.map +1 -1
  151. package/dist/src/inputs/eval-config.js +19 -0
  152. package/dist/src/inputs/eval-config.js.map +1 -1
  153. package/dist/src/inputs/load-samples.d.ts +22 -2
  154. package/dist/src/inputs/load-samples.d.ts.map +1 -1
  155. package/dist/src/inputs/load-samples.js +193 -22
  156. package/dist/src/inputs/load-samples.js.map +1 -1
  157. package/dist/src/inputs/skill-loader.d.ts.map +1 -1
  158. package/dist/src/inputs/skill-loader.js +11 -3
  159. package/dist/src/inputs/skill-loader.js.map +1 -1
  160. package/dist/src/observability/experience.d.ts +260 -0
  161. package/dist/src/observability/experience.d.ts.map +1 -0
  162. package/dist/src/observability/experience.js +1233 -0
  163. package/dist/src/observability/experience.js.map +1 -0
  164. package/dist/src/observability/inbox-view-model.d.ts +27 -0
  165. package/dist/src/observability/inbox-view-model.d.ts.map +1 -0
  166. package/dist/src/observability/inbox-view-model.js +135 -0
  167. package/dist/src/observability/inbox-view-model.js.map +1 -0
  168. package/dist/src/observability/inbox.d.ts +125 -0
  169. package/dist/src/observability/inbox.d.ts.map +1 -0
  170. package/dist/src/observability/inbox.js +741 -0
  171. package/dist/src/observability/inbox.js.map +1 -0
  172. package/dist/src/observability/problem-patterns.d.ts +51 -0
  173. package/dist/src/observability/problem-patterns.d.ts.map +1 -0
  174. package/dist/src/observability/problem-patterns.js +205 -0
  175. package/dist/src/observability/problem-patterns.js.map +1 -0
  176. package/dist/src/observability/review-state.d.ts +54 -0
  177. package/dist/src/observability/review-state.d.ts.map +1 -0
  178. package/dist/src/observability/review-state.js +131 -0
  179. package/dist/src/observability/review-state.js.map +1 -0
  180. package/dist/src/observability/skill-chain-advisories.d.ts +25 -0
  181. package/dist/src/observability/skill-chain-advisories.d.ts.map +1 -0
  182. package/dist/src/observability/skill-chain-advisories.js +69 -0
  183. package/dist/src/observability/skill-chain-advisories.js.map +1 -0
  184. package/dist/src/observability/skill-chain.d.ts +61 -0
  185. package/dist/src/observability/skill-chain.d.ts.map +1 -0
  186. package/dist/src/observability/skill-chain.js +233 -0
  187. package/dist/src/observability/skill-chain.js.map +1 -0
  188. package/dist/src/observability/text-signals.d.ts +7 -0
  189. package/dist/src/observability/text-signals.d.ts.map +1 -0
  190. package/dist/src/observability/text-signals.js +22 -0
  191. package/dist/src/observability/text-signals.js.map +1 -0
  192. package/dist/src/observability/trace-adapter.d.ts +12 -64
  193. package/dist/src/observability/trace-adapter.d.ts.map +1 -1
  194. package/dist/src/observability/trace-adapter.js +9 -355
  195. package/dist/src/observability/trace-adapter.js.map +1 -1
  196. package/dist/src/observability/trace-attribution.d.ts +56 -0
  197. package/dist/src/observability/trace-attribution.d.ts.map +1 -0
  198. package/dist/src/observability/trace-attribution.js +200 -0
  199. package/dist/src/observability/trace-attribution.js.map +1 -0
  200. package/dist/src/observability/trace-segmenter.d.ts +52 -0
  201. package/dist/src/observability/trace-segmenter.d.ts.map +1 -0
  202. package/dist/src/observability/trace-segmenter.js +320 -0
  203. package/dist/src/observability/trace-segmenter.js.map +1 -0
  204. package/dist/src/observability/trace-source.d.ts +99 -0
  205. package/dist/src/observability/trace-source.d.ts.map +1 -0
  206. package/dist/src/observability/trace-source.js +492 -0
  207. package/dist/src/observability/trace-source.js.map +1 -0
  208. package/dist/src/renderer/html-renderer.d.ts.map +1 -1
  209. package/dist/src/renderer/html-renderer.js +324 -218
  210. package/dist/src/renderer/html-renderer.js.map +1 -1
  211. package/dist/src/renderer/layout.d.ts.map +1 -1
  212. package/dist/src/renderer/layout.js +155 -71
  213. package/dist/src/renderer/layout.js.map +1 -1
  214. package/dist/src/renderer/observation-inbox-renderer.d.ts +4 -0
  215. package/dist/src/renderer/observation-inbox-renderer.d.ts.map +1 -0
  216. package/dist/src/renderer/observation-inbox-renderer.js +5376 -0
  217. package/dist/src/renderer/observation-inbox-renderer.js.map +1 -0
  218. package/dist/src/renderer/skill-detail-renderer.d.ts +15 -0
  219. package/dist/src/renderer/skill-detail-renderer.d.ts.map +1 -0
  220. package/dist/src/renderer/skill-detail-renderer.js +1234 -0
  221. package/dist/src/renderer/skill-detail-renderer.js.map +1 -0
  222. package/dist/src/renderer/skill-list-renderer.d.ts +4 -0
  223. package/dist/src/renderer/skill-list-renderer.d.ts.map +1 -0
  224. package/dist/src/renderer/skill-list-renderer.js +327 -0
  225. package/dist/src/renderer/skill-list-renderer.js.map +1 -0
  226. package/dist/src/renderer/summary.d.ts +17 -0
  227. package/dist/src/renderer/summary.d.ts.map +1 -1
  228. package/dist/src/renderer/summary.js +346 -74
  229. package/dist/src/renderer/summary.js.map +1 -1
  230. package/dist/src/renderer/table.d.ts.map +1 -1
  231. package/dist/src/renderer/table.js +213 -167
  232. package/dist/src/renderer/table.js.map +1 -1
  233. package/dist/src/renderer/test-view.d.ts +66 -0
  234. package/dist/src/renderer/test-view.d.ts.map +1 -0
  235. package/dist/src/renderer/test-view.js +905 -0
  236. package/dist/src/renderer/test-view.js.map +1 -0
  237. package/dist/src/renderer/trends.d.ts.map +1 -1
  238. package/dist/src/renderer/trends.js +3 -1
  239. package/dist/src/renderer/trends.js.map +1 -1
  240. package/dist/src/server/report-server.d.ts +6 -1
  241. package/dist/src/server/report-server.d.ts.map +1 -1
  242. package/dist/src/server/report-server.js +182 -6
  243. package/dist/src/server/report-server.js.map +1 -1
  244. package/dist/src/server/report-store.d.ts.map +1 -1
  245. package/dist/src/server/report-store.js +33 -1
  246. package/dist/src/server/report-store.js.map +1 -1
  247. package/dist/src/server/skill-index.d.ts +77 -0
  248. package/dist/src/server/skill-index.d.ts.map +1 -0
  249. package/dist/src/server/skill-index.js +331 -0
  250. package/dist/src/server/skill-index.js.map +1 -0
  251. package/dist/src/server/skill-insights.d.ts +92 -0
  252. package/dist/src/server/skill-insights.d.ts.map +1 -0
  253. package/dist/src/server/skill-insights.js +676 -0
  254. package/dist/src/server/skill-insights.js.map +1 -0
  255. package/dist/src/shared/hard-rules.d.ts +40 -0
  256. package/dist/src/shared/hard-rules.d.ts.map +1 -0
  257. package/dist/src/shared/hard-rules.js +200 -0
  258. package/dist/src/shared/hard-rules.js.map +1 -0
  259. package/dist/src/shared/time.d.ts +2 -0
  260. package/dist/src/shared/time.d.ts.map +1 -0
  261. package/dist/src/shared/time.js +10 -0
  262. package/dist/src/shared/time.js.map +1 -0
  263. package/dist/src/shared/tool-search.d.ts +9 -0
  264. package/dist/src/shared/tool-search.d.ts.map +1 -0
  265. package/dist/src/shared/tool-search.js +104 -0
  266. package/dist/src/shared/tool-search.js.map +1 -0
  267. package/dist/src/types/eval.d.ts +83 -0
  268. package/dist/src/types/eval.d.ts.map +1 -1
  269. package/dist/src/types/executor.d.ts +47 -0
  270. package/dist/src/types/executor.d.ts.map +1 -1
  271. package/dist/src/types/judge.d.ts +76 -0
  272. package/dist/src/types/judge.d.ts.map +1 -1
  273. package/dist/src/types/judge.js +3 -1
  274. package/dist/src/types/judge.js.map +1 -1
  275. package/dist/src/types/report.d.ts +63 -3
  276. package/dist/src/types/report.d.ts.map +1 -1
  277. package/dist/src/util/safe-slice.d.ts +23 -0
  278. package/dist/src/util/safe-slice.d.ts.map +1 -0
  279. package/dist/src/util/safe-slice.js +33 -0
  280. package/dist/src/util/safe-slice.js.map +1 -0
  281. package/package.json +5 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../../src/observability/inbox.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { type ObservationReviewState } from './review-state.js';
2
+ export type ExperienceProblemBucket = 'output_format' | 'content_accuracy' | 'missing_context' | 'rule_violation' | 'workflow_mismatch' | 'tool_runtime' | 'goal_shift' | 'unclear';
3
+ export type ExperienceProblemSignal = 'user_correction' | 'negative_feedback' | 'user_interruption' | 'hard_rule' | 'user_goal_shift' | 'tool_failure';
4
+ export interface ExperienceProblemEvidenceRef {
5
+ id: string;
6
+ kind: string;
7
+ sourceTrace: string;
8
+ sessionId: string;
9
+ messageIndex?: number;
10
+ messageUuid?: string;
11
+ toolUseId?: string;
12
+ timestamp?: string;
13
+ role?: 'user' | 'assistant' | 'tool' | 'other';
14
+ label?: string;
15
+ snippet?: string;
16
+ }
17
+ export interface ExperienceProblemPattern {
18
+ id: string;
19
+ bucket: ExperienceProblemBucket;
20
+ patternKey: string;
21
+ count: number;
22
+ sessionCount: number;
23
+ recentSessionIds: string[];
24
+ signalTypes: ExperienceProblemSignal[];
25
+ evidenceRefs: ExperienceProblemEvidenceRef[];
26
+ lastSeen?: string;
27
+ }
28
+ export interface ProblemTimelineEvent {
29
+ id: string;
30
+ kind: string;
31
+ sourceTrace: string;
32
+ sessionId: string;
33
+ messageIndex?: number;
34
+ messageUuid?: string;
35
+ toolUseId?: string;
36
+ timestamp?: string;
37
+ role?: 'user' | 'assistant' | 'tool' | 'other';
38
+ label?: string;
39
+ snippet?: string;
40
+ fullText?: string;
41
+ toolName?: string;
42
+ isError?: boolean;
43
+ }
44
+ export declare function buildExperienceProblemPatterns(input: {
45
+ skillName: string;
46
+ sessionId: string;
47
+ timeline: ProblemTimelineEvent[];
48
+ reviewState?: ObservationReviewState;
49
+ }): ExperienceProblemPattern[];
50
+ export declare function mergeExperienceProblemPatterns(patterns: ExperienceProblemPattern[]): ExperienceProblemPattern[];
51
+ //# sourceMappingURL=problem-patterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"problem-patterns.d.ts","sourceRoot":"","sources":["../../../src/observability/problem-patterns.ts"],"names":[],"mappings":"AACA,OAAO,EAAiE,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAG/H,MAAM,MAAM,uBAAuB,GAC/B,eAAe,GACf,kBAAkB,GAClB,iBAAiB,GACjB,gBAAgB,GAChB,mBAAmB,GACnB,cAAc,GACd,YAAY,GACZ,SAAS,CAAC;AAEd,MAAM,MAAM,uBAAuB,GAC/B,iBAAiB,GACjB,mBAAmB,GACnB,mBAAmB,GACnB,WAAW,GACX,iBAAiB,GACjB,cAAc,CAAC;AAEnB,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,uBAAuB,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,EAAE,uBAAuB,EAAE,CAAC;IACvC,YAAY,EAAE,4BAA4B,EAAE,CAAC;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA2BD,wBAAgB,8BAA8B,CAAC,KAAK,EAAE;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,sBAAsB,CAAC;CACtC,GAAG,wBAAwB,EAAE,CA0B7B;AAED,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,wBAAwB,EAAE,GAAG,wBAAwB,EAAE,CA8B/G"}
@@ -0,0 +1,205 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { observationMetricAnnotationVerdict } from './review-state.js';
3
+ import { hasUserHardRuleText, isScheduledTaskPromptText } from './text-signals.js';
4
+ const CORRECTION_RE = /不是这个|不要这样|理解错|看错|你应该|应该是|直接用|直接按|改成|重来|不对|不是|错了/i;
5
+ const NEGATIVE_RE = /没有用|没用|不行|太慢|看不懂|不需要|别再|怎么又|有问题|不符合|做错|完全错|垃圾|乱来|瞎搞|白干|浪费时间|没价值|没有价值|没意义|不好用|用不了|没帮助|没有帮助|菜/i;
6
+ const INTERRUPTION_RE = /\[Request interrupted by user(?: for tool use)?\]|interrupted by user|用户中断/i;
7
+ const GOAL_SHIFT_RE = /换个方向|重新来|重来|先不|不用这个|先不用|暂时不用|不看这个|换一个|换下一个|另一个问题|另外一个问题|先看别的|先处理别的/i;
8
+ const KEYWORD_GROUPS = [
9
+ { token: 'prd', re: /PRD|prd|需求文档|产品文档/i },
10
+ { token: 'demo', re: /demo|Demo|原型|页面|交互/i },
11
+ { token: 'format', re: /格式|模板|字段|结构|排版|表格|markdown|md|样式|对齐|标题|层级/i },
12
+ { token: 'figma', re: /figma|motiff|设计稿|节点|截图|还原/i },
13
+ { token: 'context', re: /没看|没读|重新读|重读|先看|看一下|参考|上下文|领域|知识|文档|资料|说明|背景/i },
14
+ { token: 'schema', re: /schema|接口|字段|配置|路径|目录|文件|定义|类型|模型/i },
15
+ { token: 'workflow', re: /流程|分支|链路|步骤|顺序|先.+再|不要先|直接走|route|workflow|模式/i },
16
+ { token: 'rule', re: /必须|不要|禁止|严格|一定要|务必|不得|不能|只允许/i },
17
+ { token: 'wrong', re: /不对|不是|错了|错误|理解错|看错|不符合|不一致|漏|缺|少了|多了/i },
18
+ { token: 'tool_limit', re: /exceeds maximum allowed tokens|too many tokens|timeout|timed out|EACCES|ENOENT|permission denied|No such file|not found|失败|error/i },
19
+ ];
20
+ export function buildExperienceProblemPatterns(input) {
21
+ const drafts = [];
22
+ for (const event of input.timeline) {
23
+ const text = event.snippet ?? event.fullText ?? '';
24
+ if (event.kind === 'user_message') {
25
+ if (isScheduledTaskPromptText(text))
26
+ continue;
27
+ if (metricActive(event, 'user_correction', CORRECTION_RE.test(text), input.reviewState)) {
28
+ drafts.push(patternDraft(input.skillName, 'user_correction', event));
29
+ }
30
+ if (metricActive(event, 'negative_feedback', NEGATIVE_RE.test(text), input.reviewState)) {
31
+ drafts.push(patternDraft(input.skillName, 'negative_feedback', event));
32
+ }
33
+ if (metricActive(event, 'user_interruption', INTERRUPTION_RE.test(text), input.reviewState)) {
34
+ drafts.push(patternDraft(input.skillName, 'user_interruption', event));
35
+ }
36
+ if (metricActive(event, 'hard_rule', hasUserHardRuleText(text), input.reviewState)) {
37
+ drafts.push(patternDraft(input.skillName, 'hard_rule', event));
38
+ }
39
+ if (metricActive(event, 'user_goal_shift', GOAL_SHIFT_RE.test(text), input.reviewState)) {
40
+ drafts.push(patternDraft(input.skillName, 'user_goal_shift', event));
41
+ }
42
+ }
43
+ else if (event.kind === 'tool_result' && event.isError === true) {
44
+ drafts.push(patternDraft(input.skillName, 'tool_failure', event));
45
+ }
46
+ }
47
+ return mergeExperienceProblemPatterns(drafts.map((draft) => patternFromDraft(input.skillName, input.sessionId, draft)));
48
+ }
49
+ export function mergeExperienceProblemPatterns(patterns) {
50
+ const byKey = new Map();
51
+ for (const pattern of patterns) {
52
+ const key = `${pattern.bucket}\u0000${pattern.patternKey}`;
53
+ const existing = byKey.get(key);
54
+ if (!existing) {
55
+ byKey.set(key, {
56
+ ...pattern,
57
+ recentSessionIds: unique(pattern.recentSessionIds).slice(0, 5),
58
+ signalTypes: unique(pattern.signalTypes),
59
+ evidenceRefs: uniqueEvidenceRefs(pattern.evidenceRefs).slice(0, 5),
60
+ sessionCount: unique(pattern.recentSessionIds).length,
61
+ count: uniqueEvidenceRefs(pattern.evidenceRefs).length || pattern.count,
62
+ });
63
+ continue;
64
+ }
65
+ const evidenceRefs = uniqueEvidenceRefs([...existing.evidenceRefs, ...pattern.evidenceRefs]);
66
+ const sessions = unique([...existing.recentSessionIds, ...pattern.recentSessionIds]);
67
+ existing.count = evidenceRefs.length;
68
+ existing.sessionCount = sessions.length;
69
+ existing.recentSessionIds = sessions.slice(0, 5);
70
+ existing.signalTypes = unique([...existing.signalTypes, ...pattern.signalTypes]);
71
+ existing.evidenceRefs = evidenceRefs.slice(0, 5);
72
+ existing.lastSeen = maxTimestamp(existing.lastSeen, pattern.lastSeen);
73
+ }
74
+ return Array.from(byKey.values()).sort((a, b) => {
75
+ if (b.count !== a.count)
76
+ return b.count - a.count;
77
+ if (b.sessionCount !== a.sessionCount)
78
+ return b.sessionCount - a.sessionCount;
79
+ return (b.lastSeen ?? '').localeCompare(a.lastSeen ?? '');
80
+ });
81
+ }
82
+ function patternDraft(skillName, signalType, event) {
83
+ const text = event.snippet ?? event.fullText ?? '';
84
+ const bucket = bucketFor(signalType, text);
85
+ return {
86
+ bucket,
87
+ patternKey: patternKeyFor(skillName, bucket, signalType, text, event),
88
+ signalType,
89
+ event,
90
+ };
91
+ }
92
+ function patternFromDraft(skillName, sessionId, draft) {
93
+ const evidenceRef = evidenceRefFromEvent(draft.event);
94
+ return {
95
+ id: hashParts('problem-pattern', skillName, draft.bucket, draft.patternKey),
96
+ bucket: draft.bucket,
97
+ patternKey: draft.patternKey,
98
+ count: 1,
99
+ sessionCount: 1,
100
+ recentSessionIds: [sessionId],
101
+ signalTypes: [draft.signalType],
102
+ evidenceRefs: [evidenceRef],
103
+ lastSeen: draft.event.timestamp,
104
+ };
105
+ }
106
+ function bucketFor(signalType, text) {
107
+ if (signalType === 'tool_failure')
108
+ return 'tool_runtime';
109
+ if (signalType === 'user_goal_shift')
110
+ return 'goal_shift';
111
+ if (signalType === 'user_interruption')
112
+ return 'workflow_mismatch';
113
+ if (signalType === 'hard_rule')
114
+ return 'rule_violation';
115
+ if (/格式|模板|字段|结构|排版|表格|markdown|md|样式|对齐|标题|层级|PRD|prd/i.test(text))
116
+ return 'output_format';
117
+ if (/没看|没读|重新读|重读|先看|看一下|参考|上下文|领域|知识|文档|资料|schema|接口|配置|路径|目录|文件|定义/i.test(text))
118
+ return 'missing_context';
119
+ if (/流程|分支|链路|步骤|顺序|先.+再|不要先|直接走|route|workflow|模式/i.test(text))
120
+ return 'workflow_mismatch';
121
+ if (/必须|不要|禁止|严格|一定要|务必|不得|不能|只允许/i.test(text))
122
+ return 'rule_violation';
123
+ if (/不对|不是|错了|错误|理解错|看错|不符合|不一致|漏|缺|少了|多了|做错/i.test(text))
124
+ return 'content_accuracy';
125
+ return 'unclear';
126
+ }
127
+ function patternKeyFor(skillName, bucket, signalType, text, event) {
128
+ if (bucket === 'tool_runtime') {
129
+ return `${bucket}:${normalizeToken(event.toolName || errorToken(text) || 'tool_failure')}`;
130
+ }
131
+ const tokens = KEYWORD_GROUPS
132
+ .filter((group) => group.re.test(text))
133
+ .map((group) => group.token);
134
+ if (tokens.length > 0)
135
+ return `${bucket}:${unique(tokens).slice(0, 3).join('+')}`;
136
+ const normalized = normalizeText(text).slice(0, 28);
137
+ return `${bucket}:${signalType}:${normalized || normalizeToken(skillName) || 'unknown'}`;
138
+ }
139
+ function errorToken(text) {
140
+ if (/exceeds maximum allowed tokens|too many tokens/i.test(text))
141
+ return 'tool_limit';
142
+ if (/ENOENT|No such file|not found/i.test(text))
143
+ return 'not_found';
144
+ if (/EACCES|permission denied/i.test(text))
145
+ return 'permission';
146
+ if (/timeout|timed out/i.test(text))
147
+ return 'timeout';
148
+ return 'tool_failure';
149
+ }
150
+ function metricActive(event, metricKey, ruleDetected, reviewState) {
151
+ const verdict = observationMetricAnnotationVerdict(reviewState, event, metricKey);
152
+ if (verdict === 'confirmed')
153
+ return true;
154
+ if (verdict === 'rejected')
155
+ return false;
156
+ return ruleDetected;
157
+ }
158
+ function evidenceRefFromEvent(event) {
159
+ return {
160
+ id: event.id,
161
+ kind: event.kind,
162
+ sourceTrace: event.sourceTrace,
163
+ sessionId: event.sessionId,
164
+ messageIndex: event.messageIndex,
165
+ messageUuid: event.messageUuid,
166
+ toolUseId: event.toolUseId,
167
+ timestamp: event.timestamp,
168
+ role: event.role,
169
+ label: event.label,
170
+ snippet: event.snippet,
171
+ };
172
+ }
173
+ function normalizeText(value) {
174
+ return value
175
+ .toLowerCase()
176
+ .replace(/https?:\/\/\S+/g, ' url ')
177
+ .replace(/[a-f0-9]{8,}/g, ' id ')
178
+ .replace(/[0-9]+/g, ' n ')
179
+ .replace(/[^\p{L}\p{N}]+/gu, ' ')
180
+ .trim()
181
+ .replace(/\s+/g, '_');
182
+ }
183
+ function normalizeToken(value) {
184
+ return normalizeText(value).slice(0, 32) || 'unknown';
185
+ }
186
+ function unique(values) {
187
+ return Array.from(new Set(values));
188
+ }
189
+ function uniqueEvidenceRefs(refs) {
190
+ const byId = new Map();
191
+ for (const ref of refs)
192
+ byId.set(ref.id, ref);
193
+ return Array.from(byId.values());
194
+ }
195
+ function maxTimestamp(a, b) {
196
+ if (!a)
197
+ return b;
198
+ if (!b)
199
+ return a;
200
+ return a > b ? a : b;
201
+ }
202
+ function hashParts(...parts) {
203
+ return createHash('sha256').update(parts.join('\u0000')).digest('hex').slice(0, 16);
204
+ }
205
+ //# sourceMappingURL=problem-patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"problem-patterns.js","sourceRoot":"","sources":["../../../src/observability/problem-patterns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ export type ObservationReviewTargetType = 'experience_session' | 'inbox_item' | 'skill' | 'goal_slice_correction' | 'evidence_metric';
2
+ export type ObservationReviewVerdict = 'reviewed' | 'real_issue' | 'not_issue' | 'needs_more_context' | 'confirmed' | 'rejected';
3
+ export type ObservationMetricKey = 'user_correction' | 'user_interruption' | 'user_follow_up' | 'negative_feedback' | 'positive_feedback' | 'hard_rule' | 'user_goal_shift';
4
+ export interface ObservationReviewStateEntry {
5
+ targetType: ObservationReviewTargetType;
6
+ targetId: string;
7
+ verdict: ObservationReviewVerdict;
8
+ reviewedAt: string;
9
+ note?: string;
10
+ reason?: string;
11
+ metricKey?: ObservationMetricKey;
12
+ sourceTrace?: string;
13
+ sessionId?: string;
14
+ messageIndex?: number;
15
+ messageUuid?: string;
16
+ toolUseId?: string;
17
+ snippet?: string;
18
+ }
19
+ export interface ObservationReviewState {
20
+ kind: 'observe-review-state';
21
+ schemaVersion: 1;
22
+ updatedAt: string;
23
+ entries: Record<string, ObservationReviewStateEntry>;
24
+ }
25
+ export interface ObservationReviewStateUpdate {
26
+ targetType: ObservationReviewTargetType;
27
+ targetId: string;
28
+ verdict: ObservationReviewVerdict;
29
+ note?: string;
30
+ reason?: string;
31
+ metricKey?: ObservationMetricKey;
32
+ sourceTrace?: string;
33
+ sessionId?: string;
34
+ messageIndex?: number;
35
+ messageUuid?: string;
36
+ toolUseId?: string;
37
+ snippet?: string;
38
+ }
39
+ export declare function observationReviewStateKey(targetType: ObservationReviewTargetType, targetId: string): string;
40
+ export declare function observationMetricAnnotationTargetId(ref: {
41
+ id?: string;
42
+ sourceTrace?: string;
43
+ sessionId?: string;
44
+ messageIndex?: number;
45
+ messageUuid?: string;
46
+ toolUseId?: string;
47
+ }, metricKey: ObservationMetricKey): string;
48
+ export declare function observationMetricAnnotationVerdict(state: ObservationReviewState | undefined, ref: Parameters<typeof observationMetricAnnotationTargetId>[0], metricKey: ObservationMetricKey): 'confirmed' | 'rejected' | undefined;
49
+ export declare function observationReviewStatePath(observationsDir: string): string;
50
+ export declare function emptyObservationReviewState(now?: string): ObservationReviewState;
51
+ export declare function loadObservationReviewState(observationsDir: string): ObservationReviewState;
52
+ export declare function updateObservationReviewState(observationsDir: string, update: ObservationReviewStateUpdate, now?: string): ObservationReviewState;
53
+ export declare function deleteObservationReviewState(observationsDir: string, targetType: ObservationReviewTargetType, targetId: string, now?: string): ObservationReviewState;
54
+ //# sourceMappingURL=review-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-state.d.ts","sourceRoot":"","sources":["../../../src/observability/review-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,131 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
3
+ import { join } from 'node:path';
4
+ export function observationReviewStateKey(targetType, targetId) {
5
+ return `${targetType}:${targetId}`;
6
+ }
7
+ export function observationMetricAnnotationTargetId(ref, metricKey) {
8
+ const hasStableTraceRef = Boolean(ref.sourceTrace || ref.sessionId || ref.messageIndex !== undefined || ref.messageUuid || ref.toolUseId);
9
+ const stable = [
10
+ metricKey,
11
+ ref.sourceTrace ?? '',
12
+ ref.sessionId ?? '',
13
+ ref.messageIndex === undefined ? '' : String(ref.messageIndex),
14
+ ref.messageUuid ?? '',
15
+ ref.toolUseId ?? '',
16
+ hasStableTraceRef ? '' : ref.id ?? '',
17
+ ].join('\u0000');
18
+ return `metric:${metricKey}:${createHash('sha256').update(stable).digest('hex').slice(0, 16)}`;
19
+ }
20
+ export function observationMetricAnnotationVerdict(state, ref, metricKey) {
21
+ if (!state)
22
+ return undefined;
23
+ const targetId = observationMetricAnnotationTargetId(ref, metricKey);
24
+ const entry = state.entries[observationReviewStateKey('evidence_metric', targetId)];
25
+ return entry?.verdict === 'confirmed' || entry?.verdict === 'rejected' ? entry.verdict : undefined;
26
+ }
27
+ export function observationReviewStatePath(observationsDir) {
28
+ return join(observationsDir, 'review-state.json');
29
+ }
30
+ export function emptyObservationReviewState(now = new Date().toISOString()) {
31
+ return {
32
+ kind: 'observe-review-state',
33
+ schemaVersion: 1,
34
+ updatedAt: now,
35
+ entries: {},
36
+ };
37
+ }
38
+ export function loadObservationReviewState(observationsDir) {
39
+ const path = observationReviewStatePath(observationsDir);
40
+ if (!existsSync(path))
41
+ return emptyObservationReviewState();
42
+ try {
43
+ const parsed = JSON.parse(readFileSync(path, 'utf-8'));
44
+ if (parsed.kind !== 'observe-review-state' || parsed.schemaVersion !== 1 || !parsed.entries || typeof parsed.entries !== 'object') {
45
+ return emptyObservationReviewState();
46
+ }
47
+ return {
48
+ kind: 'observe-review-state',
49
+ schemaVersion: 1,
50
+ updatedAt: typeof parsed.updatedAt === 'string' ? parsed.updatedAt : new Date().toISOString(),
51
+ entries: Object.fromEntries(Object.entries(parsed.entries).filter(([, entry]) => isReviewStateEntry(entry))),
52
+ };
53
+ }
54
+ catch {
55
+ return emptyObservationReviewState();
56
+ }
57
+ }
58
+ export function updateObservationReviewState(observationsDir, update, now = new Date().toISOString()) {
59
+ assertReviewStateUpdate(update);
60
+ const state = loadObservationReviewState(observationsDir);
61
+ const key = observationReviewStateKey(update.targetType, update.targetId);
62
+ state.entries[key] = {
63
+ targetType: update.targetType,
64
+ targetId: update.targetId,
65
+ verdict: update.verdict,
66
+ reviewedAt: now,
67
+ ...(update.note ? { note: update.note.slice(0, 500) } : {}),
68
+ ...(update.reason ? { reason: update.reason.slice(0, 500) } : {}),
69
+ ...(update.metricKey ? { metricKey: update.metricKey } : {}),
70
+ ...(update.sourceTrace ? { sourceTrace: update.sourceTrace } : {}),
71
+ ...(update.sessionId ? { sessionId: update.sessionId } : {}),
72
+ ...(update.messageIndex !== undefined ? { messageIndex: update.messageIndex } : {}),
73
+ ...(update.messageUuid ? { messageUuid: update.messageUuid } : {}),
74
+ ...(update.toolUseId ? { toolUseId: update.toolUseId } : {}),
75
+ ...(update.snippet ? { snippet: update.snippet.slice(0, 500) } : {}),
76
+ };
77
+ state.updatedAt = now;
78
+ mkdirSync(observationsDir, { recursive: true });
79
+ writeFileSync(observationReviewStatePath(observationsDir), JSON.stringify(state, null, 2));
80
+ return state;
81
+ }
82
+ export function deleteObservationReviewState(observationsDir, targetType, targetId, now = new Date().toISOString()) {
83
+ if (!isReviewTargetType(targetType))
84
+ throw new Error('invalid review targetType');
85
+ if (typeof targetId !== 'string' || targetId.trim() === '')
86
+ throw new Error('invalid review targetId');
87
+ const state = loadObservationReviewState(observationsDir);
88
+ const key = observationReviewStateKey(targetType, targetId);
89
+ delete state.entries[key];
90
+ state.updatedAt = now;
91
+ mkdirSync(observationsDir, { recursive: true });
92
+ writeFileSync(observationReviewStatePath(observationsDir), JSON.stringify(state, null, 2));
93
+ return state;
94
+ }
95
+ function assertReviewStateUpdate(value) {
96
+ if (!isReviewTargetType(value.targetType))
97
+ throw new Error('invalid review targetType');
98
+ if (typeof value.targetId !== 'string' || value.targetId.trim() === '')
99
+ throw new Error('invalid review targetId');
100
+ if (!isReviewVerdict(value.verdict))
101
+ throw new Error('invalid review verdict');
102
+ if (value.targetType === 'evidence_metric' && !isObservationMetricKey(value.metricKey))
103
+ throw new Error('invalid metricKey');
104
+ if ((value.verdict === 'confirmed' || value.verdict === 'rejected') && value.targetType !== 'evidence_metric')
105
+ throw new Error('metric verdict requires evidence_metric targetType');
106
+ }
107
+ function isReviewStateEntry(value) {
108
+ if (!value || typeof value !== 'object')
109
+ return false;
110
+ const entry = value;
111
+ return isReviewTargetType(entry.targetType)
112
+ && typeof entry.targetId === 'string'
113
+ && isReviewVerdict(entry.verdict)
114
+ && typeof entry.reviewedAt === 'string';
115
+ }
116
+ function isReviewTargetType(value) {
117
+ return value === 'experience_session' || value === 'inbox_item' || value === 'skill' || value === 'goal_slice_correction' || value === 'evidence_metric';
118
+ }
119
+ function isReviewVerdict(value) {
120
+ return value === 'reviewed' || value === 'real_issue' || value === 'not_issue' || value === 'needs_more_context' || value === 'confirmed' || value === 'rejected';
121
+ }
122
+ function isObservationMetricKey(value) {
123
+ return value === 'user_correction'
124
+ || value === 'user_interruption'
125
+ || value === 'user_follow_up'
126
+ || value === 'negative_feedback'
127
+ || value === 'positive_feedback'
128
+ || value === 'hard_rule'
129
+ || value === 'user_goal_shift';
130
+ }
131
+ //# sourceMappingURL=review-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-state.js","sourceRoot":"","sources":["../../../src/observability/review-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * inbox 报告侧的 skill-chain 改进建议字典。
3
+ *
4
+ * 仅为 inbox UI 展示用,不动 doctor 的 pass/fail 语义。
5
+ * code 命名风格与 doctor i18n key(如 `skill_metadata.hint.hardrules`)对齐,
6
+ * 这样将来 doctor 若也要展示同样的提示,code 可复用。
7
+ */
8
+ export type SkillChainAdvisoryCode = 'hardrules_not_declared' | 'workflows_not_declared' | 'skill_md_not_found';
9
+ export interface SkillChainAdvisory {
10
+ code: SkillChainAdvisoryCode;
11
+ message: string;
12
+ /** 可选:例子 yaml(hardrules / workflows 用) */
13
+ exampleYaml?: string;
14
+ /** 可选:建议命令模板,`${skillName}` 会被替换 */
15
+ commandTemplate?: string;
16
+ /** advisory 在 L1 辅助推断里展示的简短 caution 标签(不超过 18 字) */
17
+ shortLabel: string;
18
+ }
19
+ export declare function getSkillChainAdvisory(code: SkillChainAdvisoryCode): SkillChainAdvisory;
20
+ /**
21
+ * 把 commandTemplate 里的 `${skillName}` 占位符替换成实际 skill 名。
22
+ * 只接受字母/数字/横线/下划线,避免 shell 注入风险。
23
+ */
24
+ export declare function resolveAdvisoryCommand(advisory: SkillChainAdvisory, skillName: string): string | undefined;
25
+ //# sourceMappingURL=skill-chain-advisories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-chain-advisories.d.ts","sourceRoot":"","sources":["../../../src/observability/skill-chain-advisories.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,sBAAsB,GAC9B,wBAAwB,GACxB,wBAAwB,GACxB,oBAAoB,CAAC;AAEzB,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;CACpB;AAmDD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,sBAAsB,GAAG,kBAAkB,CAEtF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI1G"}