@duckcodeailabs/dql-agent 1.6.33 → 1.6.34

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 (144) hide show
  1. package/dist/agent-run-engine.d.ts +26 -8
  2. package/dist/agent-run-engine.d.ts.map +1 -1
  3. package/dist/agent-run-engine.js +46 -7
  4. package/dist/agent-run-engine.js.map +1 -1
  5. package/dist/agent-run-gates.d.ts.map +1 -1
  6. package/dist/agent-run-gates.js +15 -3
  7. package/dist/agent-run-gates.js.map +1 -1
  8. package/dist/agent-run-planner.d.ts.map +1 -1
  9. package/dist/agent-run-planner.js +14 -3
  10. package/dist/agent-run-planner.js.map +1 -1
  11. package/dist/agentic/answer-contract.d.ts +37 -0
  12. package/dist/agentic/answer-contract.d.ts.map +1 -0
  13. package/dist/agentic/answer-contract.js +47 -0
  14. package/dist/agentic/answer-contract.js.map +1 -0
  15. package/dist/agentic/tool-loop.d.ts +48 -0
  16. package/dist/agentic/tool-loop.d.ts.map +1 -0
  17. package/dist/agentic/tool-loop.js +181 -0
  18. package/dist/agentic/tool-loop.js.map +1 -0
  19. package/dist/agentic/toolset.d.ts +40 -0
  20. package/dist/agentic/toolset.d.ts.map +1 -0
  21. package/dist/agentic/toolset.js +265 -0
  22. package/dist/agentic/toolset.js.map +1 -0
  23. package/dist/answer-loop.d.ts +25 -2
  24. package/dist/answer-loop.d.ts.map +1 -1
  25. package/dist/answer-loop.js +368 -72
  26. package/dist/answer-loop.js.map +1 -1
  27. package/dist/cascade/budgets.d.ts +20 -2
  28. package/dist/cascade/budgets.d.ts.map +1 -1
  29. package/dist/cascade/budgets.js +76 -43
  30. package/dist/cascade/budgets.js.map +1 -1
  31. package/dist/cascade/route-policy.d.ts +1 -1
  32. package/dist/cascade/route-policy.d.ts.map +1 -1
  33. package/dist/cascade/route-policy.js +1 -0
  34. package/dist/cascade/route-policy.js.map +1 -1
  35. package/dist/embeddings/provider.d.ts +67 -4
  36. package/dist/embeddings/provider.d.ts.map +1 -1
  37. package/dist/embeddings/provider.js +167 -6
  38. package/dist/embeddings/provider.js.map +1 -1
  39. package/dist/hints/correction-eval.d.ts +30 -0
  40. package/dist/hints/correction-eval.d.ts.map +1 -0
  41. package/dist/hints/correction-eval.js +63 -0
  42. package/dist/hints/correction-eval.js.map +1 -0
  43. package/dist/hints/staleness.d.ts +30 -0
  44. package/dist/hints/staleness.d.ts.map +1 -0
  45. package/dist/hints/staleness.js +38 -0
  46. package/dist/hints/staleness.js.map +1 -0
  47. package/dist/hints/store.d.ts.map +1 -1
  48. package/dist/hints/store.js +3 -32
  49. package/dist/hints/store.js.map +1 -1
  50. package/dist/index.d.ts +39 -6
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +143 -7
  53. package/dist/index.js.map +1 -1
  54. package/dist/intent-controller.d.ts.map +1 -1
  55. package/dist/intent-controller.js +15 -3
  56. package/dist/intent-controller.js.map +1 -1
  57. package/dist/kg/sqlite-fts.d.ts +13 -0
  58. package/dist/kg/sqlite-fts.d.ts.map +1 -1
  59. package/dist/kg/sqlite-fts.js +75 -47
  60. package/dist/kg/sqlite-fts.js.map +1 -1
  61. package/dist/memory/fts-query.d.ts +37 -4
  62. package/dist/memory/fts-query.d.ts.map +1 -1
  63. package/dist/memory/fts-query.js +53 -12
  64. package/dist/memory/fts-query.js.map +1 -1
  65. package/dist/metadata/analysis-planner.js +45 -10
  66. package/dist/metadata/analysis-planner.js.map +1 -1
  67. package/dist/metadata/block-adapt.d.ts +37 -0
  68. package/dist/metadata/block-adapt.d.ts.map +1 -0
  69. package/dist/metadata/block-adapt.js +89 -0
  70. package/dist/metadata/block-adapt.js.map +1 -0
  71. package/dist/metadata/catalog.d.ts +39 -0
  72. package/dist/metadata/catalog.d.ts.map +1 -1
  73. package/dist/metadata/catalog.js +361 -41
  74. package/dist/metadata/catalog.js.map +1 -1
  75. package/dist/metadata/example-match.d.ts +30 -0
  76. package/dist/metadata/example-match.d.ts.map +1 -0
  77. package/dist/metadata/example-match.js +69 -0
  78. package/dist/metadata/example-match.js.map +1 -0
  79. package/dist/metadata/grain-ledger.d.ts +51 -0
  80. package/dist/metadata/grain-ledger.d.ts.map +1 -0
  81. package/dist/metadata/grain-ledger.js +174 -0
  82. package/dist/metadata/grain-ledger.js.map +1 -0
  83. package/dist/metadata/metric-match.d.ts +21 -1
  84. package/dist/metadata/metric-match.d.ts.map +1 -1
  85. package/dist/metadata/metric-match.js +157 -21
  86. package/dist/metadata/metric-match.js.map +1 -1
  87. package/dist/metadata/sql-grounding.d.ts +4 -2
  88. package/dist/metadata/sql-grounding.d.ts.map +1 -1
  89. package/dist/metadata/sql-grounding.js +4 -2
  90. package/dist/metadata/sql-grounding.js.map +1 -1
  91. package/dist/metadata/sql-retrieval.d.ts +3 -2
  92. package/dist/metadata/sql-retrieval.d.ts.map +1 -1
  93. package/dist/metadata/sql-retrieval.js +23 -5
  94. package/dist/metadata/sql-retrieval.js.map +1 -1
  95. package/dist/propose/build-from-prompt.d.ts.map +1 -1
  96. package/dist/propose/build-from-prompt.js +10 -4
  97. package/dist/propose/build-from-prompt.js.map +1 -1
  98. package/dist/propose/failure-analysis.d.ts +48 -0
  99. package/dist/propose/failure-analysis.d.ts.map +1 -0
  100. package/dist/propose/failure-analysis.js +71 -0
  101. package/dist/propose/failure-analysis.js.map +1 -0
  102. package/dist/propose/join-mining.d.ts +18 -0
  103. package/dist/propose/join-mining.d.ts.map +1 -0
  104. package/dist/propose/join-mining.js +74 -0
  105. package/dist/propose/join-mining.js.map +1 -0
  106. package/dist/providers/claude.d.ts.map +1 -1
  107. package/dist/providers/claude.js +36 -1
  108. package/dist/providers/claude.js.map +1 -1
  109. package/dist/providers/index.d.ts +2 -2
  110. package/dist/providers/index.d.ts.map +1 -1
  111. package/dist/providers/index.js +1 -1
  112. package/dist/providers/index.js.map +1 -1
  113. package/dist/providers/openai.d.ts.map +1 -1
  114. package/dist/providers/openai.js +34 -1
  115. package/dist/providers/openai.js.map +1 -1
  116. package/dist/providers/reasoning-effort.d.ts +27 -0
  117. package/dist/providers/reasoning-effort.d.ts.map +1 -1
  118. package/dist/providers/reasoning-effort.js +32 -0
  119. package/dist/providers/reasoning-effort.js.map +1 -1
  120. package/dist/providers/types.d.ts +2 -1
  121. package/dist/providers/types.d.ts.map +1 -1
  122. package/dist/research-loop.d.ts.map +1 -1
  123. package/dist/research-loop.js +9 -2
  124. package/dist/research-loop.js.map +1 -1
  125. package/dist/semantic-bridge/compose.d.ts.map +1 -1
  126. package/dist/semantic-bridge/compose.js +147 -20
  127. package/dist/semantic-bridge/compose.js.map +1 -1
  128. package/dist/skills/bootstrap.d.ts +57 -0
  129. package/dist/skills/bootstrap.d.ts.map +1 -0
  130. package/dist/skills/bootstrap.js +260 -0
  131. package/dist/skills/bootstrap.js.map +1 -0
  132. package/dist/skills/defaults.d.ts +2 -2
  133. package/dist/skills/defaults.js +2 -2
  134. package/dist/skills/domain-skills.d.ts +24 -0
  135. package/dist/skills/domain-skills.d.ts.map +1 -0
  136. package/dist/skills/domain-skills.js +76 -0
  137. package/dist/skills/domain-skills.js.map +1 -0
  138. package/dist/skills/loader.d.ts +46 -8
  139. package/dist/skills/loader.d.ts.map +1 -1
  140. package/dist/skills/loader.js +186 -41
  141. package/dist/skills/loader.js.map +1 -1
  142. package/dist/tools/registry.js +12 -12
  143. package/dist/tools/registry.js.map +1 -1
  144. package/package.json +4 -4
@@ -15,28 +15,33 @@
15
15
  * No external YAML dep — we ship a tiny parser that handles only flat
16
16
  * key/value, list-of-strings, and one-level objects (good enough for skills).
17
17
  */
18
- import { existsSync, mkdirSync, readFileSync, readdirSync, rmSync, statSync, writeFileSync } from 'node:fs';
19
- import { join, basename } from 'node:path';
18
+ import { existsSync, mkdirSync, readFileSync, readdirSync, renameSync, rmSync, statSync, writeFileSync } from 'node:fs';
19
+ import { join, basename, dirname, relative } from 'node:path';
20
+ import * as yaml from 'js-yaml';
20
21
  /**
21
- * Walk `<projectRoot>/.dql/skills/**` and return every parsed Skill.
22
+ * Walk the visible, Git-owned `skills/**` tree. The historical
23
+ * `.dql/skills/**` tree remains read-compatible during migration, but a skill
24
+ * with the same id in `skills/` wins so projects can move incrementally.
22
25
  * Misformed files are reported in `errors`; valid Skills still come back.
23
26
  */
24
27
  export function loadSkills(projectRoot) {
25
- const skillsDir = join(projectRoot, '.dql', 'skills');
26
- if (!existsSync(skillsDir))
27
- return { skills: [], errors: [] };
28
+ const roots = [skillsDir(projectRoot), legacySkillsDir(projectRoot)];
28
29
  const skills = [];
29
30
  const errors = [];
30
- const files = walkMd(skillsDir);
31
- for (const f of files) {
32
- try {
33
- const raw = readFileSync(f, 'utf-8');
34
- const skill = parseSkill(raw, f);
35
- if (skill)
36
- skills.push(skill);
37
- }
38
- catch (err) {
39
- errors.push({ path: f, message: err.message });
31
+ const seen = new Set();
32
+ for (const root of roots) {
33
+ for (const f of walkMd(root)) {
34
+ try {
35
+ const raw = readFileSync(f, 'utf-8');
36
+ const skill = parseSkill(raw, f);
37
+ if (skill && !seen.has(skill.id)) {
38
+ seen.add(skill.id);
39
+ skills.push(skill);
40
+ }
41
+ }
42
+ catch (err) {
43
+ errors.push({ path: f, message: err.message });
44
+ }
40
45
  }
41
46
  }
42
47
  return { skills, errors };
@@ -66,32 +71,52 @@ export function parseSkill(raw, path) {
66
71
  return null;
67
72
  const front = m[1];
68
73
  const body = m[2].trim();
69
- const meta = parseMiniYaml(front);
74
+ const meta = parseSkillFrontmatter(front);
70
75
  const id = pickString(meta.id) ?? basename(path).replace(/\.skill\.md$|\.md$/, '');
71
76
  const user = pickString(meta.user);
72
- const starter = pickString(meta.starter);
77
+ const starter = meta.starter;
73
78
  return {
74
79
  id,
75
80
  scope: user ? 'personal' : 'project',
76
81
  user,
77
82
  domain: pickString(meta.domain),
83
+ domains: pickStringArray(meta.domains ?? meta.domain),
84
+ kind: parseSkillKind(pickString(meta.kind)),
85
+ status: parseSkillStatus(pickString(meta.status)),
86
+ owner: pickString(meta.owner),
87
+ triggers: pickStringArray(meta.triggers),
88
+ exclusions: pickStringArray(meta.exclusions),
78
89
  description: pickString(meta.description),
79
90
  preferredMetrics: pickStringArray(meta.preferred_metrics),
80
91
  preferredBlocks: pickStringArray(meta.preferred_blocks),
92
+ preferredDimensions: pickStringArray(meta.preferred_dimensions),
93
+ requiredFilters: pickStringArray(meta.required_filters),
94
+ clarifyWhen: pickStringArray(meta.clarify_when),
95
+ examples: pickStringArray(meta.examples),
96
+ sourceRefs: pickStringArray(meta.source_refs),
81
97
  vocabulary: pickStringMap(meta.vocabulary),
82
98
  body,
83
99
  sourcePath: path,
84
- isStarter: starter === 'true' || starter === 'yes' ? true : undefined,
100
+ isStarter: starter === true || starter === 'true' || starter === 'yes' ? true : undefined,
85
101
  };
86
102
  }
87
103
  // ─── Serialization + CRUD (spec 16) ──────────────────────────────────────────
88
- /** Skills directory for a project. */
104
+ /** Visible Git-owned skills directory for new and upgraded OSS projects. */
89
105
  export function skillsDir(projectRoot) {
106
+ return join(projectRoot, 'skills');
107
+ }
108
+ /** Historical local-state location, retained only as a read/migration source. */
109
+ export function legacySkillsDir(projectRoot) {
90
110
  return join(projectRoot, '.dql', 'skills');
91
111
  }
92
112
  /** Resolve the `.skill.md` path a skill should be written to. */
93
- export function skillPath(projectRoot, id) {
94
- return join(skillsDir(projectRoot), `${sanitizeSkillId(id)}.skill.md`);
113
+ export function skillPath(projectRoot, id, domains = []) {
114
+ const firstDomain = domains[0]?.trim();
115
+ const folder = firstDomain
116
+ ? firstDomain.split('/').map(sanitizeSkillId).filter(Boolean)
117
+ : [];
118
+ const target = domains.length > 1 ? ['_cross-domain'] : folder;
119
+ return join(skillsDir(projectRoot), ...target, `${sanitizeSkillId(id)}.skill.md`);
95
120
  }
96
121
  function sanitizeSkillId(id) {
97
122
  return id
@@ -115,12 +140,16 @@ function quoteIfNeeded(value) {
115
140
  */
116
141
  export function renderSkill(skill) {
117
142
  const lines = ['---', `id: ${quoteIfNeeded(skill.id)}`];
118
- // PERSONAL skills carry a `user:`; PROJECT skills omit it.
119
- if (skill.scope === 'personal' && skill.user) {
120
- lines.push(`user: ${quoteIfNeeded(skill.user)}`);
121
- }
122
143
  if (skill.domain)
123
144
  lines.push(`domain: ${quoteIfNeeded(skill.domain)}`);
145
+ if ((skill.domains?.length ?? 0) > 0)
146
+ lines.push(`domains: [${(skill.domains ?? []).map(quoteIfNeeded).join(', ')}]`);
147
+ if (skill.kind && skill.kind !== 'custom')
148
+ lines.push(`kind: ${skill.kind}`);
149
+ if (skill.status && skill.status !== 'active')
150
+ lines.push(`status: ${skill.status}`);
151
+ if (skill.owner)
152
+ lines.push(`owner: ${quoteIfNeeded(skill.owner)}`);
124
153
  if (skill.description)
125
154
  lines.push(`description: ${quoteIfNeeded(skill.description)}`);
126
155
  if (skill.preferredMetrics.length > 0) {
@@ -129,6 +158,20 @@ export function renderSkill(skill) {
129
158
  if (skill.preferredBlocks.length > 0) {
130
159
  lines.push(`preferred_blocks: [${skill.preferredBlocks.map(quoteIfNeeded).join(', ')}]`);
131
160
  }
161
+ if ((skill.preferredDimensions?.length ?? 0) > 0)
162
+ lines.push(`preferred_dimensions: [${(skill.preferredDimensions ?? []).map(quoteIfNeeded).join(', ')}]`);
163
+ if ((skill.triggers?.length ?? 0) > 0)
164
+ lines.push(`triggers: [${(skill.triggers ?? []).map(quoteIfNeeded).join(', ')}]`);
165
+ if ((skill.exclusions?.length ?? 0) > 0)
166
+ lines.push(`exclusions: [${(skill.exclusions ?? []).map(quoteIfNeeded).join(', ')}]`);
167
+ if ((skill.requiredFilters?.length ?? 0) > 0)
168
+ lines.push(`required_filters: [${(skill.requiredFilters ?? []).map(quoteIfNeeded).join(', ')}]`);
169
+ if ((skill.clarifyWhen?.length ?? 0) > 0)
170
+ lines.push(`clarify_when: [${(skill.clarifyWhen ?? []).map(quoteIfNeeded).join(', ')}]`);
171
+ if ((skill.examples?.length ?? 0) > 0)
172
+ lines.push(`examples: [${(skill.examples ?? []).map(quoteIfNeeded).join(', ')}]`);
173
+ if ((skill.sourceRefs?.length ?? 0) > 0)
174
+ lines.push(`source_refs: [${(skill.sourceRefs ?? []).map(quoteIfNeeded).join(', ')}]`);
132
175
  const vocabEntries = Object.entries(skill.vocabulary);
133
176
  if (vocabEntries.length > 0) {
134
177
  lines.push('vocabulary:');
@@ -144,28 +187,38 @@ export function renderSkill(skill) {
144
187
  }
145
188
  /** Normalize a partial input into a full Skill (with a resolved sourcePath). */
146
189
  function toSkill(projectRoot, input) {
147
- const scope = input.scope === 'personal' ? 'personal' : 'project';
190
+ // New skills are shared, Git-backed project guidance. Legacy personal skills
191
+ // are retained only for migration and are never written by this path.
192
+ const scope = 'project';
148
193
  return {
149
194
  id: input.id,
150
195
  scope,
151
- user: scope === 'personal' ? (input.user || undefined) : undefined,
196
+ user: undefined,
152
197
  domain: input.domain || undefined,
198
+ domains: input.domains?.length ? input.domains : (input.domain ? [input.domain] : []),
199
+ kind: input.kind ?? 'custom',
200
+ status: input.status ?? 'active',
201
+ owner: input.owner,
202
+ triggers: input.triggers ?? [],
203
+ exclusions: input.exclusions ?? [],
153
204
  description: input.description,
154
205
  preferredMetrics: input.preferredMetrics ?? [],
155
206
  preferredBlocks: input.preferredBlocks ?? [],
207
+ preferredDimensions: input.preferredDimensions ?? [],
208
+ requiredFilters: input.requiredFilters ?? [],
209
+ clarifyWhen: input.clarifyWhen ?? [],
210
+ examples: input.examples ?? [],
211
+ sourceRefs: input.sourceRefs ?? [],
156
212
  vocabulary: input.vocabulary ?? {},
157
213
  body: input.body ?? '',
158
- sourcePath: skillPath(projectRoot, input.id),
214
+ sourcePath: skillPath(projectRoot, input.id, input.domains?.length ? input.domains : (input.domain ? [input.domain] : [])),
159
215
  isStarter: input.isStarter,
160
216
  };
161
217
  }
162
- /**
163
- * Write a skill to `.dql/skills/<id>.skill.md` (overwriting if present). Returns
164
- * the persisted Skill as re-read from disk so callers see the canonical form.
165
- */
218
+ /** Write a skill to `skills/<id>.skill.md`, the shared source location. */
166
219
  export function writeSkill(projectRoot, input) {
167
220
  const skill = toSkill(projectRoot, input);
168
- const dir = skillsDir(projectRoot);
221
+ const dir = dirname(skill.sourcePath);
169
222
  if (!existsSync(dir))
170
223
  mkdirSync(dir, { recursive: true });
171
224
  writeFileSync(skill.sourcePath, renderSkill(skill), 'utf-8');
@@ -175,20 +228,63 @@ export function writeSkill(projectRoot, input) {
175
228
  export function upsertSkill(projectRoot, input) {
176
229
  return writeSkill(projectRoot, input);
177
230
  }
178
- /** Delete `.dql/skills/<id>.skill.md`. Returns true when a file was removed. */
231
+ /** Delete a skill from its actual source path. Returns true when a file was removed. */
179
232
  export function deleteSkill(projectRoot, id) {
180
- const path = skillPath(projectRoot, id);
233
+ const existing = loadSkills(projectRoot).skills.find((skill) => skill.id === id);
234
+ const path = existing?.sourcePath ?? skillPath(projectRoot, id);
181
235
  if (!existsSync(path))
182
236
  return false;
183
237
  rmSync(path, { force: true });
184
238
  return true;
185
239
  }
240
+ /**
241
+ * Explicit one-way OSS layout upgrade. Moves legacy skills into the visible
242
+ * source tree without overwriting a skill already migrated by a teammate.
243
+ */
244
+ export function migrateLegacySkills(projectRoot) {
245
+ const legacyRoot = legacySkillsDir(projectRoot);
246
+ const visibleRoot = skillsDir(projectRoot);
247
+ const moved = [];
248
+ const skipped = [];
249
+ for (const source of walkMd(legacyRoot)) {
250
+ const destination = join(visibleRoot, relative(legacyRoot, source));
251
+ if (existsSync(destination)) {
252
+ skipped.push(relative(projectRoot, source));
253
+ continue;
254
+ }
255
+ mkdirSync(dirname(destination), { recursive: true });
256
+ renameSync(source, destination);
257
+ moved.push(relative(projectRoot, destination));
258
+ }
259
+ return { moved, skipped };
260
+ }
186
261
  function pickString(v) {
187
262
  return typeof v === 'string' ? v : undefined;
188
263
  }
189
264
  function pickStringArray(v) {
265
+ if (typeof v === 'string' && v.trim())
266
+ return [v.trim()];
190
267
  return Array.isArray(v) && v.every((x) => typeof x === 'string') ? v : [];
191
268
  }
269
+ function parseSkillKind(value) {
270
+ return ['domain_reference', 'metric_policy', 'glossary', 'analysis_pattern', 'sql_policy', 'custom'].includes(value ?? '')
271
+ ? value
272
+ : 'custom';
273
+ }
274
+ function parseSkillStatus(value) {
275
+ return ['draft', 'active', 'deprecated'].includes(value ?? '') ? value : 'active';
276
+ }
277
+ function parseSkillFrontmatter(text) {
278
+ try {
279
+ const parsed = yaml.load(text);
280
+ return parsed && typeof parsed === 'object' && !Array.isArray(parsed)
281
+ ? parsed
282
+ : {};
283
+ }
284
+ catch {
285
+ return parseMiniYaml(text);
286
+ }
287
+ }
192
288
  function pickStringMap(v) {
193
289
  if (!v || typeof v !== 'object' || Array.isArray(v))
194
290
  return {};
@@ -272,10 +368,13 @@ export function buildSkillsPrompt(skills, userId) {
272
368
  const header = s.description ? `${s.id} — ${s.description}` : s.id;
273
369
  const metrics = s.preferredMetrics.length > 0 ? `\nPreferred metrics: ${s.preferredMetrics.join(', ')}` : '';
274
370
  const blocks = s.preferredBlocks.length > 0 ? `\nPreferred blocks: ${s.preferredBlocks.join(', ')}` : '';
371
+ const dimensions = (s.preferredDimensions?.length ?? 0) > 0 ? `\nPreferred dimensions: ${s.preferredDimensions?.join(', ')}` : '';
372
+ const filters = (s.requiredFilters?.length ?? 0) > 0 ? `\nRequired filters: ${s.requiredFilters?.join(', ')}` : '';
373
+ const clarify = (s.clarifyWhen?.length ?? 0) > 0 ? `\nClarify when: ${s.clarifyWhen?.join('; ')}` : '';
275
374
  const vocab = Object.keys(s.vocabulary).length > 0
276
375
  ? `\nVocabulary: ${Object.entries(s.vocabulary).map(([k, v]) => `"${k}" → ${v}`).join(', ')}`
277
376
  : '';
278
- return `### Skill: ${header}${metrics}${blocks}${vocab}\n\n${s.body}`;
377
+ return `### Skill: ${header}${metrics}${blocks}${dimensions}${filters}${clarify}${vocab}\n\n${s.body}`;
279
378
  });
280
379
  return [
281
380
  '## Active Skills',
@@ -287,7 +386,11 @@ export function buildSkillsPrompt(skills, userId) {
287
386
  ].join('\n');
288
387
  }
289
388
  export function activeSkills(skills, userId) {
290
- return skills.filter((s) => !s.user || s.user === userId);
389
+ void userId;
390
+ // In-memory callers and older fixture data may not carry the persisted
391
+ // `scope` field. Treat that legacy absence as a project skill; explicitly
392
+ // personal skills remain excluded from OSS agent retrieval.
393
+ return skills.filter((s) => (s.scope ?? 'project') === 'project' && (s.status ?? 'active') === 'active');
291
394
  }
292
395
  export function buildSkillBlockHints(skills, userId) {
293
396
  const hints = new Set();
@@ -307,6 +410,36 @@ export function buildSkillBlockHints(skills, userId) {
307
410
  }
308
411
  return Array.from(hints);
309
412
  }
413
+ /** Metric ids a selected skill may prefer, including vocabulary aliases. */
414
+ export function buildSkillMetricHints(skills, userId) {
415
+ const hints = new Set();
416
+ for (const skill of activeSkills(skills, userId)) {
417
+ for (const metric of skill.preferredMetrics)
418
+ if (metric.trim())
419
+ hints.add(metric.trim());
420
+ for (const target of Object.values(skill.vocabulary)) {
421
+ const match = target.trim().match(/^metric:(.+)$/i);
422
+ if (match?.[1]?.trim())
423
+ hints.add(match[1].trim());
424
+ }
425
+ }
426
+ return Array.from(hints);
427
+ }
428
+ /** Add governed metric aliases to retrieval text without changing the user request. */
429
+ export function expandQuestionWithSkillVocabulary(question, skills, userId) {
430
+ const normalized = question.toLowerCase();
431
+ const additions = new Set();
432
+ for (const skill of activeSkills(skills, userId)) {
433
+ for (const [term, target] of Object.entries(skill.vocabulary)) {
434
+ if (!term || !normalized.includes(term.toLowerCase()))
435
+ continue;
436
+ const metric = target.trim().match(/^metric:(.+)$/i)?.[1]?.trim();
437
+ if (metric)
438
+ additions.add(metric);
439
+ }
440
+ }
441
+ return additions.size > 0 ? `${question} ${Array.from(additions).join(' ')}` : question;
442
+ }
310
443
  function normalizeBlockHint(value) {
311
444
  const trimmed = value.trim();
312
445
  if (!trimmed)
@@ -319,13 +452,18 @@ const SKILL_TOKEN_RE = /[\p{L}\p{N}_]+/gu;
319
452
  function skillTokens(text) {
320
453
  return (text.toLowerCase().match(SKILL_TOKEN_RE) ?? []).filter((t) => t.length > 1);
321
454
  }
322
- /** Searchable text for a skill: id, description, vocabulary keys/values, body. */
455
+ /** Searchable text for a skill: domain, id, preferences, vocabulary, and body. */
323
456
  function skillSearchText(skill) {
324
457
  return [
325
458
  skill.id,
459
+ skill.domain ?? '',
460
+ ...(skill.domains ?? []),
326
461
  skill.description ?? '',
462
+ ...(skill.triggers ?? []),
463
+ ...(skill.exclusions ?? []),
327
464
  ...skill.preferredMetrics,
328
465
  ...skill.preferredBlocks,
466
+ ...(skill.preferredDimensions ?? []),
329
467
  ...Object.keys(skill.vocabulary),
330
468
  ...Object.values(skill.vocabulary),
331
469
  skill.body,
@@ -344,9 +482,13 @@ export function selectRelevantSkills(skills, question, options = {}) {
344
482
  const inScope = activeSkills(skills, options.userId ?? null);
345
483
  if (inScope.length === 0)
346
484
  return [];
347
- const budget = Math.max(1, options.budget ?? 6);
485
+ // One pinned governance/conventions skill plus at most three topical skills is
486
+ // enough context for an answer. The previous default of six let several large
487
+ // domain prompts compete in enterprise repos and diluted the retrieved evidence.
488
+ const budget = Math.max(1, options.budget ?? 4);
348
489
  const pinnedIds = new Set((options.pinnedIds ?? DEFAULT_PINNED_SKILL_IDS).map((id) => id.toLowerCase()));
349
490
  const queryTokens = new Set(skillTokens(question));
491
+ const domains = new Set((options.domains ?? []).map((domain) => domain.trim().toLowerCase()).filter(Boolean));
350
492
  const pinned = [];
351
493
  const rest = [];
352
494
  for (const skill of inScope) {
@@ -360,7 +502,10 @@ export function selectRelevantSkills(skills, question, options = {}) {
360
502
  if (queryTokens.has(token))
361
503
  hits += 1;
362
504
  }
363
- rest.push({ skill, score: hits });
505
+ const domainMatch = [skill.domain, ...(skill.domains ?? [])].some((domain) => Boolean(domain && domains.has(domain.trim().toLowerCase())));
506
+ // Domain is a strong routing signal, but still requires either an inferred
507
+ // domain match or topical text. It never makes a skill a hard policy override.
508
+ rest.push({ skill, score: hits + (domainMatch ? 4 : 0) });
364
509
  }
365
510
  // Keep only skills with at least one topical hit; ordered by score desc, then
366
511
  // stable by original order. Pinned skills are prepended and never dropped.
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/skills/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/skills/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AA0ChC;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,WAAmB;IAC5C,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;IACrE,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,MAAM,GAA6C,EAAE,CAAC;IAC5D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACjC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;oBACjC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,MAAM,CAAC,GAAW;IACzB,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9D,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YACzC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC9F,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,GAAG,GAAG;gBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,wBAAwB;AACxB,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,IAAY;IAClD,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAChE,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACnB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAE1C,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IACnF,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,OAAO;QACL,EAAE;QACF,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QACpC,IAAI;QACJ,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/B,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC;QACrD,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,EAAE,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7B,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;QACxC,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;QAC5C,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;QACzC,gBAAgB,EAAE,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACzD,eAAe,EAAE,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACvD,mBAAmB,EAAE,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC;QAC/D,eAAe,EAAE,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACvD,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;QAC/C,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;QACxC,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;QAC7C,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;QAC1C,IAAI;QACJ,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;KAC1F,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,4EAA4E;AAC5E,MAAM,UAAU,SAAS,CAAC,WAAmB;IAC3C,OAAO,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,OAAO,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,SAAS,CAAC,WAAmB,EAAE,EAAU,EAAE,UAAoB,EAAE;IAC/E,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,WAAW;QACxB,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAC7D,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC/D,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,eAAe,CAAC,EAAU;IACjC,OAAO,EAAE;SACN,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;SAC7B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC;AACxC,CAAC;AAED,gFAAgF;AAChF,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;AACnE,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;AAC3C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAY;IACtC,MAAM,KAAK,GAAa,CAAC,KAAK,EAAE,OAAO,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClE,IAAI,KAAK,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtH,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7E,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACrF,IAAI,KAAK,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpE,IAAI,KAAK,CAAC,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACtF,IAAI,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,uBAAuB,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,sBAAsB,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3J,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzH,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/H,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/I,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzH,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChI,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACtD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,GAAG,CAAC,KAAK,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/B,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC3D,CAAC;AA0BD,gFAAgF;AAChF,SAAS,OAAO,CAAC,WAAmB,EAAE,KAAsB;IAC1D,6EAA6E;IAC7E,sEAAsE;IACtE,MAAM,KAAK,GAAG,SAAS,CAAC;IACxB,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,KAAK;QACL,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,SAAS;QACjC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,QAAQ;QAC5B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,QAAQ;QAChC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;QAC9B,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;QAClC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,IAAI,EAAE;QAC9C,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,EAAE;QAC5C,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,IAAI,EAAE;QACpD,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,EAAE;QAC5C,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;QACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;QAC9B,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;QAClC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;QAClC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;QACtB,UAAU,EAAE,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1H,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,UAAU,CAAC,WAAmB,EAAE,KAAsB;IACpE,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7D,OAAO,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC;AACxF,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,WAAW,CAAC,WAAmB,EAAE,KAAsB;IACrE,OAAO,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,WAAW,CAAC,WAAmB,EAAE,EAAU;IACzD,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACjF,MAAM,IAAI,GAAG,QAAQ,EAAE,UAAU,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAChE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9B,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,MAAM,UAAU,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QACpE,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;YAC5C,SAAS;QACX,CAAC;QACD,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,UAAU,CAAC,CAAU;IAC5B,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED,SAAS,eAAe,CAAC,CAAU;IACjC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE;QAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACzD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1F,CAAC;AAED,SAAS,cAAc,CAAC,KAAyB;IAC/C,OAAO,CAAC,kBAAkB,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;QACxH,CAAC,CAAC,KAAsB;QACxB,CAAC,CAAC,QAAQ,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAyB;IACjD,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAwB,CAAC,CAAC,CAAC,QAAQ,CAAC;AACvG,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY;IACzC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACnE,CAAC,CAAC,MAAiC;YACnC,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,CAAU;IAC/B,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAC/D,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAA4B,CAAC,EAAE,CAAC;QACpE,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAC5C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,IAAI,QAAQ,GAAwD,IAAI,CAAC;IAEzE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAE1D,IAAI,QAAQ,EAAE,CAAC;YACb,sEAAsE;YACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;YACvF,IAAI,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACpD,MAAM,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC1C,IAAI,CAAC;oBAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC3B,SAAS;YACX,CAAC;YACD,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC;YACjC,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;YAC5B,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;iBACb,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACZ,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;iBACjC,MAAM,CAAC,OAAO,CAAC,CAAC;YACnB,SAAS;QACX,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,QAAQ;QAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC;IAC/C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,WAAW,CAAC,CAAS;IAC5B,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACrF,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAe,EAAE,MAAqB;IACtE,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAClC,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,OAAO,GAAG,CAAC,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7G,MAAM,MAAM,GAAG,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzG,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,mBAAmB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClI,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnH,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvG,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC;YAChD,CAAC,CAAC,iBAAiB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC7F,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,cAAc,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IACzG,CAAC,CAAC,CAAC;IACH,OAAO;QACL,kBAAkB;QAClB,EAAE;QACF,+OAA+O;QAC/O,EAAE;QACF,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QACrB,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAe,EAAE,MAAqB;IACjE,KAAK,MAAM,CAAC;IACZ,uEAAuE;IACvE,0EAA0E;IAC1E,4DAA4D;IAC5D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC;AAC3G,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAe,EAAE,MAAqB;IACzE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QACjD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1C,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,UAAU;gBAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAAE,SAAS;YAC9C,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,UAAU;gBAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,qBAAqB,CAAC,MAAe,EAAE,MAAqB;IAC1E,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QACjD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,gBAAgB;YAAE,IAAI,MAAM,CAAC,IAAI,EAAE;gBAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzF,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YACrD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACpD,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;gBAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,iCAAiC,CAAC,QAAgB,EAAE,MAAe,EAAE,MAAqB;IACxG,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QACjD,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAAE,SAAS;YAChE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAClE,IAAI,MAAM;gBAAE,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC1F,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC7C,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;AAC1D,CAAC;AAmBD,MAAM,wBAAwB,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAErD,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAE1C,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,kFAAkF;AAClF,SAAS,eAAe,CAAC,KAAY;IACnC,OAAO;QACL,KAAK,CAAC,EAAE;QACR,KAAK,CAAC,MAAM,IAAI,EAAE;QAClB,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;QACxB,KAAK,CAAC,WAAW,IAAI,EAAE;QACvB,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;QACzB,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;QAC3B,GAAG,KAAK,CAAC,gBAAgB;QACzB,GAAG,KAAK,CAAC,eAAe;QACxB,GAAG,CAAC,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC;QACpC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QAChC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;QAClC,KAAK,CAAC,IAAI;KACX;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAe,EACf,QAAgB,EAChB,UAAuC,EAAE;IAEzC,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;IAC7D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,+EAA+E;IAC/E,8EAA8E;IAC9E,iFAAiF;IACjF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACzG,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAE9G,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,IAAI,GAA2C,EAAE,CAAC;IACxD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,SAAS;QACX,CAAC;QACD,MAAM,UAAU,GAAG,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QACvD,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,IAAI,IAAI,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3I,2EAA2E;QAC3E,+EAA+E;QAC/E,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,8EAA8E;IAC9E,2EAA2E;IAC3E,MAAM,MAAM,GAAG,IAAI;SAChB,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;SAC5C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;SAClC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;SAC1D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE/B,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;AAC1D,CAAC"}
@@ -123,7 +123,7 @@ const CORE_TOOL_DEFINITIONS = [
123
123
  limit: { type: 'number', description: 'Maximum metadata objects in the context pack. Default 100.' },
124
124
  },
125
125
  },
126
- surfaces: ['mcp', 'mcp_agentic', 'native', 'claude_code', 'answer_loop'],
126
+ surfaces: ['mcp', 'mcp_agentic', 'native', 'claude_code'],
127
127
  },
128
128
  {
129
129
  name: 'query_semantic_model',
@@ -214,7 +214,7 @@ const CORE_TOOL_DEFINITIONS = [
214
214
  },
215
215
  },
216
216
  },
217
- surfaces: ['mcp', 'mcp_agentic', 'native', 'claude_code', 'answer_loop'],
217
+ surfaces: ['mcp', 'mcp_agentic', 'native', 'claude_code'],
218
218
  },
219
219
  {
220
220
  name: 'kg_search',
@@ -234,7 +234,7 @@ const CORE_TOOL_DEFINITIONS = [
234
234
  limit: { type: 'number', description: 'Max hits. Default 10.' },
235
235
  },
236
236
  },
237
- surfaces: ['mcp', 'mcp_agentic', 'native', 'claude_code', 'answer_loop'],
237
+ surfaces: ['mcp', 'mcp_agentic', 'native', 'claude_code'],
238
238
  },
239
239
  {
240
240
  name: 'search_blocks',
@@ -249,7 +249,7 @@ const CORE_TOOL_DEFINITIONS = [
249
249
  limit: { type: 'number', description: 'Max results. Default 50.' },
250
250
  },
251
251
  },
252
- surfaces: ['mcp', 'mcp_agentic', 'native', 'claude_code', 'answer_loop'],
252
+ surfaces: ['mcp', 'mcp_agentic', 'native', 'claude_code'],
253
253
  },
254
254
  {
255
255
  name: 'get_block',
@@ -263,7 +263,7 @@ const CORE_TOOL_DEFINITIONS = [
263
263
  includeSource: { type: 'boolean', description: 'Include full .dql source text. Default true.' },
264
264
  },
265
265
  },
266
- surfaces: ['mcp', 'mcp_agentic', 'native', 'claude_code', 'answer_loop'],
266
+ surfaces: ['mcp', 'mcp_agentic', 'native', 'claude_code'],
267
267
  },
268
268
  {
269
269
  name: 'query_via_block',
@@ -285,7 +285,7 @@ const CORE_TOOL_DEFINITIONS = [
285
285
  },
286
286
  },
287
287
  },
288
- surfaces: ['mcp', 'mcp_agentic', 'native', 'claude_code', 'answer_loop'],
288
+ surfaces: ['mcp', 'mcp_agentic', 'native', 'claude_code'],
289
289
  },
290
290
  {
291
291
  name: 'inspect_metadata_context',
@@ -306,7 +306,7 @@ const CORE_TOOL_DEFINITIONS = [
306
306
  },
307
307
  },
308
308
  },
309
- surfaces: ['mcp', 'mcp_agentic', 'native', 'claude_code', 'answer_loop'],
309
+ surfaces: ['mcp', 'mcp_agentic', 'native', 'claude_code'],
310
310
  },
311
311
  {
312
312
  name: 'query_via_metadata',
@@ -359,7 +359,7 @@ const CORE_TOOL_DEFINITIONS = [
359
359
  serverUrl: { type: 'string', description: 'Base URL of the local DQL runtime. Default http://127.0.0.1:3474.' },
360
360
  },
361
361
  },
362
- surfaces: ['mcp', 'mcp_agentic', 'native', 'claude_code', 'answer_loop'],
362
+ surfaces: ['mcp', 'mcp_agentic', 'native', 'claude_code'],
363
363
  },
364
364
  {
365
365
  name: 'expand_context',
@@ -458,7 +458,7 @@ const CORE_TOOL_DEFINITIONS = [
458
458
  nonSemantic: { type: 'boolean', description: 'With recert, treat the change as non-semantic.' },
459
459
  },
460
460
  },
461
- surfaces: ['mcp', 'mcp_agentic', 'native', 'claude_code', 'answer_loop'],
461
+ surfaces: ['mcp', 'mcp_agentic', 'native', 'claude_code'],
462
462
  },
463
463
  {
464
464
  name: 'certify',
@@ -504,7 +504,7 @@ const CORE_TOOL_DEFINITIONS = [
504
504
  limit: { type: 'number', description: 'Max tables to return. Default 12.' },
505
505
  },
506
506
  },
507
- surfaces: ['mcp'],
507
+ surfaces: ['mcp', 'native', 'answer_loop'],
508
508
  },
509
509
  {
510
510
  name: 'get_table_schema',
@@ -517,7 +517,7 @@ const CORE_TOOL_DEFINITIONS = [
517
517
  table: { type: 'string', description: 'Model name, alias, or qualified relation.' },
518
518
  },
519
519
  },
520
- surfaces: ['mcp'],
520
+ surfaces: ['mcp', 'native', 'answer_loop'],
521
521
  },
522
522
  {
523
523
  name: 'validate_sql',
@@ -531,7 +531,7 @@ const CORE_TOOL_DEFINITIONS = [
531
531
  query: { type: 'string', description: 'Optional original request, used to scope grounding.' },
532
532
  },
533
533
  },
534
- surfaces: ['mcp'],
534
+ surfaces: ['mcp', 'native', 'answer_loop'],
535
535
  },
536
536
  {
537
537
  name: 'inspect_dql_project',