capman 0.5.0 → 0.5.2
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.
- package/CHANGELOG.md +55 -0
- package/bin/lib/cmd-demo.js +2 -2
- package/dist/cjs/cache.d.ts +6 -4
- package/dist/cjs/cache.d.ts.map +1 -1
- package/dist/cjs/cache.js +44 -13
- package/dist/cjs/cache.js.map +1 -1
- package/dist/cjs/engine.d.ts +23 -1
- package/dist/cjs/engine.d.ts.map +1 -1
- package/dist/cjs/engine.js +168 -165
- package/dist/cjs/engine.js.map +1 -1
- package/dist/cjs/index.d.ts +3 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/learning.d.ts +2 -1
- package/dist/cjs/learning.d.ts.map +1 -1
- package/dist/cjs/learning.js +104 -20
- package/dist/cjs/learning.js.map +1 -1
- package/dist/cjs/matcher.d.ts +15 -1
- package/dist/cjs/matcher.d.ts.map +1 -1
- package/dist/cjs/matcher.js +45 -14
- package/dist/cjs/matcher.js.map +1 -1
- package/dist/cjs/parser.js +16 -2
- package/dist/cjs/parser.js.map +1 -1
- package/dist/cjs/resolver.d.ts.map +1 -1
- package/dist/cjs/resolver.js +32 -6
- package/dist/cjs/resolver.js.map +1 -1
- package/dist/cjs/schema.d.ts +14 -14
- package/dist/cjs/schema.d.ts.map +1 -1
- package/dist/cjs/schema.js +4 -2
- package/dist/cjs/schema.js.map +1 -1
- package/dist/cjs/types.d.ts +1 -0
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/cache.d.ts +6 -4
- package/dist/esm/cache.js +44 -13
- package/dist/esm/engine.d.ts +23 -1
- package/dist/esm/engine.js +169 -166
- package/dist/esm/index.d.ts +3 -2
- package/dist/esm/index.js +1 -0
- package/dist/esm/learning.d.ts +2 -1
- package/dist/esm/learning.js +104 -20
- package/dist/esm/matcher.d.ts +15 -1
- package/dist/esm/matcher.js +43 -13
- package/dist/esm/parser.js +16 -2
- package/dist/esm/resolver.js +32 -6
- package/dist/esm/schema.d.ts +14 -14
- package/dist/esm/schema.js +4 -2
- package/dist/esm/types.d.ts +1 -0
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,61 @@ All notable changes to capman are documented here.
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
## [0.5.2] — 2026-04-20
|
|
8
|
+
### Fixed
|
|
9
|
+
|
|
10
|
+
**Critical:**
|
|
11
|
+
- `[from_session]` sentinel string replaced with `null` in `extractParams()` — was leaking literal `[from_session]` into API URLs and POST request bodies
|
|
12
|
+
- `resolveApi()` POST body now strips null params — session values that weren't injected no longer appear as `null` in request bodies
|
|
13
|
+
- `FileCache` and `FileLearningStore` constructors now validate path stays within working directory — prevents path traversal via caller-supplied `filePath`
|
|
14
|
+
- `FileCache.get()` no longer writes to disk on every cache hit — was triggering full JSON rewrite per request under any real load
|
|
15
|
+
- Cache hits now re-extract params from the current query — previously re-served `extractedParams` from the original cached query, leaking one user's param values to another
|
|
16
|
+
|
|
17
|
+
**High:**
|
|
18
|
+
- Query length and type guards added to `ask()` and `explain()` — throws `TypeError` for non-string input, `RangeError` for queries over 1000 characters
|
|
19
|
+
- `FileCache.load()` now normalizes keys on read — prevents duplicate entries from manual edits or older versions accumulating silently
|
|
20
|
+
- `matchWithLLM` now returns all capabilities as candidates with keyword scores as baseline — previously returned only the LLM winner, making learning boost unable to surface alternatives
|
|
21
|
+
- Manifest descriptions truncated to 200 chars and examples to 100 chars in LLM prompt — prevents context window overflow and reduces injection surface from third-party OpenAPI specs
|
|
22
|
+
- Zod schema now enforces `description` max 500 chars and `examples` max 200 chars per entry
|
|
23
|
+
- Template substitution uses `replaceAll` — `String.replace()` only replaced the first occurrence of a `{param}` placeholder, leaving duplicates unsubstituted
|
|
24
|
+
- TypeScript target bumped to ES2021 — enables `replaceAll`, aligns with minimum supported Node version
|
|
25
|
+
|
|
26
|
+
**Medium:**
|
|
27
|
+
- `MemoryLearningStore.rebuildIndex()` dead code removed — was defined but unreachable since `MemoryLearningStore` has no `load()` method
|
|
28
|
+
- `loadSpec()` in parser now uses `fs.promises.readFile` — was blocking event loop with synchronous `readFileSync` in an async function
|
|
29
|
+
- Raw query text no longer stored verbatim in learning entries — tokenized to keywords only before persisting, eliminates PII (emails, names, IDs) from `.capman/learning.json`
|
|
30
|
+
- `resolveApi()` JSDoc documents parallel execution and no-rollback behavior for multi-endpoint capabilities
|
|
31
|
+
- Version comparison now parses major/minor as integers — string comparison (`"0.10" > "0.9"`) is lexicographic and incorrect
|
|
32
|
+
|
|
33
|
+
### Tests
|
|
34
|
+
- 87 tests passing
|
|
35
|
+
|
|
36
|
+
## [0.5.1] — 2026-04-18
|
|
37
|
+
### Fixed
|
|
38
|
+
|
|
39
|
+
**Critical:**
|
|
40
|
+
- `getStats()` and `getIndex()` now return deep clones of the internal index — callers can no longer corrupt the learning store by mutating the returned object
|
|
41
|
+
- `FileCache` and `FileLearningStore` saves are now serialized through a promise queue — concurrent writes no longer silently drop entries via last-write-wins
|
|
42
|
+
- `clear()` now resets the incremental index and stats counters in both stores — previously left stale boost data after clearing
|
|
43
|
+
|
|
44
|
+
**High:**
|
|
45
|
+
- Session params (`source: 'session'`) no longer leak into API query strings — only injected when the param name appears as a `{template}` in the path
|
|
46
|
+
- `MemoryCache` and `FileCache` now use LRU eviction — previously used FIFO, evicting frequently-accessed entries ahead of cold ones
|
|
47
|
+
- Tiebreak logic in boost corrected — `b.matched` now correctly preserves original winner on tied scores (was `a.matched`, only worked when winner was first in array)
|
|
48
|
+
- LLM error logging now uses `err.message` instead of `${err}` — prevents potential API key exposure from SDK errors that embed auth headers in error objects
|
|
49
|
+
|
|
50
|
+
**Medium:**
|
|
51
|
+
- `rebuildIndex()` after pruning replaced with `subtractFromIndex()` — O(pruned × w) instead of O(n × w), avoids full index rebuild at the 10k entry cap
|
|
52
|
+
- `ask()` and `explain()` matching dispatch unified into `_runMatch()` — eliminates 60 lines of duplicated mode-switching logic
|
|
53
|
+
- Fallback param denylist extended — category nouns like `"orders"`, `"data"`, `"results"`, `"items"` no longer produce junk URLs
|
|
54
|
+
- File write errors now include the actual error message in the log — was silently swallowing `ENOSPC`, `EACCES` etc.
|
|
55
|
+
- `loadSpec()` fetch in parser now has a 10s timeout with `AbortController` — previously hung indefinitely on unresponsive URLs
|
|
56
|
+
- Cache entries now support optional TTL via `cacheTtlMs` in `EngineOptions` — stale entries from removed capabilities are expired on read
|
|
57
|
+
- `matchWithLLM` JSDoc documents the manifest injection surface — capability descriptions and examples are verbatim in the LLM prompt
|
|
58
|
+
|
|
59
|
+
### Tests
|
|
60
|
+
- 82 tests passing
|
|
61
|
+
|
|
7
62
|
## [0.5.0] — 2026-04-15
|
|
8
63
|
### Added
|
|
9
64
|
- Learning index is now incremental — `record()` updates the index in O(w) per entry instead of rebuilding from scratch on every `getStats()` call. Eliminates O(n) CPU spike on every query under load.
|
package/bin/lib/cmd-demo.js
CHANGED
|
@@ -117,13 +117,13 @@ module.exports = function cmdDemo() {
|
|
|
117
117
|
const endpoint = result.capability.resolver.endpoints[0]
|
|
118
118
|
let p = endpoint.path
|
|
119
119
|
for (const [k, v] of Object.entries(result.extractedParams)) {
|
|
120
|
-
if (v) p = p.
|
|
120
|
+
if (v) p = p.replaceAll(`{${k}}`, String(v))
|
|
121
121
|
}
|
|
122
122
|
actionLine = `${endpoint.method} ${config.baseUrl}${p}`
|
|
123
123
|
} else if (result.capability.resolver.type === 'nav') {
|
|
124
124
|
let dest = result.capability.resolver.destination
|
|
125
125
|
for (const [k, v] of Object.entries(result.extractedParams)) {
|
|
126
|
-
if (v) dest = dest.
|
|
126
|
+
if (v) dest = dest.replaceAll(`{${k}}`, String(v))
|
|
127
127
|
}
|
|
128
128
|
actionLine = `navigate → ${dest}`
|
|
129
129
|
}
|
package/dist/cjs/cache.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export interface CacheEntry {
|
|
|
6
6
|
hits: number;
|
|
7
7
|
}
|
|
8
8
|
export interface CacheStore {
|
|
9
|
-
get(key: string): Promise<CacheEntry | null>;
|
|
9
|
+
get(key: string, ttlMs?: number): Promise<CacheEntry | null>;
|
|
10
10
|
set(key: string, result: MatchResult): Promise<void>;
|
|
11
11
|
clear(): Promise<void>;
|
|
12
12
|
size(): Promise<number>;
|
|
@@ -21,7 +21,7 @@ export declare function normalizeQuery(query: string): string;
|
|
|
21
21
|
export declare function buildCacheKey(query: string, capabilityId: string | null, extractedParams: Record<string, string | null>): string;
|
|
22
22
|
export declare class MemoryCache implements CacheStore {
|
|
23
23
|
private store;
|
|
24
|
-
get(key: string): Promise<CacheEntry | null>;
|
|
24
|
+
get(key: string, ttlMs?: number): Promise<CacheEntry | null>;
|
|
25
25
|
set(key: string, result: MatchResult): Promise<void>;
|
|
26
26
|
clear(): Promise<void>;
|
|
27
27
|
size(): Promise<number>;
|
|
@@ -35,7 +35,7 @@ export declare class FileCache implements CacheStore {
|
|
|
35
35
|
private load;
|
|
36
36
|
private save;
|
|
37
37
|
private _doSave;
|
|
38
|
-
get(key: string): Promise<CacheEntry | null>;
|
|
38
|
+
get(key: string, ttlMs?: number): Promise<CacheEntry | null>;
|
|
39
39
|
set(key: string, result: MatchResult): Promise<void>;
|
|
40
40
|
clear(): Promise<void>;
|
|
41
41
|
size(): Promise<number>;
|
|
@@ -44,9 +44,11 @@ export declare class ComboCache implements CacheStore {
|
|
|
44
44
|
private memory;
|
|
45
45
|
private file;
|
|
46
46
|
constructor(filePath?: string);
|
|
47
|
-
get(key: string): Promise<CacheEntry | null>;
|
|
47
|
+
get(key: string, ttlMs?: number): Promise<CacheEntry | null>;
|
|
48
48
|
set(key: string, result: MatchResult): Promise<void>;
|
|
49
49
|
clear(): Promise<void>;
|
|
50
|
+
/** Returns the file-side entry count, not total unique entries across both stores.
|
|
51
|
+
* Memory may have additional promoted entries not reflected here. */
|
|
50
52
|
size(): Promise<number>;
|
|
51
53
|
}
|
|
52
54
|
//# sourceMappingURL=cache.d.ts.map
|
package/dist/cjs/cache.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/cache.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAK1C,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,WAAW,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAID,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/cache.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAK1C,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,WAAW,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAID,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;IAC5D,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;CACxB;AAID,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;;;GAKG;AAEH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAC7C,MAAM,CAQR;AAOD,qBAAa,WAAY,YAAW,UAAU;IAC5C,OAAO,CAAC,KAAK,CAAgC;IAEvC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAiB5D,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAepD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IACtB,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;CAC9B;AAMD,qBAAa,SAAU,YAAW,UAAU;IAC1C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,MAAM,CAAoC;IAClD,OAAO,CAAC,SAAS,CAA6C;gBAElD,QAAQ,SAAuB;YAc7B,IAAI;IAwBlB,OAAO,CAAC,IAAI;YAKE,OAAO;IAaf,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAqB5D,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;CAI9B;AAID,qBAAa,UAAW,YAAW,UAAU;IAC3C,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,IAAI,CAAW;gBAEX,QAAQ,SAAuB;IAKrC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAY5D,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B;0EACsE;IAChE,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;CAG9B"}
|
package/dist/cjs/cache.js
CHANGED
|
@@ -65,10 +65,17 @@ class MemoryCache {
|
|
|
65
65
|
constructor() {
|
|
66
66
|
this.store = new Map();
|
|
67
67
|
}
|
|
68
|
-
async get(key) {
|
|
68
|
+
async get(key, ttlMs) {
|
|
69
69
|
const entry = this.store.get(key);
|
|
70
70
|
if (entry) {
|
|
71
|
+
if (ttlMs && Date.now() - new Date(entry.cachedAt).getTime() > ttlMs) {
|
|
72
|
+
this.store.delete(key);
|
|
73
|
+
logger_1.logger.debug(`Cache entry expired (memory): "${key}"`);
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
71
76
|
entry.hits++;
|
|
77
|
+
this.store.delete(key);
|
|
78
|
+
this.store.set(key, entry);
|
|
72
79
|
logger_1.logger.debug(`Cache hit (memory): "${key}"`);
|
|
73
80
|
return entry;
|
|
74
81
|
}
|
|
@@ -100,7 +107,14 @@ class FileCache {
|
|
|
100
107
|
this.store = new Map();
|
|
101
108
|
this.loaded = false;
|
|
102
109
|
this.saveQueue = Promise.resolve();
|
|
103
|
-
|
|
110
|
+
const cwd = process.cwd();
|
|
111
|
+
const resolved = path.resolve(cwd, filePath);
|
|
112
|
+
const allowedPrefix = cwd === '/' ? '/' : cwd + path.sep;
|
|
113
|
+
if (!resolved.startsWith(allowedPrefix)) {
|
|
114
|
+
throw new Error(`FileCache path "${filePath}" resolves outside the working directory.\n` +
|
|
115
|
+
`Resolved: ${resolved}\nAllowed: ${cwd}`);
|
|
116
|
+
}
|
|
117
|
+
this.filePath = resolved;
|
|
104
118
|
logger_1.logger.info(`FileCache initialized — writing to: ${this.filePath}`);
|
|
105
119
|
}
|
|
106
120
|
async load() {
|
|
@@ -110,7 +124,14 @@ class FileCache {
|
|
|
110
124
|
const raw = await fs.promises.readFile(this.filePath, 'utf-8');
|
|
111
125
|
const parsed = JSON.parse(raw);
|
|
112
126
|
if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
|
|
113
|
-
|
|
127
|
+
// Normalize keys on load — prevents duplicate entries from older versions,
|
|
128
|
+
// manual edits, or any path that bypassed normalizeQuery() on write.
|
|
129
|
+
// e.g. "Show me articles" and "show me articles" collapse to the same key.
|
|
130
|
+
const normalized = new Map();
|
|
131
|
+
for (const [k, v] of Object.entries(parsed)) {
|
|
132
|
+
normalized.set(normalizeQuery(k), v);
|
|
133
|
+
}
|
|
134
|
+
this.store = normalized;
|
|
114
135
|
logger_1.logger.debug(`File cache loaded: ${this.store.size} entries`);
|
|
115
136
|
}
|
|
116
137
|
else {
|
|
@@ -136,15 +157,24 @@ class FileCache {
|
|
|
136
157
|
logger_1.logger.warn(`Failed to save file cache to ${this.filePath}: ${err instanceof Error ? err.message : String(err)}`);
|
|
137
158
|
}
|
|
138
159
|
}
|
|
139
|
-
async get(key) {
|
|
160
|
+
async get(key, ttlMs) {
|
|
140
161
|
await this.load();
|
|
141
162
|
const entry = this.store.get(key);
|
|
142
|
-
if (entry)
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
163
|
+
if (!entry)
|
|
164
|
+
return null;
|
|
165
|
+
if (ttlMs && Date.now() - new Date(entry.cachedAt).getTime() > ttlMs) {
|
|
166
|
+
this.store.delete(key);
|
|
167
|
+
await this.save(); // eviction must be persisted
|
|
168
|
+
logger_1.logger.debug(`Cache entry expired (file): "${key}"`);
|
|
169
|
+
return null;
|
|
146
170
|
}
|
|
147
|
-
|
|
171
|
+
entry.hits++;
|
|
172
|
+
this.store.delete(key); // reinsert at end for LRU ordering
|
|
173
|
+
this.store.set(key, entry);
|
|
174
|
+
// hits counter is in-memory only — not saved on read
|
|
175
|
+
// saves only happen on set() and eviction to avoid full file rewrite per request
|
|
176
|
+
logger_1.logger.debug(`Cache hit (file): "${key}"`);
|
|
177
|
+
return entry;
|
|
148
178
|
}
|
|
149
179
|
async set(key, result) {
|
|
150
180
|
await this.load();
|
|
@@ -180,14 +210,13 @@ class ComboCache {
|
|
|
180
210
|
this.memory = new MemoryCache();
|
|
181
211
|
this.file = new FileCache(filePath);
|
|
182
212
|
}
|
|
183
|
-
async get(key) {
|
|
184
|
-
const memHit = await this.memory.get(key);
|
|
213
|
+
async get(key, ttlMs) {
|
|
214
|
+
const memHit = await this.memory.get(key, ttlMs);
|
|
185
215
|
if (memHit)
|
|
186
216
|
return memHit;
|
|
187
|
-
const fileHit = await this.file.get(key);
|
|
217
|
+
const fileHit = await this.file.get(key, ttlMs);
|
|
188
218
|
if (fileHit) {
|
|
189
219
|
await this.memory.set(key, fileHit.result);
|
|
190
|
-
logger_1.logger.debug(`Cache promoted to memory: "${key}"`);
|
|
191
220
|
return fileHit;
|
|
192
221
|
}
|
|
193
222
|
return null;
|
|
@@ -204,6 +233,8 @@ class ComboCache {
|
|
|
204
233
|
this.file.clear(),
|
|
205
234
|
]);
|
|
206
235
|
}
|
|
236
|
+
/** Returns the file-side entry count, not total unique entries across both stores.
|
|
237
|
+
* Memory may have additional promoted entries not reflected here. */
|
|
207
238
|
async size() {
|
|
208
239
|
return this.file.size();
|
|
209
240
|
}
|
package/dist/cjs/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/cache.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,wCAEC;AASD,sCAYC;AAhDD,uCAAwB;AACxB,2CAA4B;AAE5B,qCAAiC;AAoBjC,iFAAiF;AAEjF,SAAgB,cAAc,CAAC,KAAa;IAC1C,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AACxD,CAAC;AAED;;;;;GAKG;AAEH,SAAgB,aAAa,CAC3B,KAAa,EACb,YAA2B,EAC3B,eAA8C;IAE9C,IAAI,CAAC,YAAY;QAAE,OAAO,SAAS,cAAc,CAAC,KAAK,CAAC,EAAE,CAAA;IAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;SAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;SAC7B,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;SAC5B,IAAI,CAAC,GAAG,CAAC,CAAA;IACZ,OAAO,OAAO,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;AAC/D,CAAC;AAED,iFAAiF;AAEjF,MAAM,gBAAgB,GAAG,GAAG,CAAA;AAG5B,MAAa,WAAW;IAAxB;QACU,UAAK,GAAG,IAAI,GAAG,EAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/cache.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/engine.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { LLMMatcherOptions } from './matcher';
|
|
|
3
3
|
import type { ResolveOptions, AuthContext } from './resolver';
|
|
4
4
|
import type { CacheStore } from './cache';
|
|
5
5
|
import type { LearningStore } from './learning';
|
|
6
|
-
import type { MatchMode } from './
|
|
6
|
+
import type { MatchMode } from './types';
|
|
7
7
|
/**
|
|
8
8
|
* Options for constructing a CapmanEngine instance.
|
|
9
9
|
*
|
|
@@ -47,6 +47,19 @@ export interface EngineOptions {
|
|
|
47
47
|
headers?: Record<string, string>;
|
|
48
48
|
/** Confidence threshold for keyword matcher (default: 50) */
|
|
49
49
|
threshold?: number;
|
|
50
|
+
/**
|
|
51
|
+
* Optional TTL for cache entries in milliseconds.
|
|
52
|
+
* Entries older than this are treated as misses and evicted on read.
|
|
53
|
+
* Default: no expiry.
|
|
54
|
+
*
|
|
55
|
+
* Useful when capabilities are frequently updated or removed — ensures
|
|
56
|
+
* stale entries don't persist indefinitely after a manifest change.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* // Expire cache entries after 1 hour
|
|
60
|
+
* new CapmanEngine({ manifest, cacheTtlMs: 60 * 60 * 1000 })
|
|
61
|
+
*/
|
|
62
|
+
cacheTtlMs?: number;
|
|
50
63
|
/**
|
|
51
64
|
* Maximum LLM calls per minute in balanced/accurate mode.
|
|
52
65
|
* After limit is hit, falls back to keyword result.
|
|
@@ -80,6 +93,8 @@ export interface EngineResult {
|
|
|
80
93
|
trace: ExecutionTrace;
|
|
81
94
|
}
|
|
82
95
|
export declare class CapmanEngine {
|
|
96
|
+
/** Maximum allowed query length in characters. Queries exceeding this throw RangeError. */
|
|
97
|
+
static readonly MAX_QUERY_LENGTH = 1000;
|
|
83
98
|
private manifest;
|
|
84
99
|
private mode;
|
|
85
100
|
private llm?;
|
|
@@ -89,6 +104,7 @@ export declare class CapmanEngine {
|
|
|
89
104
|
private auth?;
|
|
90
105
|
private headers?;
|
|
91
106
|
private threshold;
|
|
107
|
+
private cacheTtlMs;
|
|
92
108
|
private maxLLMCallsPerMinute;
|
|
93
109
|
private llmCooldownMs;
|
|
94
110
|
private llmCircuitBreakerThreshold;
|
|
@@ -158,6 +174,12 @@ export declare class CapmanEngine {
|
|
|
158
174
|
* Records a failed LLM call — may open the circuit breaker.
|
|
159
175
|
*/
|
|
160
176
|
private recordLLMFailure;
|
|
177
|
+
/**
|
|
178
|
+
* Runs the matching pipeline for a query — shared by ask() and explain().
|
|
179
|
+
* Handles cheap / balanced / accurate mode dispatch and LLM rate limiting.
|
|
180
|
+
* Returns the match result and which resolver was used.
|
|
181
|
+
*/
|
|
182
|
+
private _runMatch;
|
|
161
183
|
/**
|
|
162
184
|
* Applies learning boost to a MatchResult and returns the updated result.
|
|
163
185
|
* Shared by ask() and explain() to avoid logic divergence.
|
package/dist/cjs/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAa,aAAa,EAA4F,MAAM,SAAS,CAAA;AACvM,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,YAAY,CAAA;AAK7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAMxC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,QAAQ,EAAE,QAAQ,CAAA;IAClB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,kDAAkD;IAClD,GAAG,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC9B,0FAA0F;IAC1F,KAAK,CAAC,EAAE,UAAU,GAAG,KAAK,CAAA;IAC1B,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,aAAa,GAAG,KAAK,CAAA;IAChC,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mDAAmD;IACnD,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
|