capman 0.5.5 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/bin/lib/cmd-generate.js +156 -12
  3. package/bin/lib/cmd-help.js +3 -0
  4. package/dist/cjs/cache.d.ts +9 -0
  5. package/dist/cjs/cache.d.ts.map +1 -1
  6. package/dist/cjs/cache.js +37 -7
  7. package/dist/cjs/cache.js.map +1 -1
  8. package/dist/cjs/engine.d.ts +68 -1
  9. package/dist/cjs/engine.d.ts.map +1 -1
  10. package/dist/cjs/engine.js +313 -13
  11. package/dist/cjs/engine.js.map +1 -1
  12. package/dist/cjs/generator.d.ts.map +1 -1
  13. package/dist/cjs/generator.js +28 -6
  14. package/dist/cjs/generator.js.map +1 -1
  15. package/dist/cjs/index.d.ts +3 -1
  16. package/dist/cjs/index.d.ts.map +1 -1
  17. package/dist/cjs/index.js +5 -1
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/cjs/learning.d.ts +7 -0
  20. package/dist/cjs/learning.d.ts.map +1 -1
  21. package/dist/cjs/learning.js +44 -23
  22. package/dist/cjs/learning.js.map +1 -1
  23. package/dist/cjs/matcher.d.ts +92 -0
  24. package/dist/cjs/matcher.d.ts.map +1 -1
  25. package/dist/cjs/matcher.js +354 -35
  26. package/dist/cjs/matcher.js.map +1 -1
  27. package/dist/cjs/parser.js +27 -9
  28. package/dist/cjs/parser.js.map +1 -1
  29. package/dist/cjs/resolver.d.ts +2 -2
  30. package/dist/cjs/resolver.d.ts.map +1 -1
  31. package/dist/cjs/resolver.js +66 -26
  32. package/dist/cjs/resolver.js.map +1 -1
  33. package/dist/cjs/schema.d.ts +865 -94
  34. package/dist/cjs/schema.d.ts.map +1 -1
  35. package/dist/cjs/schema.js +62 -12
  36. package/dist/cjs/schema.js.map +1 -1
  37. package/dist/cjs/types.d.ts +153 -9
  38. package/dist/cjs/types.d.ts.map +1 -1
  39. package/dist/cjs/version.d.ts +1 -1
  40. package/dist/cjs/version.js +1 -1
  41. package/dist/esm/cache.d.ts +9 -0
  42. package/dist/esm/cache.js +37 -7
  43. package/dist/esm/engine.d.ts +68 -1
  44. package/dist/esm/engine.js +314 -14
  45. package/dist/esm/generator.js +28 -6
  46. package/dist/esm/index.d.ts +3 -1
  47. package/dist/esm/index.js +2 -0
  48. package/dist/esm/learning.d.ts +7 -0
  49. package/dist/esm/learning.js +45 -24
  50. package/dist/esm/matcher.d.ts +92 -0
  51. package/dist/esm/matcher.js +346 -35
  52. package/dist/esm/parser.js +27 -9
  53. package/dist/esm/resolver.d.ts +2 -2
  54. package/dist/esm/resolver.js +66 -26
  55. package/dist/esm/schema.d.ts +865 -94
  56. package/dist/esm/schema.js +62 -12
  57. package/dist/esm/types.d.ts +153 -9
  58. package/dist/esm/version.d.ts +1 -1
  59. package/dist/esm/version.js +1 -1
  60. package/package.json +1 -1
@@ -46,10 +46,14 @@ const schema_1 = require("./schema");
46
46
  const logger_1 = require("./logger");
47
47
  function generate(config) {
48
48
  return {
49
+ schemaVersion: '1',
49
50
  version: version_1.VERSION,
50
51
  app: config.app,
51
52
  generatedAt: new Date().toISOString(),
52
- capabilities: config.capabilities.map(cap => ({ ...cap, params: [...cap.params] })),
53
+ capabilities: config.capabilities.map(cap => ({ ...cap })),
54
+ ...(config.info ? { info: config.info } : {}),
55
+ ...(config.tagRegistry ? { tagRegistry: config.tagRegistry } : {}),
56
+ ...(config.servers ? { servers: config.servers } : {}),
53
57
  };
54
58
  }
55
59
  function loadConfig(configPath) {
@@ -74,6 +78,10 @@ function loadConfig(configPath) {
74
78
  // Use a CJS config file or convert with: module.exports = { ... }
75
79
  // Full ESM config support is planned for v0.5.
76
80
  try {
81
+ // Bust the module cache before loading — require() caches by resolved path,
82
+ // so a second call without this returns the stale version from the first call.
83
+ // This matters in watch mode and test suites that change config between calls.
84
+ delete require.cache[require.resolve(resolved)];
77
85
  const mod = require(resolved);
78
86
  raw = mod.default ?? mod;
79
87
  }
@@ -121,7 +129,12 @@ function writeManifest(manifest, outputPath = 'manifest.json') {
121
129
  throw new Error(`writeManifest: output path "${outputPath}" resolves outside the working directory.\n` +
122
130
  `Resolved: ${resolved}\nAllowed: ${cwd}`);
123
131
  }
124
- fs.writeFileSync(resolved, JSON.stringify(manifest, null, 2));
132
+ // Write atomically via tmp → rename — same pattern used by FileCache and
133
+ // FileLearningStore. A crash or SIGKILL mid-write leaves the .tmp file, not
134
+ // a truncated manifest.json, so the next readManifest() can still parse it.
135
+ const tmp = `${resolved}.tmp`;
136
+ fs.writeFileSync(tmp, JSON.stringify(manifest, null, 2));
137
+ fs.renameSync(tmp, resolved);
125
138
  return resolved;
126
139
  }
127
140
  function readManifest(manifestPath = 'manifest.json') {
@@ -163,14 +176,23 @@ function validate(manifest) {
163
176
  return { valid: errors.length === 0, errors, warnings };
164
177
  }
165
178
  function generateStarterConfig() {
166
- return `// capman.config.js
167
- // Define what your app can do for AI agents.
168
- // Replace the examples below with your own app's capabilities.
179
+ return `// capman.config.js
180
+ // Auto-generated starter config edit before use
169
181
 
170
182
  module.exports = {
171
- app: 'your-app-name',
183
+ app: 'my-app',
172
184
  baseUrl: 'https://api.your-app.com',
173
185
 
186
+ // Optional metadata block — used for documentation and provenance
187
+ info: {
188
+ title: 'My App',
189
+ description: 'Brief description of what this app does',
190
+ version: '1.0.0',
191
+ homepage: 'https://your-app.com',
192
+ contact: { name: 'Your Name', email: 'you@your-app.com' },
193
+ license: { name: 'MIT' },
194
+ },
195
+
174
196
  capabilities: [
175
197
  {
176
198
  id: 'get_resource',
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/generator.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  export { setLogLevel } from './logger';
2
2
  export type { LogLevel } from './logger';
3
- export type { Capability, CapabilityParam, CapmanConfig, Manifest, MatchResult, ExecutionTrace, TraceStep, MatchCandidate, ResolveResult, ApiCallResult, ValidationResult, Resolver, ApiResolver, NavResolver, HybridResolver, PrivacyScope, ResolverType, HttpMethod, ExplainResult, ExplainCandidate, } from './types';
3
+ export type { Capability, CapabilityParam, CapmanConfig, Manifest, MatchResult, ExecutionTrace, TraceStep, MatchCandidate, ResolveResult, ApiCallResult, ValidationResult, Resolver, ApiResolver, NavResolver, HybridResolver, PrivacyScope, ResolverType, HttpMethod, ExplainResult, ExplainCandidate, ManifestInfo, Server, LifecycleInfo, LifecycleStatus, CapabilityError, Endpoint, ParamType, MatchHint, } from './types';
4
4
  export { generate, loadConfig, writeManifest, readManifest, validate, generateStarterConfig, } from './generator';
5
5
  export { match, matchWithLLM, extractParams, } from './matcher';
6
6
  export { LLMParseError } from './matcher';
7
7
  export type { LLMMatcherOptions } from './matcher';
8
+ export { TYPE_PATTERNS } from './matcher';
9
+ export { filterByTags } from './matcher';
8
10
  export { resolve } from './resolver';
9
11
  export type { ResolveOptions, AuthContext } from './resolver';
10
12
  export { CapmanEngine } from './engine';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAExC,YAAY,EACV,UAAU,EACV,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,cAAc,EACd,SAAS,EACT,cAAc,EACd,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,aAAa,EACb,gBAAgB,GACjB,MAAM,SAAS,CAAA;AAEhB,OAAO,EACL,QAAQ,EACR,UAAU,EACV,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,qBAAqB,GACtB,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,KAAK,EACL,YAAY,EACZ,aAAa,GACd,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAG7D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAG3D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC3F,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGrD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AACnE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAK3C,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD,GAAG,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC9B;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,WAAW,CAAA;IAClB,UAAU,EAAE,aAAa,CAAA;CAC1B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,GAAG,CACvB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,UAAe,GACvB,OAAO,CAAC,SAAS,CAAC,CAgBpB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAExC,YAAY,EACV,UAAU,EACV,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,cAAc,EACd,SAAS,EACT,cAAc,EACd,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,MAAM,EACN,aAAa,EACb,eAAe,EACf,eAAe,EACf,QAAQ,EACR,SAAS,EACT,SAAS,GACV,MAAM,SAAS,CAAA;AAEhB,OAAO,EACL,QAAQ,EACR,UAAU,EACV,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,qBAAqB,GACtB,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,KAAK,EACL,YAAY,EACZ,aAAa,GACd,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAG7D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAG3D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC3F,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGrD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AACnE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAK3C,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD,GAAG,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC9B;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,WAAW,CAAA;IAClB,UAAU,EAAE,aAAa,CAAA;CAC1B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,GAAG,CACvB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,UAAe,GACvB,OAAO,CAAC,SAAS,CAAC,CAgBpB"}
package/dist/cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseOpenAPI = exports.MemoryLearningStore = exports.FileLearningStore = exports.normalizeQuery = exports.buildCacheKey = exports.ComboCache = exports.FileCache = exports.MemoryCache = exports.CapmanEngine = exports.resolve = exports.LLMParseError = exports.extractParams = exports.matchWithLLM = exports.match = exports.generateStarterConfig = exports.validate = exports.readManifest = exports.writeManifest = exports.loadConfig = exports.generate = exports.setLogLevel = void 0;
3
+ exports.parseOpenAPI = exports.MemoryLearningStore = exports.FileLearningStore = exports.normalizeQuery = exports.buildCacheKey = exports.ComboCache = exports.FileCache = exports.MemoryCache = exports.CapmanEngine = exports.resolve = exports.filterByTags = exports.TYPE_PATTERNS = exports.LLMParseError = exports.extractParams = exports.matchWithLLM = exports.match = exports.generateStarterConfig = exports.validate = exports.readManifest = exports.writeManifest = exports.loadConfig = exports.generate = exports.setLogLevel = void 0;
4
4
  exports.ask = ask;
5
5
  var logger_1 = require("./logger");
6
6
  Object.defineProperty(exports, "setLogLevel", { enumerable: true, get: function () { return logger_1.setLogLevel; } });
@@ -17,6 +17,10 @@ Object.defineProperty(exports, "matchWithLLM", { enumerable: true, get: function
17
17
  Object.defineProperty(exports, "extractParams", { enumerable: true, get: function () { return matcher_1.extractParams; } });
18
18
  var matcher_2 = require("./matcher");
19
19
  Object.defineProperty(exports, "LLMParseError", { enumerable: true, get: function () { return matcher_2.LLMParseError; } });
20
+ var matcher_3 = require("./matcher");
21
+ Object.defineProperty(exports, "TYPE_PATTERNS", { enumerable: true, get: function () { return matcher_3.TYPE_PATTERNS; } });
22
+ var matcher_4 = require("./matcher");
23
+ Object.defineProperty(exports, "filterByTags", { enumerable: true, get: function () { return matcher_4.filterByTags; } });
20
24
  var resolver_1 = require("./resolver");
21
25
  Object.defineProperty(exports, "resolve", { enumerable: true, get: function () { return resolver_1.resolve; } });
22
26
  // ─── Engine (recommended API) ─────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAkGA,kBAoBC;AAtHD,mCAAsC;AAA7B,qGAAA,WAAW,OAAA;AA0BpB,yCAOoB;AANlB,qGAAA,QAAQ,OAAA;AACR,uGAAA,UAAU,OAAA;AACV,0GAAA,aAAa,OAAA;AACb,yGAAA,YAAY,OAAA;AACZ,qGAAA,QAAQ,OAAA;AACR,kHAAA,qBAAqB,OAAA;AAGvB,qCAIkB;AAHhB,gGAAA,KAAK,OAAA;AACL,uGAAA,YAAY,OAAA;AACZ,wGAAA,aAAa,OAAA;AAEf,qCAAyC;AAAhC,wGAAA,aAAa,OAAA;AAGtB,uCAAoC;AAA3B,mGAAA,OAAO,OAAA;AAGhB,iFAAiF;AACjF,mCAAuC;AAA9B,sGAAA,YAAY,OAAA;AAGrB,iFAAiF;AACjF,iCAA2F;AAAlF,oGAAA,WAAW,OAAA;AAAE,kGAAA,SAAS,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,sGAAA,aAAa,OAAA;AAAE,uGAAA,cAAc,OAAA;AAG1E,iFAAiF;AACjF,uCAAmE;AAA1D,6GAAA,iBAAiB,OAAA;AAAE,+GAAA,mBAAmB,OAAA;AAG/C,mCAAuC;AAA9B,sGAAA,YAAY,OAAA;AAGrB,iFAAiF;AAEjF,qCAAuC;AAwBvC;;;;;;;;;;GAUG;AACI,KAAK,UAAU,GAAG,CACvB,KAAa,EACb,QAAkB,EAClB,UAAsB,EAAE;IAExB,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,CAAA;IAEhD,MAAM,MAAM,GAAG,IAAI,qBAAY,CAAC;QAC9B,QAAQ;QACR,GAAG;QACH,IAAI;QACJ,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,cAAc,CAAC,OAAO;QAC/B,IAAI,EAAE,cAAc,CAAC,IAAI;QACzB,OAAO,EAAE,cAAc,CAAC,OAAO;KAChC,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;IACtD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAA;AAC/D,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AA4GA,kBAoBC;AAhID,mCAAsC;AAA7B,qGAAA,WAAW,OAAA;AAkCpB,yCAOoB;AANlB,qGAAA,QAAQ,OAAA;AACR,uGAAA,UAAU,OAAA;AACV,0GAAA,aAAa,OAAA;AACb,yGAAA,YAAY,OAAA;AACZ,qGAAA,QAAQ,OAAA;AACR,kHAAA,qBAAqB,OAAA;AAGvB,qCAIkB;AAHhB,gGAAA,KAAK,OAAA;AACL,uGAAA,YAAY,OAAA;AACZ,wGAAA,aAAa,OAAA;AAEf,qCAAyC;AAAhC,wGAAA,aAAa,OAAA;AAEtB,qCAAyC;AAAhC,wGAAA,aAAa,OAAA;AACtB,qCAAwC;AAA/B,uGAAA,YAAY,OAAA;AAErB,uCAAoC;AAA3B,mGAAA,OAAO,OAAA;AAGhB,iFAAiF;AACjF,mCAAuC;AAA9B,sGAAA,YAAY,OAAA;AAGrB,iFAAiF;AACjF,iCAA2F;AAAlF,oGAAA,WAAW,OAAA;AAAE,kGAAA,SAAS,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,sGAAA,aAAa,OAAA;AAAE,uGAAA,cAAc,OAAA;AAG1E,iFAAiF;AACjF,uCAAmE;AAA1D,6GAAA,iBAAiB,OAAA;AAAE,+GAAA,mBAAmB,OAAA;AAG/C,mCAAuC;AAA9B,sGAAA,YAAY,OAAA;AAGrB,iFAAiF;AAEjF,qCAAuC;AAwBvC;;;;;;;;;;GAUG;AACI,KAAK,UAAU,GAAG,CACvB,KAAa,EACb,QAAkB,EAClB,UAAsB,EAAE;IAExB,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,CAAA;IAEhD,MAAM,MAAM,GAAG,IAAI,qBAAY,CAAC;QAC9B,QAAQ;QACR,GAAG;QACH,IAAI;QACJ,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,cAAc,CAAC,OAAO;QAC/B,IAAI,EAAE,cAAc,CAAC,IAAI;QACzB,OAAO,EAAE,cAAc,CAAC,OAAO;KAChC,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;IACtD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAA;AAC/D,CAAC"}
@@ -6,6 +6,13 @@ export interface LearningEntry {
6
6
  extractedParams: Record<string, string | null>;
7
7
  resolvedVia: 'keyword' | 'llm' | 'cache';
8
8
  timestamp: string;
9
+ /**
10
+ * Confidence-derived weight stored at record time (confidence / 100, floor 0.1).
11
+ * Used by subtract() to reverse the exact contribution made by update(),
12
+ * preventing index drift when high-confidence entries are pruned.
13
+ * Optional for backwards-compatibility with persisted entries written before v0.5.5.
14
+ */
15
+ weight?: number;
9
16
  }
10
17
  export interface KeywordStats {
11
18
  /** keyword → Map of capabilityId → hit count */
@@ -1 +1 @@
1
- {"version":3,"file":"learning.d.ts","sourceRoot":"","sources":["../../src/learning.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"learning.d.ts","sourceRoot":"","sources":["../../src/learning.ts"],"names":[],"mappings":"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"}
@@ -107,13 +107,19 @@ class LearningIndex {
107
107
  if (!entry.capabilityId)
108
108
  this.statsCounter.outOfScope++;
109
109
  if (entry.capabilityId) {
110
- const words = entry.query.toLowerCase()
111
- .split(/\W+/)
112
- .filter(w => w.length > 2 && !matcher_1.STOPWORDS.has(w));
110
+ // Confidence-weighted contribution — a 95% match contributes 9.
111
+ // more signal than a 51% borderline match. Floor of 0.1 ensures
112
+ // borderline matches still contribute, just proportionally less.
113
+ const weight = Math.max(0.1, entry.confidence / 100);
114
+ // Store weight on the entry so subtract() can reverse the exact amount.
115
+ // Without this, subtract() would have to use a hardcoded estimate (0.5)
116
+ // that causes index drift after pruning high-confidence entries.
117
+ entry.weight = weight;
118
+ const words = (0, matcher_1.tokenize)(entry.query);
113
119
  for (const word of words) {
114
120
  this.index[word] ??= {};
115
121
  this.index[word][entry.capabilityId] =
116
- (this.index[word][entry.capabilityId] ?? 0) + 1;
122
+ (this.index[word][entry.capabilityId] ?? 0) + weight;
117
123
  }
118
124
  }
119
125
  }
@@ -129,14 +135,16 @@ class LearningIndex {
129
135
  return;
130
136
  }
131
137
  // Keyword index cleanup
132
- const words = entry.query.toLowerCase()
133
- .split(/\W+/)
134
- .filter(w => w.length > 2 && !matcher_1.STOPWORDS.has(w));
138
+ const words = (0, matcher_1.tokenize)(entry.query);
135
139
  for (const word of words) {
136
140
  if (!this.index[word])
137
141
  continue;
142
+ // Use the weight stored at record time for exact symmetric subtraction.
143
+ // Fallback recalculates from confidence for entries persisted before the
144
+ // weight field was added (backwards-compatible with older learning.json files).
145
+ const weight = entry.weight ?? Math.max(0.1, entry.confidence / 100);
138
146
  this.index[word][entry.capabilityId] =
139
- (this.index[word][entry.capabilityId] ?? 1) - 1;
147
+ (this.index[word][entry.capabilityId] ?? weight) - weight;
140
148
  if (this.index[word][entry.capabilityId] <= 0) {
141
149
  delete this.index[word][entry.capabilityId];
142
150
  }
@@ -202,8 +210,10 @@ class FileLearningStore {
202
210
  fs.writeFileSync(tmp, payload);
203
211
  fs.renameSync(tmp, this.filePath);
204
212
  }
205
- catch {
206
- // Best-effort in exit handler
213
+ catch (err) {
214
+ // Use process.stderr.write — never console.error in an exit handler,
215
+ // as stdout may already be flushed or closed at this point.
216
+ process.stderr.write(`[capman] Failed to flush learning store to ${this.filePath}: ${err}\n`);
207
217
  }
208
218
  }
209
219
  /**
@@ -236,7 +246,26 @@ class FileLearningStore {
236
246
  const raw = await fs.promises.readFile(this.filePath, 'utf-8');
237
247
  const parsed = JSON.parse(raw);
238
248
  if (parsed && typeof parsed === 'object' && !Array.isArray(parsed) && Array.isArray(parsed.entries)) {
239
- this.entries = parsed.entries;
249
+ // Validate each entry — corrupted entries (null capability, wrong types) must
250
+ // not propagate into the engine where they cause runtime errors deep in matching.
251
+ const validEntries = [];
252
+ let skipped = 0;
253
+ for (const entry of parsed.entries) {
254
+ if (entry !== null && typeof entry === 'object' &&
255
+ typeof entry.query === 'string' &&
256
+ (entry.capabilityId === null || typeof entry.capabilityId === 'string') &&
257
+ typeof entry.confidence === 'number' &&
258
+ typeof entry.resolvedVia === 'string') {
259
+ validEntries.push(entry);
260
+ }
261
+ else {
262
+ skipped++;
263
+ }
264
+ }
265
+ if (skipped > 0) {
266
+ logger_1.logger.warn(`Learning store: skipped ${skipped} invalid entries during load`);
267
+ }
268
+ this.entries = validEntries;
240
269
  this.learningIndex.rebuild(this.entries);
241
270
  logger_1.logger.debug(`Learning store loaded: ${this.entries.length} entries`);
242
271
  }
@@ -291,11 +320,7 @@ class FileLearningStore {
291
320
  // not be persisted to disk under GDPR/CCPA data retention requirements.
292
321
  const sanitized = {
293
322
  ...entry,
294
- query: entry.query
295
- .toLowerCase()
296
- .split(/\W+/)
297
- .filter(w => w.length > 2 && !matcher_1.STOPWORDS.has(w))
298
- .join(' '),
323
+ query: (0, matcher_1.tokenize)(entry.query).join(' '),
299
324
  };
300
325
  this.entries.push(sanitized);
301
326
  this.learningIndex.update(sanitized);
@@ -345,19 +370,15 @@ class MemoryLearningStore {
345
370
  async record(entry) {
346
371
  const sanitized = {
347
372
  ...entry,
348
- query: entry.query
349
- .toLowerCase()
350
- .split(/\W+/)
351
- .filter(w => w.length > 2 && !matcher_1.STOPWORDS.has(w))
352
- .join(' '),
373
+ query: (0, matcher_1.tokenize)(entry.query).join(' '),
353
374
  };
354
375
  this.entries.push(sanitized);
355
376
  this.learningIndex.update(sanitized);
356
377
  if (this.entries.length > MAX_LEARNING_ENTRIES) {
357
378
  const excess = this.entries.length - MAX_LEARNING_ENTRIES;
358
379
  const pruned = this.entries.splice(0, excess);
359
- for (const entry of pruned) {
360
- this.learningIndex.subtract(entry);
380
+ for (const staleEntry of pruned) {
381
+ this.learningIndex.subtract(staleEntry);
361
382
  }
362
383
  }
363
384
  }
@@ -1 +1 @@
1
- {"version":3,"file":"learning.js","sourceRoot":"","sources":["../../src/learning.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"learning.js","sourceRoot":"","sources":["../../src/learning.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAwB;AACxB,2CAA4B;AAE5B,qCAAiC;AACjC,MAAM,oBAAoB,GAAG,MAAM,CAAA;AACnC,uCAA+C;AAE/C,wEAAwE;AACxE,6EAA6E;AAC7E,MAAM,YAAY,GAAG,IAAI,GAAG,EAAqB,CAAA;AAEjD,kEAAkE;AAClE,yEAAyE;AACzE,IAAI,WAAW,GAA2B,IAAI,CAAA;AAC9C,IAAI,cAAc,GAAwB,IAAI,CAAA;AAC9C,IAAI,aAAa,GAAyB,IAAI,CAAA;AAE9C,SAAS,cAAc;IACrB,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QACjC,KAAK,CAAC,SAAS,EAAE,CAAA;IACnB,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB;IAC3B,IAAI,WAAW;QAAE,OAAM,CAAE,qBAAqB;IAC9C,WAAW,GAAM,cAAc,CAAA;IAC/B,cAAc,GAAG,cAAc,CAAA;IAC/B,aAAa,GAAI,cAAc,CAAA;IAC/B,OAAO,CAAC,EAAE,CAAC,MAAM,EAAK,WAAW,CAAC,CAAA;IAClC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;IACrC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAG,aAAa,CAAC,CAAA;AACtC,CAAC;AAED,SAAS,sBAAsB;IAC7B,IAAI,CAAC,WAAW;QAAE,OAAM,CAAO,qBAAqB;IACpD,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC;QAAE,OAAM,CAAE,4BAA4B;IAC/D,OAAO,CAAC,GAAG,CAAC,MAAM,EAAK,WAAW,CAAC,CAAA;IACnC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,cAAe,CAAC,CAAA;IACvC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAG,aAAc,CAAC,CAAA;IACtC,WAAW,GAAM,IAAI,CAAA;IACrB,cAAc,GAAG,IAAI,CAAA;IACrB,aAAa,GAAI,IAAI,CAAA;AACvB,CAAC;AAoDD,iFAAiF;AAEjF,SAAS,sBAAsB,CAC7B,OAAwB,EACxB,KAAa;IAEb,MAAM,MAAM,GAA2B,EAAE,CAAA;IACzC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QACpE,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SAC1B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;SAC7B,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;AACxC,CAAC;AAGD,iFAAiF;AACjF,iDAAiD;AACjD,yEAAyE;AACzE,4DAA4D;AAE5D,MAAM,aAAa;IAAnB;QACE,UAAK,GAAkD,EAAE,CAAA;QACzD,iBAAY,GAAgC;YAC1C,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;SAC5D,CAAA;IA4EH,CAAC;IA1EC,MAAM,CAAC,KAAoB;QACzB,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAA;QAChC,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK;YAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAA;QACjE,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO;YAAE,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAA;QAChE,IAAI,CAAC,KAAK,CAAC,YAAY;YAAY,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAA;QAEjE,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,kEAAkE;YAClE,gEAAgE;YAChE,iEAAiE;YACjE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,CAAA;YACpD,wEAAwE;YACxE,wEAAwE;YACxE,iEAAiE;YACjE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAA;YAErB,MAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;gBACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;oBAClC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAA;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,KAAoB;QAC3B,uDAAuD;QACvD,IAAI,CAAC,YAAY,CAAC,YAAY,GAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,CAAC,CAAC,CAAA;QACjF,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK;YAAI,IAAI,CAAC,YAAY,CAAC,UAAU,GAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,GAAI,CAAC,CAAC,CAAA;QACjH,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO;YAAE,IAAI,CAAC,YAAY,CAAC,SAAS,GAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,GAAK,CAAC,CAAC,CAAA;QACjH,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC,CAAA;YAC5E,OAAM;QACR,CAAC;QAED,wBAAwB;QACxB,MAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,SAAQ;YAC/B,wEAAwE;YACxE,yEAAyE;YACzE,gFAAgF;YAC7E,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,CAAA;YACpE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;gBACpC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAA;YAC5D,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;YAC7C,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,OAAwB;QAC9B,IAAI,CAAC,KAAK,GAAU,EAAE,CAAA;QACtB,IAAI,CAAC,YAAY,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAA;QACnF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,GAAU,EAAE,CAAA;QACtB,IAAI,CAAC,YAAY,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAA;IACrF,CAAC;IAED,QAAQ;QACN,OAAO,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAA;IACrE,CAAC;IAED,QAAQ;QACN,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC;CACF;AAED,iFAAiF;AAEjF,MAAa,iBAAiB;IAU5B,YAAY,QAAQ,GAAG,uBAAuB;QARtC,YAAO,GAAuB,EAAE,CAAA;QAChC,gBAAW,GAAyB,IAAI,CAAA;QACxC,cAAS,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAA;QAC/C,kBAAa,GAAG,IAAI,aAAa,EAAE,CAAA;QACnC,UAAK,GAAyB,KAAK,CAAA;QACnC,cAAS,GAA0C,IAAI,CAAA;QAI7D,MAAM,GAAG,GAAQ,OAAO,CAAC,GAAG,EAAE,CAAA;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QAC5C,MAAM,aAAa,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;QACxD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CACb,2BAA2B,QAAQ,6CAA6C;gBAChF,aAAa,QAAQ,eAAe,GAAG,EAAE,CAC1C,CAAA;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,eAAM,CAAC,IAAI,CAAC,+CAA+C,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QAE7E,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAEpB,oBAAoB,EAAE,CAAA;IAC1B,CAAC;IAEC,SAAS;QACP,uEAAuE;QACvE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACvB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAM;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACvC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACtC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,MAAM,CAAA;YAClC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAC5B,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CACxE,CAAA;YACD,iFAAiF;YACjF,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;YAC9B,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,qEAAqE;YACrE,4DAA4D;YAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,IAAI,CAAC,QAAQ,KAAK,GAAG,IAAI,CAAC,CAAA;QAC/F,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACvB,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;YAClB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QACnB,CAAC;QACD,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACzB,sBAAsB,EAAE,CAAA,CAAE,sCAAsC;IAClE,CAAC;IAEO,IAAI;QACV,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA,CAAE,2BAA2B;gBACpD,MAAM,GAAG,CAAA;YACX,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAEO,KAAK,CAAC,OAAO;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,GAAM,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YACjE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC5B,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpG,8EAA8E;gBAC9E,kFAAkF;gBAClF,MAAM,YAAY,GAAoB,EAAE,CAAA;gBACxC,IAAI,OAAO,GAAG,CAAC,CAAA;gBACf,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnC,IACE,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;wBAC3C,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;wBAC/B,CAAC,KAAK,CAAC,YAAY,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC;wBACvE,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ;wBACpC,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,EACrC,CAAC;wBACD,YAAY,CAAC,IAAI,CAAC,KAAsB,CAAC,CAAA;oBAC3C,CAAC;yBAAM,CAAC;wBACN,OAAO,EAAE,CAAA;oBACX,CAAC;gBACH,CAAC;gBACD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;oBAChB,eAAM,CAAC,IAAI,CAAC,2BAA2B,OAAO,8BAA8B,CAAC,CAAA;gBAC/E,CAAC;gBACD,IAAI,CAAC,OAAO,GAAG,YAAY,CAAA;gBAC3B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBACxC,eAAM,CAAC,KAAK,CAAC,0BAA0B,IAAI,CAAC,OAAO,CAAC,MAAM,UAAU,CAAC,CAAA;YACvE,CAAC;iBAAM,CAAC;gBACR,eAAM,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,QAAQ,+CAA+C,CAAC,CAAA;YAChG,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAA;YAChD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,eAAM,CAAC,IAAI,CAAC,sCAAsC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,eAAe,oBAAoB,CAAC,CAAA;YAClH,CAAC;YACD,6EAA6E;QAC/E,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,SAAS,GAAG,KAAK;QACpC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;gBACrB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;oBAClB,4DAA4D;oBAC5D,IAAI,CAAC,IAAI,EAAE,CAAA;gBACb,CAAC;YACH,CAAC,EAAE,SAAS,CAAC,CAAA;QACf,CAAC;IACH,CAAC;IAEO,IAAI;QACV,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;QAC1D,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAEO,KAAK,CAAC,OAAO;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACvC,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACjD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,MAAM,CAAA;YAClC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CACzB,GAAG,EACH,IAAI,CAAC,SAAS,CAAC;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,EAAE,IAAI,EAAE,CAAC,CAAC,CACZ,CAAA;YACD,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,eAAM,CAAC,IAAI,CAAC,oCAAoC,IAAI,CAAC,QAAQ,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACvH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAoB;QAC/B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QACjB,wDAAwD;QACxD,qEAAqE;QACrE,wEAAwE;QACxE,MAAM,SAAS,GAAkB;YAC/B,GAAG,KAAK;YACR,KAAK,EAAE,IAAA,kBAAQ,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;SACvC,CAAA;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC5B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAEpC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAK,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,oBAAoB,CAAA;YAC3D,MAAM,MAAM,GAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;YAC/C,sFAAsF;YACtF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YACpC,CAAC;YACD,eAAM,CAAC,KAAK,CAAC,yBAAyB,MAAM,yBAAyB,oBAAoB,GAAG,CAAC,CAAA;QAC/F,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QACjB,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QACjB,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAAK,GAAG,CAAC;QAChC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QACjB,OAAO,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACpD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,wEAAwE;QACxE,6BAA6B;QAC7B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACvB,CAAC;QACD,IAAI,CAAC,KAAK,GAAK,KAAK,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;QACjB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAA;QAC1B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;IACnB,CAAC;CACF;AAhND,8CAgNC;AAED,gFAAgF;AAEhF,MAAa,mBAAmB;IAAhC;QACU,YAAO,GAAyB,EAAE,CAAA;QAClC,kBAAa,GAAG,IAAI,aAAa,EAAE,CAAA;IAsC3C,CAAC;IApCD,KAAK,CAAC,MAAM,CAAC,KAAoB;QAC/B,MAAM,SAAS,GAAkB;YAC/B,GAAG,KAAK;YACR,KAAK,EAAE,IAAA,kBAAQ,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;SACvC,CAAA;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC5B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QACpC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,oBAAoB,CAAA;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;YAC7C,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE,CAAC;gBAChC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;YACzC,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAAK,GAAG,CAAC;QAChC,OAAO,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACpD,CAAC;IAED,KAAK,CAAC,KAAK;QACP,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;QACjB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,OAAO;QACX,0DAA0D;IAC5D,CAAC;CACF;AAxCH,kDAwCG"}
@@ -3,7 +3,89 @@ export declare class LLMParseError extends Error {
3
3
  constructor(message: string);
4
4
  }
5
5
  export declare const STOPWORDS: Set<string>;
6
+ /**
7
+ * Regex patterns for common param types.
8
+ * Used when a CapabilityParam has `pattern` set to a named type.
9
+ */
10
+ export declare const TYPE_PATTERNS: Record<string, RegExp>;
11
+ /**
12
+ * Simplified suffix-stripping stemmer — 10 most common English morphological
13
+ * patterns covering ~80% of benefit at ~25% the complexity of Porter stemmer.
14
+ * Applied symmetrically to both query words and capability index words.
15
+ */
16
+ export declare function stem(word: string): string;
17
+ /**
18
+ * Shared tokenizer — used by scorer, learning index, and boost system.
19
+ * Applies stopword filtering AND stemming symmetrically.
20
+ * Any site that tokenizes text for matching MUST use this function
21
+ * to avoid silent mismatches between query and index tokens.
22
+ */
23
+ export declare function tokenize(text: string): string[];
24
+ export interface BM25Index {
25
+ /** Document frequency — how many capabilities contain each term */
26
+ df: Record<string, number>;
27
+ /** Average field length per field type */
28
+ avgdl: {
29
+ examples: number;
30
+ description: number;
31
+ name: number;
32
+ };
33
+ /** Total number of capabilities */
34
+ N: number;
35
+ /** Bigram sets per capability — post-stopword, post-stem, examples only */
36
+ bigrams: Record<string, Set<string>>;
37
+ /**
38
+ * Pre-computed token arrays per capability, per field.
39
+ * Avoids re-tokenizing capability text on every scoreCapability() call.
40
+ * At 50 capabilities × 100 req/s, that is 5,000 redundant tokenization
41
+ * calls per second — each involving stem() and split/filter chains.
42
+ */
43
+ capTokens: Record<string, {
44
+ examples: string[];
45
+ description: string[];
46
+ name: string[];
47
+ }>;
48
+ }
49
+ /** Build a BM25 index over all capabilities. Call once at manifest load. */
50
+ export declare function buildBM25Index(capabilities: Capability[]): BM25Index;
51
+ /**
52
+ * BM25 scoring with field weights.
53
+ * k1 = 1.5 (TF saturation), b = 0.75 (length normalization)
54
+ * Field weights: examples 0.6, description 0.3, name 0.1
55
+ */
56
+ export declare function scoreCapability(qWordSet: Set<string>, cap: Capability, index: BM25Index, k1?: number, b?: number): number;
57
+ /**
58
+ * Extracts bigrams from a token array as "token1__token2" strings.
59
+ * Input must already be post-stopword and post-stem (use tokenize() first).
60
+ */
61
+ export declare function extractBigrams(tokens: string[]): Set<string>;
62
+ /**
63
+ * Returns a sub-manifest containing only capabilities that match ALL provided tags.
64
+ * Capabilities without tags are excluded when tags filter is active.
65
+ * Enables token-efficient LLM prompts for large manifests:
66
+ *
67
+ * @example
68
+ * // Only send order-related capabilities to LLM
69
+ * const orderManifest = filterByTags(manifest, ['orders'])
70
+ * const result = await matchWithLLM(query, orderManifest, { llm })
71
+ *
72
+ * @example
73
+ * // Match by any of multiple tags (union) — call filterByTags per tag and merge
74
+ * const ordersOrPayments = [
75
+ * ...filterByTags(manifest, ['orders']).capabilities,
76
+ * ...filterByTags(manifest, ['payments']).capabilities,
77
+ * ]
78
+ */
79
+ export declare function filterByTags(manifest: Manifest, tags: string[]): Manifest;
6
80
  export declare function resolverToIntent(cap: Capability): MatchResult['intent'];
81
+ /**
82
+ * Strips characters that could break LLM prompt structure from
83
+ * capability field values before injection into the system prompt.
84
+ * Removes control characters, newlines, delimiter sequences, and braces
85
+ * anywhere in the string (not just at line starts) to resist prompt injection
86
+ * from third-party OpenAPI spec content ingested via parseOpenAPI().
87
+ */
88
+ export declare function sanitizeForPrompt(value: string, maxLen: number): string;
7
89
  /**
8
90
  * Extracts parameter values from a user query using keyword heuristics.
9
91
  *
@@ -22,7 +104,17 @@ export declare function extractParams(query: string, cap: Capability): Record<st
22
104
  export interface MatchOptions {
23
105
  fuzzyMatch?: boolean;
24
106
  fuzzyThreshold?: number;
107
+ bm25Index?: BM25Index;
108
+ bm25K1?: number;
109
+ bm25B?: number;
110
+ bm25Ceiling?: number;
25
111
  }
112
+ /**
113
+ * Calibrates a BM25 normalization ceiling from the manifest.
114
+ * Scores each capability against all of its own examples and returns the maximum.
115
+ * Call once at manifest load time — O(capabilities × examples).
116
+ */
117
+ export declare function calibrateCeiling(capabilities: Capability[], bm25Index: BM25Index, k1: number, b: number): number;
26
118
  export declare function match(query: string, manifest: Manifest, options?: MatchOptions): MatchResult;
27
119
  export interface LLMMatcherOptions {
28
120
  llm: (prompt: string) => Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"matcher.d.ts","sourceRoot":"","sources":["../../src/matcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAkB,MAAM,SAAS,CAAA;AAMhF,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM;CAI5B;AAED,eAAO,MAAM,SAAS,aAUpB,CAAA;AA8CF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,CAMvE;AAiBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAmF3F;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAM,OAAO,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,wBAAgB,KAAK,CACnB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,YAAiB,GACzB,WAAW,CAwHb;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CACzC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,CA+GpB"}
1
+ {"version":3,"file":"matcher.d.ts","sourceRoot":"","sources":["../../src/matcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAkB,MAAM,SAAS,CAAA;AAOhF,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM;CAI5B;AAED,eAAO,MAAM,SAAS,aAUpB,CAAA;AAIF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKhD,CAAA;AA4DD;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqBzC;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAM/C;AAID,MAAM,WAAW,SAAS;IACxB,mEAAmE;IACnE,EAAE,EAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,0CAA0C;IAC1C,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9D,mCAAmC;IACnC,CAAC,EAAM,MAAM,CAAA;IACb,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IACpC;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAA;CACzF;AAED,4EAA4E;AAC5E,wBAAgB,cAAc,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,SAAS,CAqDpE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EACrB,GAAG,EAAO,UAAU,EACpB,KAAK,EAAK,SAAS,EACnB,EAAE,SAAM,EACR,CAAC,SAAQ,GACR,MAAM,CAiBR;AAmCD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAM5D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,CASzE;AAgBD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,CAMvE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAWvE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAgIvF;AAEL,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAM,OAAO,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,SAAS,CAAC,EAAO,SAAS,CAAA;IAC1B,MAAM,CAAC,EAAU,MAAM,CAAA;IACvB,KAAK,CAAC,EAAW,MAAM,CAAA;IACvB,WAAW,CAAC,EAAK,MAAM,CAAA;CACxB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,UAAU,EAAE,EAC1B,SAAS,EAAE,SAAS,EACpB,EAAE,EAAE,MAAM,EACV,CAAC,EAAE,MAAM,GACR,MAAM,CAWR;AAED,wBAAgB,KAAK,CACnB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,YAAiB,GACzB,WAAW,CAwIb;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CACzC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,CAqHpB"}