specweave 1.0.579 → 1.0.581

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 (115) hide show
  1. package/dist/dashboard/assets/{index-C434W7yF.js → index-Dpn4T2Mx.js} +7 -7
  2. package/dist/dashboard/index.html +1 -1
  3. package/dist/src/core/hooks/LifecycleHookDispatcher.d.ts +6 -1
  4. package/dist/src/core/hooks/LifecycleHookDispatcher.d.ts.map +1 -1
  5. package/dist/src/core/hooks/LifecycleHookDispatcher.js +66 -8
  6. package/dist/src/core/hooks/LifecycleHookDispatcher.js.map +1 -1
  7. package/dist/src/core/increment/completion-validator.d.ts +18 -0
  8. package/dist/src/core/increment/completion-validator.d.ts.map +1 -1
  9. package/dist/src/core/increment/completion-validator.js +75 -0
  10. package/dist/src/core/increment/completion-validator.js.map +1 -1
  11. package/dist/src/core/increment/status-commands.d.ts.map +1 -1
  12. package/dist/src/core/increment/status-commands.js +16 -1
  13. package/dist/src/core/increment/status-commands.js.map +1 -1
  14. package/dist/src/core/reflect-nudge/aggregator.d.ts +33 -0
  15. package/dist/src/core/reflect-nudge/aggregator.d.ts.map +1 -0
  16. package/dist/src/core/reflect-nudge/aggregator.js +80 -0
  17. package/dist/src/core/reflect-nudge/aggregator.js.map +1 -0
  18. package/dist/src/core/reflect-nudge/eligibility.d.ts +27 -0
  19. package/dist/src/core/reflect-nudge/eligibility.d.ts.map +1 -0
  20. package/dist/src/core/reflect-nudge/eligibility.js +114 -0
  21. package/dist/src/core/reflect-nudge/eligibility.js.map +1 -0
  22. package/dist/src/core/reflect-nudge/index.d.ts +14 -0
  23. package/dist/src/core/reflect-nudge/index.d.ts.map +1 -0
  24. package/dist/src/core/reflect-nudge/index.js +14 -0
  25. package/dist/src/core/reflect-nudge/index.js.map +1 -0
  26. package/dist/src/core/reflect-nudge/interactive-prompt.d.ts +28 -0
  27. package/dist/src/core/reflect-nudge/interactive-prompt.d.ts.map +1 -0
  28. package/dist/src/core/reflect-nudge/interactive-prompt.js +52 -0
  29. package/dist/src/core/reflect-nudge/interactive-prompt.js.map +1 -0
  30. package/dist/src/core/reflect-nudge/prompt-renderer.d.ts +23 -0
  31. package/dist/src/core/reflect-nudge/prompt-renderer.d.ts.map +1 -0
  32. package/dist/src/core/reflect-nudge/prompt-renderer.js +26 -0
  33. package/dist/src/core/reflect-nudge/prompt-renderer.js.map +1 -0
  34. package/dist/src/core/reflect-nudge/session-end-nudge.d.ts +31 -0
  35. package/dist/src/core/reflect-nudge/session-end-nudge.d.ts.map +1 -0
  36. package/dist/src/core/reflect-nudge/session-end-nudge.js +44 -0
  37. package/dist/src/core/reflect-nudge/session-end-nudge.js.map +1 -0
  38. package/dist/src/core/reflection/reflect-handler.d.ts +2 -0
  39. package/dist/src/core/reflection/reflect-handler.d.ts.map +1 -1
  40. package/dist/src/core/reflection/reflect-handler.js +4 -0
  41. package/dist/src/core/reflection/reflect-handler.js.map +1 -1
  42. package/dist/src/core/rubric/rubric-evaluator.d.ts +15 -0
  43. package/dist/src/core/rubric/rubric-evaluator.d.ts.map +1 -1
  44. package/dist/src/core/rubric/rubric-evaluator.js +59 -0
  45. package/dist/src/core/rubric/rubric-evaluator.js.map +1 -1
  46. package/dist/src/core/skill-attribution.d.ts +78 -0
  47. package/dist/src/core/skill-attribution.d.ts.map +1 -0
  48. package/dist/src/core/skill-attribution.js +168 -0
  49. package/dist/src/core/skill-attribution.js.map +1 -0
  50. package/dist/src/core/skill-refine/aggregator.d.ts +36 -0
  51. package/dist/src/core/skill-refine/aggregator.d.ts.map +1 -0
  52. package/dist/src/core/skill-refine/aggregator.js +58 -0
  53. package/dist/src/core/skill-refine/aggregator.js.map +1 -0
  54. package/dist/src/core/skill-refine/apply.d.ts +48 -0
  55. package/dist/src/core/skill-refine/apply.d.ts.map +1 -0
  56. package/dist/src/core/skill-refine/apply.js +97 -0
  57. package/dist/src/core/skill-refine/apply.js.map +1 -0
  58. package/dist/src/core/skill-refine/approval.d.ts +71 -0
  59. package/dist/src/core/skill-refine/approval.d.ts.map +1 -0
  60. package/dist/src/core/skill-refine/approval.js +113 -0
  61. package/dist/src/core/skill-refine/approval.js.map +1 -0
  62. package/dist/src/core/skill-refine/haiku-diff.d.ts +66 -0
  63. package/dist/src/core/skill-refine/haiku-diff.d.ts.map +1 -0
  64. package/dist/src/core/skill-refine/haiku-diff.js +111 -0
  65. package/dist/src/core/skill-refine/haiku-diff.js.map +1 -0
  66. package/dist/src/core/skill-refine/ledger.d.ts +34 -0
  67. package/dist/src/core/skill-refine/ledger.d.ts.map +1 -0
  68. package/dist/src/core/skill-refine/ledger.js +81 -0
  69. package/dist/src/core/skill-refine/ledger.js.map +1 -0
  70. package/dist/src/core/skill-signal-emit.d.ts +46 -0
  71. package/dist/src/core/skill-signal-emit.d.ts.map +1 -0
  72. package/dist/src/core/skill-signal-emit.js +59 -0
  73. package/dist/src/core/skill-signal-emit.js.map +1 -0
  74. package/dist/src/core/skill-signals/index.d.ts +9 -0
  75. package/dist/src/core/skill-signals/index.d.ts.map +1 -0
  76. package/dist/src/core/skill-signals/index.js +9 -0
  77. package/dist/src/core/skill-signals/index.js.map +1 -0
  78. package/dist/src/core/skill-signals/reader.d.ts +30 -0
  79. package/dist/src/core/skill-signals/reader.d.ts.map +1 -0
  80. package/dist/src/core/skill-signals/reader.js +102 -0
  81. package/dist/src/core/skill-signals/reader.js.map +1 -0
  82. package/dist/src/core/skill-signals/writer.d.ts +34 -0
  83. package/dist/src/core/skill-signals/writer.d.ts.map +1 -0
  84. package/dist/src/core/skill-signals/writer.js +62 -0
  85. package/dist/src/core/skill-signals/writer.js.map +1 -0
  86. package/dist/src/core/skills/skill-judge.d.ts +8 -0
  87. package/dist/src/core/skills/skill-judge.d.ts.map +1 -1
  88. package/dist/src/core/skills/skill-judge.js +55 -0
  89. package/dist/src/core/skills/skill-judge.js.map +1 -1
  90. package/dist/src/skills/reflect-status.d.ts +23 -0
  91. package/dist/src/skills/reflect-status.d.ts.map +1 -0
  92. package/dist/src/skills/reflect-status.js +55 -0
  93. package/dist/src/skills/reflect-status.js.map +1 -0
  94. package/dist/src/skills/skill-refine.d.ts +81 -0
  95. package/dist/src/skills/skill-refine.d.ts.map +1 -0
  96. package/dist/src/skills/skill-refine.js +226 -0
  97. package/dist/src/skills/skill-refine.js.map +1 -0
  98. package/dist/src/sync/sync-coordinator.d.ts +14 -4
  99. package/dist/src/sync/sync-coordinator.d.ts.map +1 -1
  100. package/dist/src/sync/sync-coordinator.js +100 -38
  101. package/dist/src/sync/sync-coordinator.js.map +1 -1
  102. package/dist/src/types/skill-refinements.d.ts +75 -0
  103. package/dist/src/types/skill-refinements.d.ts.map +1 -0
  104. package/dist/src/types/skill-refinements.js +43 -0
  105. package/dist/src/types/skill-refinements.js.map +1 -0
  106. package/dist/src/types/skill-signals.d.ts +200 -0
  107. package/dist/src/types/skill-signals.d.ts.map +1 -0
  108. package/dist/src/types/skill-signals.js +115 -0
  109. package/dist/src/types/skill-signals.js.map +1 -0
  110. package/package.json +2 -2
  111. package/plugins/specweave/commands/reflect.md +48 -0
  112. package/plugins/specweave/skills/code-reviewer/SKILL.md +4 -0
  113. package/plugins/specweave/skills/judge-llm/SKILL.md +4 -0
  114. package/plugins/specweave/skills/skill-gen/SKILL.md +8 -0
  115. package/plugins/specweave/skills/skill-refine/SKILL.md +96 -0
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Shared emitter helpers for closure gates (judge-llm, rubric, code-reviewer).
3
+ *
4
+ * Each gate has its own orchestration, but the steps after a gate failure are
5
+ * the same: attribute → map severity → append to `skill-signals.json`. This
6
+ * module centralises that pipeline so the three call sites stay thin and the
7
+ * best-effort/never-throw behaviour is uniform.
8
+ *
9
+ * @module core/skill-signal-emit
10
+ */
11
+ import { type AttributeSkillInput } from './skill-attribution.js';
12
+ import type { SignalSeverity, SignalSource } from '../types/skill-signals.js';
13
+ export interface EmitRefinementInput {
14
+ /** SpecWeave project root — used to resolve `.specweave/state/skill-signals.json`. */
15
+ projectRoot: string;
16
+ /** The originating gate. */
17
+ source: SignalSource;
18
+ /** Target severity for the emitted signal. */
19
+ severity: SignalSeverity;
20
+ /** The increment whose closure produced the failure. */
21
+ incrementId: string;
22
+ /** Short human-readable evidence excerpt persisted to the signal. */
23
+ evidence: string;
24
+ /** Inputs forwarded to `attributeSkill`. */
25
+ attribution: AttributeSkillInput;
26
+ }
27
+ export interface EmitRefinementOutput {
28
+ /** True when a signal was persisted. False when attribution was ambiguous. */
29
+ emitted: boolean;
30
+ /** Attributed skill (when emitted). */
31
+ targetSkill: string | null;
32
+ /** Attribution heuristic that matched. */
33
+ method: 'direct' | 'slash' | 'pattern' | 'none';
34
+ }
35
+ /**
36
+ * Resolve the conventional path to `.specweave/state/skill-signals.json`
37
+ * under `projectRoot`. Matches the convention used by `SignalCollector` and
38
+ * `suggestion-engine` so the same file is read/written across features.
39
+ */
40
+ export declare function resolveSignalFilePath(projectRoot: string): string;
41
+ /**
42
+ * Attribute + emit a single refinement signal. Best-effort: swallows all I/O
43
+ * errors. Returns a structured result for observability/testing.
44
+ */
45
+ export declare function emitRefinementIfAttributable(input: EmitRefinementInput): Promise<EmitRefinementOutput>;
46
+ //# sourceMappingURL=skill-signal-emit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-signal-emit.d.ts","sourceRoot":"","sources":["../../../src/core/skill-signal-emit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACb,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,mBAAmB;IAClC,sFAAsF;IACtF,WAAW,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,8CAA8C;IAC9C,QAAQ,EAAE,cAAc,CAAC;IACzB,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,WAAW,EAAE,mBAAmB,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,8EAA8E;IAC9E,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,0CAA0C;IAC1C,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;CACjD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED;;;GAGG;AACH,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,oBAAoB,CAAC,CA0B/B"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Shared emitter helpers for closure gates (judge-llm, rubric, code-reviewer).
3
+ *
4
+ * Each gate has its own orchestration, but the steps after a gate failure are
5
+ * the same: attribute → map severity → append to `skill-signals.json`. This
6
+ * module centralises that pipeline so the three call sites stay thin and the
7
+ * best-effort/never-throw behaviour is uniform.
8
+ *
9
+ * @module core/skill-signal-emit
10
+ */
11
+ import * as path from 'path';
12
+ import { appendRefinementSignal } from './skill-signals/index.js';
13
+ import { attributeSkill, } from './skill-attribution.js';
14
+ /**
15
+ * Resolve the conventional path to `.specweave/state/skill-signals.json`
16
+ * under `projectRoot`. Matches the convention used by `SignalCollector` and
17
+ * `suggestion-engine` so the same file is read/written across features.
18
+ */
19
+ export function resolveSignalFilePath(projectRoot) {
20
+ return path.join(projectRoot, '.specweave', 'state', 'skill-signals.json');
21
+ }
22
+ /**
23
+ * Attribute + emit a single refinement signal. Best-effort: swallows all I/O
24
+ * errors. Returns a structured result for observability/testing.
25
+ */
26
+ export async function emitRefinementIfAttributable(input) {
27
+ const attribution = attributeSkill(input.attribution);
28
+ if (!attribution.skill) {
29
+ return { emitted: false, targetSkill: null, method: attribution.method };
30
+ }
31
+ try {
32
+ await appendRefinementSignal(resolveSignalFilePath(input.projectRoot), {
33
+ source: input.source,
34
+ targetSkill: attribution.skill,
35
+ severity: input.severity,
36
+ incrementId: input.incrementId,
37
+ evidence: truncateEvidence(input.evidence),
38
+ });
39
+ return {
40
+ emitted: true,
41
+ targetSkill: attribution.skill,
42
+ method: attribution.method,
43
+ };
44
+ }
45
+ catch {
46
+ return {
47
+ emitted: false,
48
+ targetSkill: attribution.skill,
49
+ method: attribution.method,
50
+ };
51
+ }
52
+ }
53
+ const EVIDENCE_MAX = 500;
54
+ function truncateEvidence(text) {
55
+ if (text.length <= EVIDENCE_MAX)
56
+ return text;
57
+ return text.slice(0, EVIDENCE_MAX - 1).trimEnd() + '…';
58
+ }
59
+ //# sourceMappingURL=skill-signal-emit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-signal-emit.js","sourceRoot":"","sources":["../../../src/core/skill-signal-emit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EACL,cAAc,GAEf,MAAM,wBAAwB,CAAC;AA8BhC;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAmB;IACvD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;AAC7E,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,KAA0B;IAE1B,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACtD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC;IAC3E,CAAC;IAED,IAAI,CAAC;QACH,MAAM,sBAAsB,CAAC,qBAAqB,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;YACrE,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,WAAW,CAAC,KAAK;YAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,QAAQ,EAAE,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC;SAC3C,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,WAAW,CAAC,KAAK;YAC9B,MAAM,EAAE,WAAW,CAAC,MAAM;SAC3B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,WAAW,CAAC,KAAK;YAC9B,MAAM,EAAE,WAAW,CAAC,MAAM;SAC3B,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,YAAY,GAAG,GAAG,CAAC;AAEzB,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,IAAI,CAAC,MAAM,IAAI,YAAY;QAAE,OAAO,IAAI,CAAC;IAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC;AACzD,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Barrel export for the skill-signals module.
3
+ *
4
+ * @module core/skill-signals
5
+ */
6
+ export { readSignals, listRefinementsForSkill } from './reader.js';
7
+ export { appendRefinementSignal, appendGenerationSignal, type AppendRefinementInput, } from './writer.js';
8
+ export { migrateV1toV2, isV1, EMPTY_SIGNAL_FILE, SignalFileSchema, SkillSignalSchema, GenerationSignalSchema, RefinementSignalSchema, SIGNAL_SOURCES, SIGNAL_SEVERITIES, type SkillSignal, type GenerationSignal, type RefinementSignal, type SignalSource, type SignalSeverity, type SignalFile, } from '../../types/skill-signals.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/skill-signals/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,IAAI,EACJ,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,iBAAiB,EACjB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,UAAU,GAChB,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Barrel export for the skill-signals module.
3
+ *
4
+ * @module core/skill-signals
5
+ */
6
+ export { readSignals, listRefinementsForSkill } from './reader.js';
7
+ export { appendRefinementSignal, appendGenerationSignal, } from './writer.js';
8
+ export { migrateV1toV2, isV1, EMPTY_SIGNAL_FILE, SignalFileSchema, SkillSignalSchema, GenerationSignalSchema, RefinementSignalSchema, SIGNAL_SOURCES, SIGNAL_SEVERITIES, } from '../../types/skill-signals.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/skill-signals/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GAEvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,IAAI,EACJ,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,iBAAiB,GAOlB,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Skill-signals reader — loads `.specweave/state/skill-signals.json` and
3
+ * lazy-migrates v1 → v2 on first read.
4
+ *
5
+ * Contract: never throws on missing/empty/corrupted files. Caller receives
6
+ * a well-formed v2 `SignalFile`.
7
+ *
8
+ * @module core/skill-signals/reader
9
+ */
10
+ import { type RefinementSignal, type SignalFile } from '../../types/skill-signals.js';
11
+ /**
12
+ * Read + normalize the signal file at `filePath`. Missing files return an
13
+ * empty v2 file. v1 files are migrated in memory; the file on disk is NOT
14
+ * touched — the next writer call will persist the v2 shape.
15
+ */
16
+ export declare function readSignals(filePath: string): Promise<SignalFile>;
17
+ /**
18
+ * List refinement signals targeting a given skill, ranked by severity ×
19
+ * recency. The `lastNIncrements` option limits results to signals whose
20
+ * `incrementId` is among the N highest-sorted increment IDs present in the
21
+ * file (lexicographic sort is sufficient — increment IDs are 4-digit
22
+ * zero-padded strings, optionally suffixed with an uppercase letter).
23
+ *
24
+ * Ranking (descending): severity rank first (high=3, medium=2, low=1),
25
+ * then `detectedAt` ISO timestamp descending.
26
+ */
27
+ export declare function listRefinementsForSkill(filePath: string, skillSlug: string, opts?: {
28
+ lastNIncrements?: number;
29
+ }): Promise<RefinementSignal[]>;
30
+ //# sourceMappingURL=reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../../../src/core/skill-signals/reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAKL,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAGhB,MAAM,8BAA8B,CAAC;AAEtC;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAwBvE;AAED;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAA;CAAO,GACtC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAc7B"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Skill-signals reader — loads `.specweave/state/skill-signals.json` and
3
+ * lazy-migrates v1 → v2 on first read.
4
+ *
5
+ * Contract: never throws on missing/empty/corrupted files. Caller receives
6
+ * a well-formed v2 `SignalFile`.
7
+ *
8
+ * @module core/skill-signals/reader
9
+ */
10
+ import { readFile, copyFile } from 'fs/promises';
11
+ import { EMPTY_SIGNAL_FILE, SignalFileSchema, isV1, migrateV1toV2, } from '../../types/skill-signals.js';
12
+ /**
13
+ * Read + normalize the signal file at `filePath`. Missing files return an
14
+ * empty v2 file. v1 files are migrated in memory; the file on disk is NOT
15
+ * touched — the next writer call will persist the v2 shape.
16
+ */
17
+ export async function readSignals(filePath) {
18
+ let raw;
19
+ try {
20
+ const content = await readFile(filePath, 'utf-8');
21
+ raw = JSON.parse(content);
22
+ }
23
+ catch (err) {
24
+ if (err?.code === 'ENOENT') {
25
+ return { ...EMPTY_SIGNAL_FILE, signals: [] };
26
+ }
27
+ await backup(filePath);
28
+ return { ...EMPTY_SIGNAL_FILE, signals: [] };
29
+ }
30
+ if (isV1(raw)) {
31
+ return migrateV1toV2(raw);
32
+ }
33
+ const parsed = SignalFileSchema.safeParse(raw);
34
+ if (parsed.success) {
35
+ return parsed.data;
36
+ }
37
+ await backup(filePath);
38
+ return { ...EMPTY_SIGNAL_FILE, signals: [] };
39
+ }
40
+ /**
41
+ * List refinement signals targeting a given skill, ranked by severity ×
42
+ * recency. The `lastNIncrements` option limits results to signals whose
43
+ * `incrementId` is among the N highest-sorted increment IDs present in the
44
+ * file (lexicographic sort is sufficient — increment IDs are 4-digit
45
+ * zero-padded strings, optionally suffixed with an uppercase letter).
46
+ *
47
+ * Ranking (descending): severity rank first (high=3, medium=2, low=1),
48
+ * then `detectedAt` ISO timestamp descending.
49
+ */
50
+ export async function listRefinementsForSkill(filePath, skillSlug, opts = {}) {
51
+ const file = await readSignals(filePath);
52
+ const allRefinements = file.signals.filter((s) => s.type === 'refinement' && s.targetSkill === skillSlug);
53
+ const inWindow = filterByIncrementWindow(file.signals, allRefinements, opts.lastNIncrements);
54
+ return inWindow.sort(compareBySeverityThenRecency);
55
+ }
56
+ // ── Internals ────────────────────────────────────────────────────────
57
+ const SEVERITY_RANK = {
58
+ high: 3,
59
+ medium: 2,
60
+ low: 1,
61
+ };
62
+ function compareBySeverityThenRecency(a, b) {
63
+ const sev = SEVERITY_RANK[b.severity] - SEVERITY_RANK[a.severity];
64
+ if (sev !== 0)
65
+ return sev;
66
+ // detectedAt desc
67
+ if (a.detectedAt === b.detectedAt)
68
+ return 0;
69
+ return a.detectedAt < b.detectedAt ? 1 : -1;
70
+ }
71
+ function filterByIncrementWindow(allSignals, refinements, lastN) {
72
+ if (lastN === undefined || lastN <= 0)
73
+ return refinements;
74
+ const incrementIds = collectIncrementIds(allSignals);
75
+ if (incrementIds.length === 0)
76
+ return refinements;
77
+ const sorted = [...incrementIds].sort((a, b) => (a < b ? 1 : a > b ? -1 : 0));
78
+ const window = new Set(sorted.slice(0, lastN));
79
+ return refinements.filter((r) => window.has(r.incrementId));
80
+ }
81
+ function collectIncrementIds(signals) {
82
+ const set = new Set();
83
+ for (const s of signals) {
84
+ if (s.type === 'refinement') {
85
+ set.add(s.incrementId);
86
+ }
87
+ else {
88
+ for (const id of s.incrementIds)
89
+ set.add(id);
90
+ }
91
+ }
92
+ return Array.from(set);
93
+ }
94
+ async function backup(filePath) {
95
+ try {
96
+ await copyFile(filePath, filePath + '.bak');
97
+ }
98
+ catch {
99
+ // backup is best-effort
100
+ }
101
+ }
102
+ //# sourceMappingURL=reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reader.js","sourceRoot":"","sources":["../../../../src/core/skill-signals/reader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Skill-signals writer — appends refinement / generation signals to
3
+ * `.specweave/state/skill-signals.json`, always persisting in v2 format.
4
+ *
5
+ * First write to a legacy v1 file upgrades it to v2 on disk.
6
+ *
7
+ * @module core/skill-signals/writer
8
+ */
9
+ import { type GenerationSignal, type RefinementSignal, type SignalSource, type SignalSeverity } from '../../types/skill-signals.js';
10
+ export interface AppendRefinementInput {
11
+ source: SignalSource;
12
+ targetSkill: string;
13
+ severity: SignalSeverity;
14
+ incrementId: string;
15
+ evidence: string;
16
+ /** Override detectedAt (mainly for tests). Defaults to `new Date().toISOString()`. */
17
+ detectedAt?: string;
18
+ /** Override id (mainly for tests). Defaults to `sig_<random>`. */
19
+ id?: string;
20
+ }
21
+ /**
22
+ * Append a refinement signal to the file at `filePath`. The file is created
23
+ * if missing and upgraded to v2 if it's currently v1. Returns the newly
24
+ * appended signal for convenience (id/detectedAt generation is visible to
25
+ * the caller).
26
+ */
27
+ export declare function appendRefinementSignal(filePath: string, input: AppendRefinementInput): Promise<RefinementSignal>;
28
+ /**
29
+ * Append a pre-constructed generation signal. SignalCollector continues to
30
+ * write through its own path; this helper exists so other callers (e.g. the
31
+ * skill-gen CLI) can migrate to the v2 API incrementally.
32
+ */
33
+ export declare function appendGenerationSignal(filePath: string, signal: Omit<GenerationSignal, 'type'>): Promise<GenerationSignal>;
34
+ //# sourceMappingURL=writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../../../src/core/skill-signals/writer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,cAAc,EACpB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAkB3B;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GACrC,OAAO,CAAC,gBAAgB,CAAC,CAM3B"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Skill-signals writer — appends refinement / generation signals to
3
+ * `.specweave/state/skill-signals.json`, always persisting in v2 format.
4
+ *
5
+ * First write to a legacy v1 file upgrades it to v2 on disk.
6
+ *
7
+ * @module core/skill-signals/writer
8
+ */
9
+ import { randomUUID } from 'crypto';
10
+ import { mkdir, writeFile } from 'fs/promises';
11
+ import { dirname } from 'path';
12
+ import { readSignals } from './reader.js';
13
+ import { EMPTY_SIGNAL_FILE, } from '../../types/skill-signals.js';
14
+ /**
15
+ * Append a refinement signal to the file at `filePath`. The file is created
16
+ * if missing and upgraded to v2 if it's currently v1. Returns the newly
17
+ * appended signal for convenience (id/detectedAt generation is visible to
18
+ * the caller).
19
+ */
20
+ export async function appendRefinementSignal(filePath, input) {
21
+ const file = await readSignals(filePath);
22
+ const signal = {
23
+ type: 'refinement',
24
+ id: input.id ?? generateSignalId(),
25
+ source: input.source,
26
+ targetSkill: input.targetSkill,
27
+ severity: input.severity,
28
+ incrementId: input.incrementId,
29
+ evidence: input.evidence,
30
+ detectedAt: input.detectedAt ?? new Date().toISOString(),
31
+ consumedBy: null,
32
+ };
33
+ file.signals.push(signal);
34
+ await persist(filePath, file);
35
+ return signal;
36
+ }
37
+ /**
38
+ * Append a pre-constructed generation signal. SignalCollector continues to
39
+ * write through its own path; this helper exists so other callers (e.g. the
40
+ * skill-gen CLI) can migrate to the v2 API incrementally.
41
+ */
42
+ export async function appendGenerationSignal(filePath, signal) {
43
+ const file = await readSignals(filePath);
44
+ const full = { type: 'generation', ...signal };
45
+ file.signals.push(full);
46
+ await persist(filePath, file);
47
+ return full;
48
+ }
49
+ // ── Internals ────────────────────────────────────────────────────────
50
+ async function persist(filePath, file) {
51
+ await mkdir(dirname(filePath), { recursive: true });
52
+ const payload = {
53
+ schemaVersion: EMPTY_SIGNAL_FILE.schemaVersion,
54
+ signals: file.signals,
55
+ };
56
+ await writeFile(filePath, JSON.stringify(payload, null, 2), 'utf-8');
57
+ }
58
+ function generateSignalId() {
59
+ // `sig_<hex>` — matches plan.md convention without pulling in ulid.
60
+ return `sig_${randomUUID().replace(/-/g, '').slice(0, 20).toUpperCase()}`;
61
+ }
62
+ //# sourceMappingURL=writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writer.js","sourceRoot":"","sources":["../../../../src/core/skill-signals/writer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,iBAAiB,GAKlB,MAAM,8BAA8B,CAAC;AActC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAAgB,EAChB,KAA4B;IAE5B,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEzC,MAAM,MAAM,GAAqB;QAC/B,IAAI,EAAE,YAAY;QAClB,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,gBAAgB,EAAE;QAClC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACxD,UAAU,EAAE,IAAI;KACjB,CAAC;IAEF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAAgB,EAChB,MAAsC;IAEtC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,IAAI,GAAqB,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE,CAAC;IACjE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,MAAM,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,wEAAwE;AAExE,KAAK,UAAU,OAAO,CACpB,QAAgB,EAChB,IAA4E;IAE5E,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG;QACd,aAAa,EAAE,iBAAiB,CAAC,aAAa;QAC9C,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC;IACF,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,gBAAgB;IACvB,oEAAoE;IACpE,OAAO,OAAO,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;AAC5E,CAAC"}
@@ -155,6 +155,14 @@ export declare class SkillJudge {
155
155
  * The completion-validator checks for this file before allowing closure.
156
156
  */
157
157
  writeReport(incrementId: string, result: JudgeResult, consentStatus: 'granted' | 'denied' | 'no-api-key'): string;
158
+ /**
159
+ * Post-processing step for `writeReport`: scan concerns/recommendations/
160
+ * summary for skill-attributable findings and emit one refinement signal
161
+ * per attributed skill. Silent on PASS verdicts. Never throws.
162
+ *
163
+ * @internal exported for testability via a direct method call.
164
+ */
165
+ emitRefinementSignals(incrementId: string, result: JudgeResult): Promise<void>;
158
166
  /**
159
167
  * Write a WAIVED report when consent is denied or no API key available.
160
168
  */
@@ -1 +1 @@
1
- {"version":3,"file":"skill-judge.d.ts","sourceRoot":"","sources":["../../../../src/core/skills/skill-judge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-judge.d.ts","sourceRoot":"","sources":["../../../../src/core/skills/skill-judge.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ import chalk from 'chalk';
21
21
  import { resolveEffectiveRoot } from '../../utils/find-project-root.js';
22
22
  import { loadStaticContext } from '../cache/static-context-loader.js';
23
23
  import { readConfig } from '../config/config-manager.js';
24
+ import { emitRefinementIfAttributable } from '../skill-signal-emit.js';
24
25
  /**
25
26
  * Check if a model ID belongs to the Opus 4.7 family or newer.
26
27
  * 4.7+ models drop the `thinking` API parameter in favor of adaptive thinking
@@ -511,8 +512,62 @@ export class SkillJudge {
511
512
  domainChecks: result.domainChecks,
512
513
  };
513
514
  fs.writeFileSync(reportPath, JSON.stringify(report, null, 2));
515
+ // 0671: emit refinement signals when a gate failure is attributable to a
516
+ // specific skill. Best-effort — never throws.
517
+ void this.emitRefinementSignals(incrementId, result);
514
518
  return reportPath;
515
519
  }
520
+ /**
521
+ * Post-processing step for `writeReport`: scan concerns/recommendations/
522
+ * summary for skill-attributable findings and emit one refinement signal
523
+ * per attributed skill. Silent on PASS verdicts. Never throws.
524
+ *
525
+ * @internal exported for testability via a direct method call.
526
+ */
527
+ async emitRefinementSignals(incrementId, result) {
528
+ // Only emit on CONCERNS or FAIL — PASS verdicts are not "gate failures".
529
+ if (result.verdict === 'PASS')
530
+ return;
531
+ const severity = result.verdict === 'FAIL' ? 'high' : 'medium';
532
+ const skillsRoot = path.join(this.projectRoot, 'plugins', 'specweave', 'skills');
533
+ // Attribute each evidence string, then emit at most one signal per
534
+ // distinct skill within this report — otherwise a verbose judge response
535
+ // that mentions the same slug in summary+concerns+recommendations would
536
+ // produce 3 duplicate signals.
537
+ const { attributeSkill } = await import('../skill-attribution.js');
538
+ const perSkillEvidence = new Map();
539
+ const evidenceSources = [
540
+ ...result.concerns,
541
+ ...result.recommendations,
542
+ result.summary,
543
+ ];
544
+ for (const evidence of evidenceSources) {
545
+ if (!evidence)
546
+ continue;
547
+ const attrib = attributeSkill({ evidenceText: evidence, skillsRoot });
548
+ if (attrib.skill && !perSkillEvidence.has(attrib.skill)) {
549
+ perSkillEvidence.set(attrib.skill, evidence);
550
+ }
551
+ }
552
+ for (const [skill, evidence] of perSkillEvidence) {
553
+ try {
554
+ await emitRefinementIfAttributable({
555
+ projectRoot: this.projectRoot,
556
+ source: 'judge-llm',
557
+ severity,
558
+ incrementId,
559
+ evidence,
560
+ attribution: {
561
+ // Force direct attribution since we already resolved the skill.
562
+ toolCallOrigin: skill,
563
+ },
564
+ });
565
+ }
566
+ catch {
567
+ // Best-effort: never block the gate on signal-emission errors.
568
+ }
569
+ }
570
+ }
516
571
  /**
517
572
  * Write a WAIVED report when consent is denied or no API key available.
518
573
  */
@@ -1 +1 @@
1
- {"version":3,"file":"skill-judge.js","sourceRoot":"","sources":["../../../../src/core/skills/skill-judge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-judge.js","sourceRoot":"","sources":["../../../../src/core/skills/skill-judge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAmB,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AA4EvE;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,MAAM,CAAC,GAAG,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7D,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3B,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,KAAK,CAAC;AACf,CAAC;AAmBD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAA2B;IAC9D,MAAM,EACJ,KAAK,EACL,MAAM,EACN,UAAU,EACV,SAAS,EACT,cAAc,GAAG,UAAU,EAC3B,WAAW,GAAG,EAAE,GACjB,GAAG,KAAK,CAAC;IAEV,MAAM,WAAW,GACf,WAAW,CAAC,MAAM,GAAG,CAAC;QACpB,CAAC,CAAC;YACE,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACrC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;SACnC;QACH,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,QAAQ,GACZ,WAAW,CAAC,MAAM,GAAG,CAAC;QACpB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IAE9C,MAAM,OAAO,GAA4B;QACvC,KAAK;QACL,UAAU,EAAE,SAAS;QACrB,MAAM;QACN,QAAQ;KACT,CAAC;IAEF,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,cAAc,KAAK,QAAQ,EAAE,CAAC;QAC1D,OAAO,CAAC,QAAQ,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACnG,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAAmB,EACnB,WAAoB;IAEpB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,kBAAkB,IAAI,EAAE,CAAC;QACrD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,eAAe,GAAmC;IACtD,QAAQ,EAAE;QACR,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE;YACR,oDAAoD;YACpD,uEAAuE;YACvE,uEAAuE;YACvE,iDAAiD;YACjD,oDAAoD;YACpD,qEAAqE;SACtE;QACD,MAAM,EAAE,CAAC;KACV;IACD,OAAO,EAAE;QACP,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE;YACR,gDAAgD;YAChD,uDAAuD;YACvD,2CAA2C;YAC3C,kDAAkD;YAClD,8DAA8D;YAC9D,6CAA6C;SAC9C;QACD,MAAM,EAAE,CAAC;KACV;IACD,MAAM,EAAE;QACN,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE;YACR,oEAAoE;YACpE,iEAAiE;YACjE,6CAA6C;YAC7C,qCAAqC;YACrC,qCAAqC;YACrC,yCAAyC;SAC1C;QACD,MAAM,EAAE,CAAC;KACV;IACD,cAAc,EAAE;QACd,MAAM,EAAE,gBAAgB;QACxB,QAAQ,EAAE;YACR,yDAAyD;YACzD,6CAA6C;YAC7C,mDAAmD;YACnD,4CAA4C;YAC5C,oCAAoC;YACpC,sCAAsC;SACvC;QACD,MAAM,EAAE,EAAE;KACX;IACD,OAAO,EAAE;QACP,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE;YACR,6CAA6C;YAC7C,gEAAgE;YAChE,kDAAkD;YAClD,+CAA+C;YAC/C,uDAAuD;YACvD,oDAAoD;SACrD;QACD,MAAM,EAAE,CAAC;KACV;IACD,EAAE,EAAE;QACF,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE;YACR,gDAAgD;YAChD,gDAAgD;YAChD,uCAAuC;YACvC,6CAA6C;YAC7C,mDAAmD;YACnD,4DAA4D;SAC7D;QACD,MAAM,EAAE,CAAC;KACV;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iFAmCqD,CAAC;AAElF;;GAEG;AACH,MAAM,cAAc;IAKlB,YAAY,OAAe,EAAE,OAAgB;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,8BAA8B;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,GAAG,CAAC,OAAe,EAAE,QAAgD,MAAM;QACzE,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,SAAS,MAAM,OAAO,OAAO,KAAK,KAAK,OAAO,EAAE,CAAC;QAEnE,uBAAuB;QACvB,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;QAE3C,4BAA4B;QAC5B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC/B,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACjC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACnC,KAAK,CAAC,IAAI,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,CAAC,MAAmB;QACzB,MAAM,KAAK,GAAG;YACZ,EAAE;YACF,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACd,mBAAmB;YACnB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACd,YAAY,MAAM,CAAC,OAAO,YAAY,MAAM,CAAC,KAAK,OAAO;YACzD,aAAa,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;YACtD,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,EAAE;YAC3D,EAAE;YACF,YAAY,MAAM,CAAC,OAAO,EAAE;YAC5B,EAAE;YACF,YAAY;YACZ,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,EAAE;YACF,WAAW;YACX,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,EAAE;YACF,kBAAkB;YAClB,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;SACf,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAElB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,UAAU;IAQrB,YAAY,OAAsB;QAP1B,WAAM,GAAqB,IAAI,CAAC;QAQtC,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,KAAK,CAAC,CAAE,cAAc;QAC/D,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC;QACzC,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,MAAM,CAAC,CAAE,yBAAyB;QACjE,IAAI,CAAC,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,oBAAoB,EAAE,CAAC;QAElE,mBAAmB;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO;YAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;QAErE,8BAA8B;QAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC7C,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,KAAiB;QAC3B,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,MAAM,CAAC,GAAG,CAAC,6CAA6C,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACxE,MAAM,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9D,MAAM,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACzC,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;QAE5C,uBAAuB;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,yDAAyD,EAAE,MAAM,CAAC,CAAC;YAC9E,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC;QAED,yDAAyD;QACzD,IAAI,CAAC;YACH,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAC3D,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,CAAC,GAAG,CAAC,6CAA6C,OAAO,sCAAsC,EAAE,MAAM,CAAC,CAAC;gBAC/G,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,GAAG,CAAC,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,MAAM,CAAC,CAAC;YACzI,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC;QAED,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC;QAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAErD,iFAAiF;QACjF,gFAAgF;QAChF,kCAAkC;QAClC,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QACxF,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC;YAC3C,CAAC,CAAC,MAAM,iBAAiB,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC;YAC3D,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,CAAC,iBAAiB,cAAc,CAAC,MAAM,kCAAkC,EAAE,MAAM,CAAC,CAAC;QAC/F,CAAC;QAED,MAAM,WAAW,GAAG,oBAAoB,CAAC;YACvC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,mBAAmB;YAC3B,UAAU;YACV,SAAS,EAAE,IAAI;YACf,WAAW;SACZ,CAAC,CAAC;QAEH,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;QAErD,IAAI,CAAC;YACH,sCAAsC;YACtC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAChC,MAAM,CAAC,GAAG,CAAC,mCAAmC,EAAE,MAAM,CAAC,CAAC;gBACxD,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAEpB,6BAA6B;YAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAChD,WAAmE,EACnE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAC9B,CAAC;YAEF,YAAY,CAAC,SAAS,CAAC,CAAC;YAExB,MAAM,CAAC,GAAG,CAAC,+BAA+B,EAAE,UAAU,CAAC,CAAC;YAExD,uBAAuB;YACvB,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAClE,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAChD,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACjD,CAAC;YAED,sBAAsB;YACtB,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC/C,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAkD,CAAC;YAEzF,MAAM,MAAM,GAAgB;gBAC1B,GAAG,MAAM;gBACT,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBACnC,QAAQ,EAAE,KAAK;aAChB,CAAC;YAEF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvB,OAAO,MAAM,CAAC;QAEhB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,KAA4C,CAAC;YAEzD,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClE,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;gBACzC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACtD,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,KAAiB,EAAE,QAAwB;QAC7D,MAAM,KAAK,GAAa;YACtB,cAAc,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE;YAC1C,EAAE;YACF,qBAAqB;YACrB,KAAK,CAAC,eAAe;YACrB,EAAE;YACF,iBAAiB;YACjB,KAAK;YACL,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAG,qBAAqB;YACzD,KAAK;SACN,CAAC;QAEF,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,sBAAsB,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,wBAAwB,CAAC,CAAC;YACzC,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;gBAC1C,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,yCAAyC,CAAC,CAAC;QAC1D,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,iEAAiE,CAAC,CAAC;QAElF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,eAAe,CACrB,KAAiB,EACjB,SAAiB,EACjB,MAAsB;QAEtB,MAAM,CAAC,GAAG,CAAC,wCAAwC,EAAE,MAAM,CAAC,CAAC;QAE7D,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,IAAI,KAAK,GAAG,EAAE,CAAC,CAAE,oBAAoB;QAErC,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAE7C,uBAAuB;QACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,QAAQ,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAC9C,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/D,QAAQ,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YACjD,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACxD,QAAQ,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC5C,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACnE,QAAQ,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YACjD,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACnD,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACrC,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrD,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACjC,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;QAED,MAAM,OAAO,GAAiB,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACrB,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;QAEjE,MAAM,MAAM,GAAgB;YAC1B,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACxC,OAAO,EAAE,6CAA6C;YACtD,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC;YAC5E,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC;YAC1E,eAAe,EAAE,CAAC,qDAAqD,CAAC;YACxE,YAAY,EAAE,EAAE;YAChB,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YACnC,QAAQ,EAAE,KAAK;SAChB,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,aAAa,CACnB,KAAiB,EACjB,SAAiB,EACjB,MAAsB;QAEtB,MAAM,MAAM,GAAgB;YAC1B,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,8BAA8B,IAAI,CAAC,UAAU,gCAAgC;YACtF,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,CAAC,8CAA8C,CAAC;YAC1D,eAAe,EAAE;gBACf,wCAAwC;gBACxC,wBAAwB;gBACxB,uCAAuC;aACxC;YACD,YAAY,EAAE,EAAE;YAChB,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YACnC,QAAQ,EAAE,IAAI;SACf,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,WAAW,CACT,WAAmB,EACnB,MAAmB,EACnB,aAAkD;QAElD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAC1B,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,CACrE,CAAC;QACF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;QAClE,MAAM,UAAU,GAAiC;YAC/C,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,UAAU;SACnB,CAAC;QAEF,MAAM,MAAM,GAAG;YACb,OAAO,EAAE,KAAK;YACd,WAAW;YACX,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO;YACrD,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe;YAClD,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,aAAa;YACb,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC;QAEF,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAE9D,yEAAyE;QACzE,8CAA8C;QAC9C,KAAK,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAErD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,qBAAqB,CACzB,WAAmB,EACnB,MAAmB;QAEnB,yEAAyE;QACzE,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM;YAAE,OAAO;QAEtC,MAAM,QAAQ,GAAmB,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC/E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QAEjF,mEAAmE;QACnE,yEAAyE;QACzE,wEAAwE;QACxE,+BAA+B;QAC/B,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACnE,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;QAEnD,MAAM,eAAe,GAAa;YAChC,GAAG,MAAM,CAAC,QAAQ;YAClB,GAAG,MAAM,CAAC,eAAe;YACzB,MAAM,CAAC,OAAO;SACf,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;YACvC,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;YACtE,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxD,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,gBAAgB,EAAE,CAAC;YACjD,IAAI,CAAC;gBACH,MAAM,4BAA4B,CAAC;oBACjC,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,MAAM,EAAE,WAAW;oBACnB,QAAQ;oBACR,WAAW;oBACX,QAAQ;oBACR,WAAW,EAAE;wBACX,gEAAgE;wBAChE,cAAc,EAAE,KAAK;qBACtB;iBACF,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,+DAA+D;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,iBAAiB,CACf,WAAmB,EACnB,MAAc;QAEd,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAC1B,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,CACrE,CAAC;QACF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG;YACb,OAAO,EAAE,KAAK;YACd,WAAW;YACX,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,OAAO,EAAE,QAAQ;YACjB,aAAa,EAAE,QAAQ;YACvB,MAAM;SACP,CAAC;QAEF,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9D,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAAmB;QAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QAExD,MAAM,KAAK,GAAa;YACtB,EAAE;YACF,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC;YAClC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACd,GAAG,IAAI,aAAa,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,MAAM,CAAC,KAAK,OAAO;YAC7E,aAAa,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;YACtD,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,EAAE;YACzE,EAAE;YACF,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;YACtB,KAAK,MAAM,CAAC,OAAO,EAAE;SACtB,CAAC;QAEF,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;YAC1C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACjC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YAC1C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC/C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;gBACvC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC7C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC3C,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAE3B,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAc,EACd,eAAuB,EACvB,WAAmB,EACnB,OAAsB;IAEtB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC,KAAK,CAAC;QACjB,MAAM;QACN,eAAe;QACf,WAAW;KACZ,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAc,EACd,eAAuB,EACvB,WAAmB,EACnB,gBAAwB,EACxB,kBAA4B,EAC5B,OAAsB;IAEtB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC,KAAK,CAAC;QACjB,MAAM;QACN,eAAe;QACf,WAAW;QACX,gBAAgB;QAChB,kBAAkB;KACnB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * `sw:reflect --status` dashboard renderer — produces the markdown output
3
+ * for the status command, including the new `## Skill Refinement
4
+ * Suggestions` section (AC-US4-01 … AC-US4-03).
5
+ *
6
+ * The skill's command.md invokes this through a thin CLI shim; the markdown
7
+ * layer does not generate the dashboard on its own anymore.
8
+ *
9
+ * @module skills/reflect-status
10
+ */
11
+ export interface ReflectStatusOptions {
12
+ projectRoot?: string;
13
+ /** Override threshold (for tests). Defaults to {@link REFINEMENT_SUGGESTION_THRESHOLD}. */
14
+ threshold?: number;
15
+ }
16
+ /**
17
+ * Build the `## Skill Refinement Suggestions` section.
18
+ *
19
+ * Returns `null` when no skills meet the threshold — callers must NOT emit
20
+ * any heading in that case (AC-US4-03).
21
+ */
22
+ export declare function renderRefinementSuggestionsSection(opts?: ReflectStatusOptions): Promise<string | null>;
23
+ //# sourceMappingURL=reflect-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflect-status.d.ts","sourceRoot":"","sources":["../../../src/skills/reflect-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2FAA2F;IAC3F,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAsB,kCAAkC,CACtD,IAAI,GAAE,oBAAyB,GAC9B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA2BxB"}