@dzhechkov/harness-core 0.8.5 → 0.8.10

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 (134) hide show
  1. package/.dz-manifest.json +286 -82
  2. package/README.md +54 -2
  3. package/dist/amendment-trace.d.ts.map +1 -1
  4. package/dist/amendment-trace.js +12 -1
  5. package/dist/amendment-trace.js.map +1 -1
  6. package/dist/compounding.d.ts +54 -0
  7. package/dist/compounding.d.ts.map +1 -1
  8. package/dist/compounding.js +221 -1
  9. package/dist/compounding.js.map +1 -1
  10. package/dist/eta.d.ts +92 -0
  11. package/dist/eta.d.ts.map +1 -0
  12. package/dist/eta.js +488 -0
  13. package/dist/eta.js.map +1 -0
  14. package/dist/feature-adr-checkpoints.d.ts +11 -2
  15. package/dist/feature-adr-checkpoints.d.ts.map +1 -1
  16. package/dist/feature-adr-checkpoints.js +38 -3
  17. package/dist/feature-adr-checkpoints.js.map +1 -1
  18. package/dist/feature-adr-decision-recall.d.ts +167 -0
  19. package/dist/feature-adr-decision-recall.d.ts.map +1 -0
  20. package/dist/feature-adr-decision-recall.js +519 -0
  21. package/dist/feature-adr-decision-recall.js.map +1 -0
  22. package/dist/feature-adr-landing.d.ts +37 -0
  23. package/dist/feature-adr-landing.d.ts.map +1 -0
  24. package/dist/feature-adr-landing.js +59 -0
  25. package/dist/feature-adr-landing.js.map +1 -0
  26. package/dist/feature-adr-routing.d.ts +58 -23
  27. package/dist/feature-adr-routing.d.ts.map +1 -1
  28. package/dist/feature-adr-routing.js +194 -69
  29. package/dist/feature-adr-routing.js.map +1 -1
  30. package/dist/guard-promotion.d.ts +41 -0
  31. package/dist/guard-promotion.d.ts.map +1 -1
  32. package/dist/guard-promotion.js +218 -4
  33. package/dist/guard-promotion.js.map +1 -1
  34. package/dist/guard-volume.d.ts +108 -0
  35. package/dist/guard-volume.d.ts.map +1 -0
  36. package/dist/guard-volume.js +536 -0
  37. package/dist/guard-volume.js.map +1 -0
  38. package/dist/guard.d.ts +34 -0
  39. package/dist/guard.d.ts.map +1 -1
  40. package/dist/guard.js +113 -4
  41. package/dist/guard.js.map +1 -1
  42. package/dist/index.d.ts +18 -4
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +12 -2
  45. package/dist/index.js.map +1 -1
  46. package/dist/integration-apply.d.ts +25 -0
  47. package/dist/integration-apply.d.ts.map +1 -0
  48. package/dist/integration-apply.js +299 -0
  49. package/dist/integration-apply.js.map +1 -0
  50. package/dist/integration-evidence.d.ts +46 -0
  51. package/dist/integration-evidence.d.ts.map +1 -0
  52. package/dist/integration-evidence.js +44 -0
  53. package/dist/integration-evidence.js.map +1 -0
  54. package/dist/integration-probe-worker.d.ts +22 -0
  55. package/dist/integration-probe-worker.d.ts.map +1 -0
  56. package/dist/integration-probe-worker.js +334 -0
  57. package/dist/integration-probe-worker.js.map +1 -0
  58. package/dist/integrations-verify.d.ts +60 -0
  59. package/dist/integrations-verify.d.ts.map +1 -0
  60. package/dist/integrations-verify.js +194 -0
  61. package/dist/integrations-verify.js.map +1 -0
  62. package/dist/lesson-generalization.d.ts +29 -0
  63. package/dist/lesson-generalization.d.ts.map +1 -0
  64. package/dist/lesson-generalization.js +84 -0
  65. package/dist/lesson-generalization.js.map +1 -0
  66. package/dist/loop-blobs.generated.js +8 -8
  67. package/dist/loop-blobs.generated.js.map +1 -1
  68. package/dist/loop-plan.d.ts +13 -1
  69. package/dist/loop-plan.d.ts.map +1 -1
  70. package/dist/loop-plan.js +15 -1
  71. package/dist/loop-plan.js.map +1 -1
  72. package/dist/loop-render.d.ts.map +1 -1
  73. package/dist/loop-render.js +51 -6
  74. package/dist/loop-render.js.map +1 -1
  75. package/dist/loop-trace.d.ts +20 -1
  76. package/dist/loop-trace.d.ts.map +1 -1
  77. package/dist/loop-trace.js +83 -1
  78. package/dist/loop-trace.js.map +1 -1
  79. package/dist/model-recommender.d.ts +8 -0
  80. package/dist/model-recommender.d.ts.map +1 -1
  81. package/dist/model-recommender.js +31 -4
  82. package/dist/model-recommender.js.map +1 -1
  83. package/dist/operations.d.ts +27 -0
  84. package/dist/operations.d.ts.map +1 -1
  85. package/dist/operations.js +178 -2
  86. package/dist/operations.js.map +1 -1
  87. package/dist/patterns.d.ts +27 -1
  88. package/dist/patterns.d.ts.map +1 -1
  89. package/dist/patterns.js +211 -45
  90. package/dist/patterns.js.map +1 -1
  91. package/dist/setup.d.ts.map +1 -1
  92. package/dist/setup.js +20 -17
  93. package/dist/setup.js.map +1 -1
  94. package/dist/target-integrations.d.ts +65 -0
  95. package/dist/target-integrations.d.ts.map +1 -0
  96. package/dist/target-integrations.js +152 -0
  97. package/dist/target-integrations.js.map +1 -0
  98. package/dist/vector-tier.d.ts +6 -1
  99. package/dist/vector-tier.d.ts.map +1 -1
  100. package/dist/vector-tier.js +32 -7
  101. package/dist/vector-tier.js.map +1 -1
  102. package/dist/workflow-run.d.ts.map +1 -1
  103. package/dist/workflow-run.js +18 -12
  104. package/dist/workflow-run.js.map +1 -1
  105. package/package.json +19 -15
  106. package/sbom.json +591 -81
  107. package/src/amendment-trace.ts +12 -1
  108. package/src/compounding.ts +300 -1
  109. package/src/eta.ts +590 -0
  110. package/src/feature-adr-checkpoints.ts +39 -3
  111. package/src/feature-adr-decision-recall.ts +652 -0
  112. package/src/feature-adr-landing.ts +109 -0
  113. package/src/feature-adr-routing.ts +224 -65
  114. package/src/guard-promotion.ts +245 -4
  115. package/src/guard-volume.ts +752 -0
  116. package/src/guard.ts +148 -4
  117. package/src/index.ts +65 -3
  118. package/src/integration-apply.ts +332 -0
  119. package/src/integration-evidence.ts +89 -0
  120. package/src/integration-probe-worker.ts +310 -0
  121. package/src/integration-receipts/claude-code/mcp/2.1.235.json +35 -0
  122. package/src/integrations-verify.ts +258 -0
  123. package/src/lesson-generalization.ts +115 -0
  124. package/src/loop-blobs.generated.ts +8 -8
  125. package/src/loop-plan.ts +36 -3
  126. package/src/loop-render.ts +50 -6
  127. package/src/loop-trace.ts +91 -2
  128. package/src/model-recommender.ts +35 -4
  129. package/src/operations.ts +199 -2
  130. package/src/patterns.ts +252 -43
  131. package/src/setup.ts +20 -17
  132. package/src/target-integrations.ts +225 -0
  133. package/src/vector-tier.ts +44 -14
  134. package/src/workflow-run.ts +18 -11
@@ -0,0 +1,152 @@
1
+ /** Exhaustive target companion policy and once-per-install manifest aggregation. */
2
+ import { existsSync, readFileSync } from 'node:fs';
3
+ import { join } from 'node:path';
4
+ import { claudeIntegrationAdapter } from '@dzhechkov/adapter-claude';
5
+ import { INTEGRATION_MANIFEST_MAX_BYTES, INTEGRATION_REGISTRATION_MAX_COUNT, canonicalIntegrationJson, integrationManifestDigest, parseHarnessIntegrationManifestJson, } from '@dzhechkov/core';
6
+ import { TARGET_NAMES } from './targets.js';
7
+ const refusedAdapter = (target) => ({
8
+ target,
9
+ plan(manifest) {
10
+ const refusals = [];
11
+ if (Object.keys(manifest.mcpServers ?? {}).length > 0) {
12
+ refusals.push({ component: 'mcp', reasonCode: TARGET_INTEGRATION_POLICY[target].mcp.reasonCode ?? 'NO_QUALIFYING_LIVE_RECEIPT', remediation: 'run dz integrations-verify for this exact target product and version' });
13
+ }
14
+ if ((manifest.hooks?.length ?? 0) > 0) {
15
+ refusals.push({ component: 'hooks', reasonCode: TARGET_INTEGRATION_POLICY[target].hooks.reasonCode ?? 'NO_QUALIFYING_LIVE_RECEIPT', remediation: 'run dz integrations-verify with a hook canary and negative control' });
16
+ }
17
+ return { fragments: [], refusals };
18
+ },
19
+ });
20
+ /** Closed 10×2 policy. No fallback/default is permitted. */
21
+ export const TARGET_INTEGRATION_POLICY = {
22
+ 'claude-code': {
23
+ mcp: { disposition: 'receipt', receiptVersion: '2.1.235' },
24
+ hooks: { disposition: 'refused', reasonCode: 'NO_ACTIVATION_RECEIPT' },
25
+ },
26
+ codex: {
27
+ mcp: { disposition: 'refused', reasonCode: 'PROJECT_CARRIER_NOT_OBSERVED' },
28
+ hooks: { disposition: 'legacy-post-write', reasonCode: 'CURRENT_LIVE_CHECK_FAILED' },
29
+ },
30
+ cursor: {
31
+ mcp: { disposition: 'refused', reasonCode: 'TARGET_BINARY_UNAVAILABLE' },
32
+ hooks: { disposition: 'refused', reasonCode: 'TARGET_BINARY_UNAVAILABLE' },
33
+ },
34
+ copilot: {
35
+ mcp: { disposition: 'refused', reasonCode: 'TARGET_BINARY_UNAVAILABLE' },
36
+ hooks: { disposition: 'refused', reasonCode: 'TARGET_BINARY_UNAVAILABLE' },
37
+ },
38
+ windsurf: {
39
+ mcp: { disposition: 'refused', reasonCode: 'PRODUCT_SURFACE_AMBIGUOUS' },
40
+ hooks: { disposition: 'refused', reasonCode: 'TARGET_BINARY_UNAVAILABLE' },
41
+ },
42
+ gemini: {
43
+ mcp: { disposition: 'refused', reasonCode: 'NO_QUALIFYING_LIVE_RECEIPT' },
44
+ hooks: { disposition: 'refused', reasonCode: 'NO_QUALIFYING_LIVE_RECEIPT' },
45
+ },
46
+ opencode: {
47
+ mcp: { disposition: 'refused', reasonCode: 'TARGET_BINARY_UNAVAILABLE' },
48
+ hooks: { disposition: 'refused', reasonCode: 'TARGET_BINARY_UNAVAILABLE' },
49
+ },
50
+ openclaude: {
51
+ mcp: { disposition: 'refused', reasonCode: 'PROJECT_CARRIER_NOT_DOCUMENTED' },
52
+ hooks: { disposition: 'refused', reasonCode: 'TARGET_BINARY_UNAVAILABLE' },
53
+ },
54
+ hermes: {
55
+ mcp: { disposition: 'refused', reasonCode: 'LIVE_PROBE_TIMEOUT' },
56
+ hooks: { disposition: 'refused', reasonCode: 'NO_ACTIVATION_RECEIPT' },
57
+ },
58
+ 'agents-md': {
59
+ mcp: { disposition: 'refused', reasonCode: 'NO_RUNTIME_SURFACE' },
60
+ hooks: { disposition: 'refused', reasonCode: 'NO_RUNTIME_SURFACE' },
61
+ },
62
+ };
63
+ export const TARGET_INTEGRATIONS = Object.fromEntries(TARGET_NAMES.map((target) => [target, target === 'claude-code' ? claudeIntegrationAdapter : refusedAdapter(target)]));
64
+ export class IntegrationManifestError extends Error {
65
+ manifestPath;
66
+ code = 'MANIFEST_INVALID';
67
+ constructor(manifestPath, message) {
68
+ super(`${manifestPath}: ${message}`);
69
+ this.manifestPath = manifestPath;
70
+ this.name = 'IntegrationManifestError';
71
+ }
72
+ }
73
+ /** Load, validate and aggregate every adjacent manifest before target effects. */
74
+ export function aggregateIntegrationManifests(sources) {
75
+ const manifests = [];
76
+ for (const source of sources) {
77
+ const path = join(source.skillDir, source.skillId, 'INTEGRATIONS.json');
78
+ if (!existsSync(path))
79
+ continue;
80
+ try {
81
+ manifests.push({ path, value: parseHarnessIntegrationManifestJson(readFileSync(path, 'utf8')) });
82
+ }
83
+ catch (error) {
84
+ throw new IntegrationManifestError(path, error instanceof Error ? error.message : String(error));
85
+ }
86
+ }
87
+ if (manifests.length === 0)
88
+ return { manifest: undefined, digest: undefined, sourcePaths: [] };
89
+ const mcp = Object.create(null);
90
+ const hooks = new Map();
91
+ for (const source of manifests) {
92
+ for (const [id, intent] of Object.entries(source.value.mcpServers ?? {})) {
93
+ const previous = mcp[id];
94
+ if (previous !== undefined && canonicalIntegrationJson(previous) !== canonicalIntegrationJson(intent)) {
95
+ throw new IntegrationManifestError(source.path, `conflicting MCP registration id ${JSON.stringify(id)}`);
96
+ }
97
+ mcp[id] = intent;
98
+ }
99
+ for (const hook of source.value.hooks ?? []) {
100
+ const previous = hooks.get(hook.id);
101
+ if (previous !== undefined && canonicalIntegrationJson(previous) !== canonicalIntegrationJson(hook)) {
102
+ throw new IntegrationManifestError(source.path, `conflicting hook registration id ${JSON.stringify(hook.id)}`);
103
+ }
104
+ hooks.set(hook.id, hook);
105
+ }
106
+ }
107
+ const aggregate = {
108
+ version: 1,
109
+ ...(Object.keys(mcp).length > 0 ? { mcpServers: Object.fromEntries(Object.entries(mcp).sort(([a], [b]) => a.localeCompare(b))) } : {}),
110
+ ...(hooks.size > 0 ? { hooks: [...hooks.values()].sort((a, b) => a.id.localeCompare(b.id)) } : {}),
111
+ };
112
+ const count = Object.keys(aggregate.mcpServers ?? {}).length + (aggregate.hooks?.length ?? 0);
113
+ if (count > INTEGRATION_REGISTRATION_MAX_COUNT) {
114
+ throw new IntegrationManifestError('<aggregate>', `final aggregate has ${count} registrations; maximum is ${INTEGRATION_REGISTRATION_MAX_COUNT}`);
115
+ }
116
+ const aggregateBytes = Buffer.byteLength(canonicalIntegrationJson(aggregate), 'utf8');
117
+ if (aggregateBytes > INTEGRATION_MANIFEST_MAX_BYTES) {
118
+ throw new IntegrationManifestError('<aggregate>', `final aggregate exceeds ${INTEGRATION_MANIFEST_MAX_BYTES} UTF-8 bytes`);
119
+ }
120
+ return {
121
+ manifest: aggregate,
122
+ digest: integrationManifestDigest([aggregate]),
123
+ sourcePaths: manifests.map((source) => source.path),
124
+ };
125
+ }
126
+ export function notRequestedOutcomes(target) {
127
+ return [
128
+ { target, component: 'mcp', status: 'not-requested', registrations: [] },
129
+ { target, component: 'hooks', status: 'not-requested', registrations: [] },
130
+ ];
131
+ }
132
+ export function refusedOutcome(target, component, reasonCode, remediation) {
133
+ return { target, component, status: 'refused', registrations: [], reasonCode, remediation };
134
+ }
135
+ /** Static synchronous outcomes for Gemini/agents-md and other refusal-only seams. */
136
+ export function staticPolicyOutcomes(target, manifest, noHooks = false) {
137
+ if (manifest === undefined)
138
+ return notRequestedOutcomes(target);
139
+ const mcpRequested = Object.keys(manifest.mcpServers ?? {}).length > 0;
140
+ const hooksRequested = (manifest.hooks?.length ?? 0) > 0 && !noHooks;
141
+ const mcpCell = TARGET_INTEGRATION_POLICY[target].mcp;
142
+ const hookCell = TARGET_INTEGRATION_POLICY[target].hooks;
143
+ return [
144
+ mcpRequested
145
+ ? refusedOutcome(target, 'mcp', mcpCell.reasonCode ?? 'NO_QUALIFYING_LIVE_RECEIPT', 'run dz integrations-verify for an exact-version receipt')
146
+ : { target, component: 'mcp', status: 'not-requested', registrations: [] },
147
+ hooksRequested
148
+ ? refusedOutcome(target, 'hooks', hookCell.reasonCode ?? 'NO_ACTIVATION_RECEIPT', 'run dz integrations-verify with a hook canary and negative control')
149
+ : { target, component: 'hooks', status: 'not-requested', registrations: [] },
150
+ ];
151
+ }
152
+ //# sourceMappingURL=target-integrations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target-integrations.js","sourceRoot":"","sources":["../src/target-integrations.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,7 @@
32
32
  * @packageDocumentation
33
33
  */
34
34
  import type { DreamPattern, MemoryRecord } from '@dzhechkov/memory';
35
- import { type PatternRecord, type RecallHit } from './patterns.js';
35
+ import { type PatternRecord, type RecallHit, type RecallPatternsOptions } from './patterns.js';
36
36
  import { type BanditRecallReport } from './lesson-payoff.js';
37
37
  /** Which adapter sits behind the port. */
38
38
  export type VectorEngineKind = 'agentdb' | 'rvf';
@@ -147,6 +147,8 @@ export interface HybridHit {
147
147
  readonly score: number;
148
148
  /** lesson-quarantine: set only for a quarantined hit — display marks ⚠q, ranking was damped. */
149
149
  readonly quarantined?: boolean;
150
+ /** Form provenance from the lexical pair merge; semantic ranking never invents it. */
151
+ readonly matchedForm?: NonNullable<RecallHit['matchedForm']>;
150
152
  /**
151
153
  * Raw closeness from the semantic leg, when the engine reports a genuine cosine. ABSENT for a
152
154
  * lexical-only hit and for an engine whose score is not a cosine — the honest display there is a
@@ -477,6 +479,7 @@ export interface RankedPattern {
477
479
  readonly id: string;
478
480
  readonly pattern: PatternRecord;
479
481
  readonly backend: RecallHit['backend'];
482
+ readonly matchedForm?: NonNullable<RecallHit['matchedForm']>;
480
483
  /**
481
484
  * The semantic leg's raw closeness, when the engine reports a real cosine. Rides ALONGSIDE the RRF
482
485
  * score and never enters the ranking maths — four things depend on RRF magnitude (the reinforce
@@ -520,6 +523,8 @@ export declare function recallHybrid(projectRoot: string, query: string, opts?:
520
523
  * sitting at `pulls === 0` forever. Absent ⇒ `general`; it changes nothing while disarmed.
521
524
  */
522
525
  readonly domain?: string | undefined;
526
+ readonly onClassDegraded?: RecallPatternsOptions['onClassDegraded'];
527
+ readonly classMatcher?: RecallPatternsOptions['classMatcher'];
523
528
  }): Promise<HybridRecall>;
524
529
  export declare function teachGuard(projectRoot: string, text: string, opts?: VectorServiceOptions & {
525
530
  readonly reward?: number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"vector-tier.d.ts","sourceRoot":"","sources":["../src/vector-tier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vector-tier.d.ts","sourceRoot":"","sources":["../src/vector-tier.ts"],"names":[],"mappings":"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"}
@@ -131,7 +131,7 @@ export function isVectorNoise(text) {
131
131
  * ingest gate — I-6). Score is the record's REAL reward, never a fabricated 1.0.
132
132
  */
133
133
  export function patternVectorEntry(p, source = 'dz-teach', opts = {}) {
134
- if (isVectorNoise(p.pattern))
134
+ if (p.lessonForm === 'class' || isVectorNoise(p.pattern))
135
135
  return undefined;
136
136
  const dzId = patternRecordId(p);
137
137
  return {
@@ -142,7 +142,13 @@ export function patternVectorEntry(p, source = 'dz-teach', opts = {}) {
142
142
  tags: ['dz-teach', p.type],
143
143
  // FR-8: quarantine rides into the mirror so the HOOK DAEMON (which reads only the mirror's
144
144
  // sqlite metadata) can exclude unproven lessons from auto-injection.
145
- metadata: { dzId, source, ts: p.ts, domain: p.domain, ...(opts.quarantined === true ? { qStatus: 'quarantined' } : {}) },
145
+ metadata: {
146
+ dzId, source, ts: p.ts, domain: p.domain,
147
+ ...(p.lessonForm !== undefined && p.lessonPairId !== undefined
148
+ ? { lessonForm: p.lessonForm, lessonPairId: p.lessonPairId }
149
+ : {}),
150
+ ...(opts.quarantined === true ? { qStatus: 'quarantined' } : {}),
151
+ },
146
152
  };
147
153
  }
148
154
  /**
@@ -165,7 +171,7 @@ export function dreamVectorEntry(d) {
165
171
  }
166
172
  /** ACL: stored {@link MemoryRecord} → {@link VectorEntry} (the consolidate-backfill mapper). */
167
173
  export function memoryRecordVectorEntry(r) {
168
- if (isVectorNoise(r.text))
174
+ if (r.metadata?.['lessonForm'] === 'class' || isVectorNoise(r.text))
169
175
  return undefined;
170
176
  const state = readReinforcementState(r);
171
177
  return {
@@ -174,7 +180,12 @@ export function memoryRecordVectorEntry(r) {
174
180
  score: r.score,
175
181
  taskType: r.id.startsWith('dream:') ? 'dz-learning' : 'dz-teach',
176
182
  tags: ['dz-backfill', r.outcome],
177
- metadata: { dzId: r.id, source: r.metadata?.['source'] ?? 'dz-backfill', ts: r.timestamp, skillId: r.skillId },
183
+ metadata: {
184
+ dzId: r.id, source: r.metadata?.['source'] ?? 'dz-backfill', ts: r.timestamp, skillId: r.skillId,
185
+ ...(r.metadata?.['lessonForm'] === 'specific' && typeof r.metadata?.['lessonPairId'] === 'string'
186
+ ? { lessonForm: 'specific', lessonPairId: r.metadata['lessonPairId'] }
187
+ : {}),
188
+ },
178
189
  uses: state.uses,
179
190
  avgReward: state.avgReward,
180
191
  };
@@ -539,6 +550,8 @@ export function mergeHybridHits(lexical, semantic, opts) {
539
550
  lexical.forEach((h, rank) => {
540
551
  const cur = acc.get(h.id) ?? { pattern: h.pattern, sem: false, score: 0 };
541
552
  cur.lex = h.backend;
553
+ if (h.matchedForm !== undefined)
554
+ cur.matchedForm = h.matchedForm;
542
555
  cur.score += 1 / (RRF_K + rank + 1);
543
556
  acc.set(h.id, cur);
544
557
  });
@@ -565,6 +578,7 @@ export function mergeHybridHits(lexical, semantic, opts) {
565
578
  pattern: v.pattern,
566
579
  backend: v.lex !== undefined && v.sem ? 'both' : v.lex ?? 'vector',
567
580
  score: v.score,
581
+ ...(v.matchedForm === undefined ? {} : { matchedForm: v.matchedForm }),
568
582
  ...(v.similarity === undefined ? {} : { similarity: v.similarity }),
569
583
  });
570
584
  // `slice(0, -1)` drops the LAST element instead of returning nothing, so a negative limit used to
@@ -654,7 +668,10 @@ export async function recallHybrid(projectRoot, query, opts = {}) {
654
668
  // write-side backend flag.
655
669
  const limit = opts.limit ?? 10;
656
670
  const mode = opts.mode ?? 'hybrid';
657
- const lexical = recallPatterns(projectRoot, query, limit);
671
+ const lexical = recallPatterns(projectRoot, query, limit, {
672
+ ...(opts.onClassDegraded === undefined ? {} : { onClassDegraded: opts.onClassDegraded }),
673
+ ...(opts.classMatcher === undefined ? {} : { classMatcher: opts.classMatcher }),
674
+ });
658
675
  const lexicalBackend = lexical[0]?.backend === 'sqlite' ? 'sqlite' : 'json';
659
676
  const records = loadStoreRecords(projectRoot);
660
677
  const idToRecord = new Map();
@@ -762,7 +779,12 @@ export async function recallHybrid(projectRoot, query, opts = {}) {
762
779
  };
763
780
  const lexicalOnly = (extra) => {
764
781
  // `enhance` FIRST: it is what populates `banditReport` (the key is absent while disarmed).
765
- const hits = enhance(lexical.map((h, rank) => ({ pattern: h.pattern, backend: h.backend, score: 1 / (RRF_K + rank + 1) })));
782
+ const hits = enhance(lexical.map((h, rank) => ({
783
+ pattern: h.pattern,
784
+ backend: h.backend,
785
+ score: 1 / (RRF_K + rank + 1),
786
+ ...(h.matchedForm === undefined ? {} : { matchedForm: h.matchedForm }),
787
+ })));
766
788
  return {
767
789
  hits,
768
790
  lexicalBackend,
@@ -859,6 +881,7 @@ export async function recallHybrid(projectRoot, query, opts = {}) {
859
881
  id: identityToId.get(patternIdentityOf(h.pattern)) ?? patternRecordId(h.pattern),
860
882
  pattern: h.pattern,
861
883
  backend: h.backend,
884
+ ...(h.matchedForm === undefined ? {} : { matchedForm: h.matchedForm }),
862
885
  }));
863
886
  const hits = enhance(mergeHybridHits(lex, semantic, { limit, semanticWeight: mode === 'semantic' ? 2 : 1 }));
864
887
  markRecallHits(projectRoot, learning, hits, idOf, banditEmission());
@@ -1185,7 +1208,9 @@ export async function harmonizeVectorStore(projectRoot, opts = {}) {
1185
1208
  catch {
1186
1209
  records = [];
1187
1210
  }
1188
- const items = records.map((r) => ({
1211
+ const items = records
1212
+ .filter((r) => r.metadata?.['lessonForm'] !== 'class')
1213
+ .map((r) => ({
1189
1214
  dzId: r.id,
1190
1215
  text: r.text,
1191
1216
  reward: r.score,