capman 0.4.3 → 0.4.5

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.
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolverToIntent = resolverToIntent;
3
4
  exports.match = match;
4
5
  exports.matchWithLLM = matchWithLLM;
5
6
  const logger_1 = require("./logger");
@@ -80,9 +81,6 @@ function extractParams(query, cap) {
80
81
  // e.g. "profile for johndoe" → johndoe
81
82
  // "articles by jane" → jane
82
83
  // "tag javascript" → javascript
83
- // Use param name and description as hints for what to look for
84
- const paramHints = [param.name, ...param.description.toLowerCase().split(/\s+/)]
85
- .filter(w => w.length > 2);
86
84
  // Try keyword-based extraction first
87
85
  const keywords = [
88
86
  `for `, `by `, `about `, `named `, `called `,
@@ -214,12 +212,17 @@ async function matchWithLLM(query, manifest, options) {
214
212
  const capability = isOOS
215
213
  ? null
216
214
  : manifest.capabilities.find(c => c.id === parsed.matched_capability) ?? null;
215
+ // If LLM returned an unknown capability ID, treat as out of scope
216
+ const effectivelyOOS = isOOS || capability === null;
217
+ if (!isOOS && capability === null) {
218
+ logger_1.logger.warn(`LLM returned unknown capability ID: "${parsed.matched_capability}" — treating as out_of_scope`);
219
+ }
217
220
  return {
218
221
  capability,
219
- confidence: parsed.confidence,
220
- intent: isOOS ? 'out_of_scope' : parsed.intent,
222
+ confidence: effectivelyOOS ? 0 : parsed.confidence,
223
+ intent: effectivelyOOS ? 'out_of_scope' : parsed.intent,
221
224
  extractedParams: parsed.extracted_params ?? {},
222
- reasoning: parsed.reasoning,
225
+ reasoning: parsed.reasoning ?? 'No reasoning provided',
223
226
  candidates: capability ? [{
224
227
  capabilityId: capability.id,
225
228
  score: parsed.confidence,
@@ -1 +1 @@
1
- {"version":3,"file":"matcher.js","sourceRoot":"","sources":["../../src/matcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"matcher.js","sourceRoot":"","sources":["../../src/matcher.ts"],"names":[],"mappings":"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"}
@@ -281,7 +281,8 @@ function toSnakeCase(str) {
281
281
  .replace(/[-\s]+/g, '_')
282
282
  .toLowerCase()
283
283
  .replace(/^_/, '')
284
- .replace(/__+/g, '_');
284
+ .replace(/__+/g, '_')
285
+ .replace(/_$/, '');
285
286
  }
286
287
  function toHumanName(id) {
287
288
  return id
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"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"}
@@ -46,7 +46,7 @@ async function resolve(matchResult, params = {}, options = {}) {
46
46
  // ── Session param injection ───────────────────────────────────────────────
47
47
  // Inject auth.userId into any params marked as source: 'session'
48
48
  const enrichedParams = { ...params };
49
- if (options.auth?.userId) {
49
+ if (options.auth?.userId !== undefined && options.auth.userId !== '') {
50
50
  for (const param of capability.params) {
51
51
  if (param.source === 'session') {
52
52
  enrichedParams[param.name] = options.auth.userId;
@@ -175,7 +175,9 @@ async function resolveApi(resolver, params, options) {
175
175
  function resolveNav(resolver, params) {
176
176
  let destination = resolver.destination;
177
177
  for (const [key, value] of Object.entries(params)) {
178
- destination = destination.replace(`{${key}}`, String(value));
178
+ if (value === null || value === undefined)
179
+ continue;
180
+ destination = destination.replace(`{${key}}`, encodeURIComponent(String(value)));
179
181
  }
180
182
  return { success: true, resolverType: 'nav', navTarget: destination };
181
183
  }
@@ -183,6 +185,8 @@ function buildUrl(baseUrl, urlPath, params) {
183
185
  let resolved = urlPath;
184
186
  const unused = {};
185
187
  for (const [key, value] of Object.entries(params)) {
188
+ if (value === null || value === undefined)
189
+ continue; // never write null into URLs
186
190
  if (resolved.includes(`{${key}}`)) {
187
191
  resolved = resolved.replace(`{${key}}`, encodeURIComponent(String(value)));
188
192
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/resolver.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.4.3";
1
+ export declare const VERSION = "0.4.5";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
4
  // Auto-generated by scripts/version.js — do not edit manually
5
- exports.VERSION = '0.4.3';
5
+ exports.VERSION = '0.4.5';
6
6
  //# sourceMappingURL=version.js.map
package/dist/esm/cache.js CHANGED
@@ -67,8 +67,14 @@ export class FileCache {
67
67
  return;
68
68
  try {
69
69
  const raw = await fs.promises.readFile(this.filePath, 'utf-8');
70
- this.store = new Map(Object.entries(JSON.parse(raw)));
71
- logger.debug(`File cache loaded: ${this.store.size} entries`);
70
+ const parsed = JSON.parse(raw);
71
+ if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
72
+ this.store = new Map(Object.entries(parsed));
73
+ logger.debug(`File cache loaded: ${this.store.size} entries`);
74
+ }
75
+ else {
76
+ logger.warn(`File cache at ${this.filePath} contained unexpected format — starting fresh`);
77
+ }
72
78
  }
73
79
  catch {
74
80
  // File doesn't exist yet — start fresh
@@ -2,7 +2,7 @@ import type { Manifest, MatchResult, ResolveResult, ExecutionTrace, ExplainResul
2
2
  import type { LLMMatcherOptions } from './matcher';
3
3
  import type { ResolveOptions, AuthContext } from './resolver';
4
4
  import type { CacheStore } from './cache';
5
- import type { LearningStore } from './learning';
5
+ import type { LearningStore, KeywordStats } from './learning';
6
6
  import type { MatchMode } from './index';
7
7
  export interface EngineOptions {
8
8
  /** The capability manifest to use */
@@ -74,6 +74,8 @@ export declare class CapmanEngine {
74
74
  private llmCooldownMs;
75
75
  private llmCircuitBreakerThreshold;
76
76
  private llmCircuitBreakerResetMs;
77
+ private cachedStats;
78
+ private statsInvalidated;
77
79
  private llmCallsThisMinute;
78
80
  private llmWindowStart;
79
81
  private llmLastCallAt;
@@ -96,7 +98,7 @@ export declare class CapmanEngine {
96
98
  * Get stats from the learning store.
97
99
  * Shows which capabilities are most used, LLM vs keyword ratio, cache hit rate.
98
100
  */
99
- getStats(): Promise<import("./learning").KeywordStats | null>;
101
+ getStats(): Promise<KeywordStats | null>;
100
102
  /**
101
103
  * Get the most frequently matched capabilities.
102
104
  */
@@ -113,6 +115,12 @@ export declare class CapmanEngine {
113
115
  * Shows matched capability, all candidate scores with reasoning,
114
116
  * and what action would be taken.
115
117
  *
118
+ * Note: explain() does not write to cache or learning store.
119
+ * However, if mode is 'balanced' or 'accurate' and an LLM call is made,
120
+ * it consumes LLM quota and affects the cooldown/rate limit state
121
+ * shared with ask(). This is by design — explain() is not free
122
+ * when LLM matching is involved.
123
+ *
116
124
  * @example
117
125
  * const explanation = await engine.explain('track order 1234')
118
126
  * console.log(explanation.matched.reasoning)
@@ -133,6 +141,12 @@ export declare class CapmanEngine {
133
141
  * Records a failed LLM call — may open the circuit breaker.
134
142
  */
135
143
  private recordLLMFailure;
144
+ /**
145
+ * Applies learning boost to match candidates based on historical usage.
146
+ * Capabilities that have previously matched similar keywords get a small
147
+ * score boost — capped at +15 to avoid overriding strong keyword matches.
148
+ */
149
+ private applyLearningBoost;
136
150
  private resolveOptions;
137
151
  private recordLearning;
138
152
  }
@@ -1,11 +1,15 @@
1
- import { match as _match, matchWithLLM as _matchWithLLM } from './matcher';
1
+ import { match as _match, matchWithLLM as _matchWithLLM, resolverToIntent } from './matcher';
2
2
  import { resolve as _resolve } from './resolver';
3
3
  import { MemoryLearningStore } from './learning';
4
4
  import { logger } from './logger';
5
5
  import { MemoryCache, normalizeQuery } from './cache';
6
+ import { VERSION } from './version';
6
7
  // ─── CapmanEngine ─────────────────────────────────────────────────────────────
7
8
  export class CapmanEngine {
8
9
  constructor(options) {
10
+ // ── Learning index cache ──────────────────────────────────────────────────
11
+ this.cachedStats = null;
12
+ this.statsInvalidated = true;
9
13
  // ── LLM rate limiting state ────────────────────────────────────────────────
10
14
  this.llmCallsThisMinute = 0;
11
15
  this.llmWindowStart = Date.now();
@@ -34,6 +38,13 @@ export class CapmanEngine {
34
38
  ? null
35
39
  : (options.learning ?? new MemoryLearningStore());
36
40
  logger.info(`CapmanEngine initialized — mode: ${this.mode}, cache: ${this.cache ? 'enabled' : 'disabled'}, learning: ${this.learning ? 'enabled' : 'disabled'}`);
41
+ // ── Manifest version compatibility check ─────────────────────────────────
42
+ const manifestMajorMinor = options.manifest.version?.split('.').slice(0, 2).join('.');
43
+ const engineMajorMinor = VERSION.split('.').slice(0, 2).join('.');
44
+ if (manifestMajorMinor && manifestMajorMinor !== engineMajorMinor) {
45
+ logger.warn(`Manifest version "${options.manifest.version}" differs from engine version "${VERSION}". ` +
46
+ `Run: npx capman generate to regenerate your manifest.`);
47
+ }
37
48
  }
38
49
  /**
39
50
  * Ask the engine a natural language query.
@@ -161,6 +172,38 @@ export class CapmanEngine {
161
172
  break;
162
173
  }
163
174
  }
175
+ const preBoostMatchResult = matchResult;
176
+ // ── Step 2.5: Apply learning boost ───────────────────────────────────────
177
+ if (matchResult.candidates.length > 0 && this.learning && this.mode !== 'cheap') {
178
+ const boosted = await this.applyLearningBoost(query, matchResult.candidates);
179
+ if (boosted.length > 0) {
180
+ const newWinner = boosted.reduce((a, b) => a.score > b.score ? a : b);
181
+ const oldWinner = matchResult.candidates.find(c => c.matched);
182
+ if (newWinner.capabilityId !== oldWinner?.capabilityId && newWinner.score >= this.threshold) {
183
+ // Boost changed the winner — re-extract params for the new capability
184
+ const newCap = this.manifest.capabilities.find(c => c.id === newWinner.capabilityId) ?? null;
185
+ const newParams = newCap ? _match(query, { ...this.manifest, capabilities: [newCap] }).extractedParams : {};
186
+ matchResult = {
187
+ ...matchResult,
188
+ capability: newCap,
189
+ confidence: newWinner.score,
190
+ intent: newCap ? resolverToIntent(newCap) : 'out_of_scope',
191
+ extractedParams: newParams,
192
+ candidates: boosted.map(c => ({ ...c, matched: c.capabilityId === newWinner.capabilityId })),
193
+ reasoning: `Matched "${newWinner.capabilityId}" via learning boost (score: ${newWinner.score})`,
194
+ };
195
+ logger.info(`Learning boost changed winner: "${oldWinner?.capabilityId ?? 'none'}" → "${newWinner.capabilityId}"`);
196
+ }
197
+ else {
198
+ // Same winner — update scores only
199
+ matchResult = {
200
+ ...matchResult,
201
+ confidence: newWinner.score,
202
+ candidates: boosted.map(c => ({ ...c, matched: c.capabilityId === (oldWinner?.capabilityId ?? '') })),
203
+ };
204
+ }
205
+ }
206
+ }
164
207
  // ── Step 3: Privacy check ────────────────────────────────────────────────
165
208
  if (matchResult.capability) {
166
209
  const privacyLevel = matchResult.capability.privacy.level;
@@ -172,9 +215,9 @@ export class CapmanEngine {
172
215
  });
173
216
  }
174
217
  // ── Step 4: Cache the match result ───────────────────────────────────────
175
- if (this.cache && matchResult.capability) {
218
+ if (this.cache && preBoostMatchResult.capability) {
176
219
  const queryKey = normalizeQuery(query);
177
- await this.cache.set(queryKey, matchResult);
220
+ await this.cache.set(queryKey, preBoostMatchResult);
178
221
  }
179
222
  // ── Step 5: Resolve ──────────────────────────────────────────────────────
180
223
  const resolveStart = Date.now();
@@ -257,6 +300,12 @@ export class CapmanEngine {
257
300
  * Shows matched capability, all candidate scores with reasoning,
258
301
  * and what action would be taken.
259
302
  *
303
+ * Note: explain() does not write to cache or learning store.
304
+ * However, if mode is 'balanced' or 'accurate' and an LLM call is made,
305
+ * it consumes LLM quota and affects the cooldown/rate limit state
306
+ * shared with ask(). This is by design — explain() is not free
307
+ * when LLM matching is involved.
308
+ *
260
309
  * @example
261
310
  * const explanation = await engine.explain('track order 1234')
262
311
  * console.log(explanation.matched.reasoning)
@@ -322,6 +371,34 @@ export class CapmanEngine {
322
371
  // cheap mode or no llm — keyword only
323
372
  matchResult = _match(query, this.manifest);
324
373
  }
374
+ // ── Apply learning boost (same as ask()) ─────────────────────────────────
375
+ if (matchResult.candidates.length > 0 && this.learning && this.mode !== 'cheap') {
376
+ const boosted = await this.applyLearningBoost(query, matchResult.candidates);
377
+ if (boosted.length > 0) {
378
+ const newWinner = boosted.reduce((a, b) => a.score > b.score ? a : b);
379
+ const oldWinner = matchResult.candidates.find(c => c.matched);
380
+ if (newWinner.capabilityId !== oldWinner?.capabilityId && newWinner.score >= this.threshold) {
381
+ const newCap = this.manifest.capabilities.find(c => c.id === newWinner.capabilityId) ?? null;
382
+ const newParams = newCap ? _match(query, { ...this.manifest, capabilities: [newCap] }).extractedParams : {};
383
+ matchResult = {
384
+ ...matchResult,
385
+ capability: newCap,
386
+ confidence: newWinner.score,
387
+ intent: newCap ? resolverToIntent(newCap) : 'out_of_scope',
388
+ extractedParams: newParams,
389
+ candidates: boosted.map(c => ({ ...c, matched: c.capabilityId === newWinner.capabilityId })),
390
+ reasoning: `Matched "${newWinner.capabilityId}" via learning boost (score: ${newWinner.score})`,
391
+ };
392
+ }
393
+ else {
394
+ matchResult = {
395
+ ...matchResult,
396
+ confidence: newWinner.score,
397
+ candidates: boosted.map(c => ({ ...c, matched: c.capabilityId === (oldWinner?.capabilityId ?? '') })),
398
+ };
399
+ }
400
+ }
401
+ }
325
402
  // ── Build candidate explanations ─────────────────────────────────────────
326
403
  const candidates = matchResult.candidates
327
404
  .sort((a, b) => b.score - a.score)
@@ -380,12 +457,19 @@ export class CapmanEngine {
380
457
  if (cap) {
381
458
  privacy = cap.privacy.level;
382
459
  resolverType = cap.resolver.type;
383
- // Check if privacy would block
384
- if (cap.privacy.level === 'user_owned' && !this.auth?.isAuthenticated) {
385
- blocked = `Requires authentication (privacy: user_owned)`;
460
+ // Check if privacy would block — mirrors checkPrivacy() in resolver.ts
461
+ if (cap.privacy.level === 'user_owned') {
462
+ if (!this.auth?.isAuthenticated) {
463
+ blocked = `Capability "${cap.id}" requires authentication (privacy: user_owned)`;
464
+ }
386
465
  }
387
- else if (cap.privacy.level === 'admin' && this.auth?.role !== 'admin') {
388
- blocked = `Requires admin role (current: ${this.auth?.role ?? 'none'})`;
466
+ else if (cap.privacy.level === 'admin') {
467
+ if (!this.auth?.isAuthenticated) {
468
+ blocked = `Capability "${cap.id}" requires authentication (privacy: admin)`;
469
+ }
470
+ else if (this.auth.role !== 'admin') {
471
+ blocked = `Capability "${cap.id}" requires admin role (current role: ${this.auth.role ?? 'none'})`;
472
+ }
389
473
  }
390
474
  if (!blocked) {
391
475
  // Build action string
@@ -469,13 +553,13 @@ export class CapmanEngine {
469
553
  // ── Per-minute rate limit ────────────────────────────────────────────────
470
554
  const windowElapsed = now - this.llmWindowStart;
471
555
  if (windowElapsed >= 60000) {
472
- // Reset window
473
556
  this.llmCallsThisMinute = 0;
474
557
  this.llmWindowStart = now;
475
558
  }
476
559
  if (this.llmCallsThisMinute >= this.maxLLMCallsPerMinute) {
477
- const windowResetIn = Math.ceil((60000 - windowElapsed) / 1000);
478
- return `rate limit reached (${this.maxLLMCallsPerMinute}/min) resets in ${windowResetIn}s`;
560
+ // Recalculate elapsed after possible window reset above
561
+ const resetIn = Math.ceil((60000 - (now - this.llmWindowStart)) / 1000);
562
+ return `rate limit reached (${this.maxLLMCallsPerMinute}/min) — resets in ${Math.max(0, resetIn)}s`;
479
563
  }
480
564
  // Reserve the slot atomically before the call happens
481
565
  this.llmCallsThisMinute++;
@@ -492,14 +576,54 @@ export class CapmanEngine {
492
576
  * Records a failed LLM call — may open the circuit breaker.
493
577
  */
494
578
  recordLLMFailure() {
495
- this.llmCallsThisMinute++;
496
579
  this.llmConsecutiveFails++;
497
- this.llmLastCallAt = Date.now();
498
580
  if (this.llmConsecutiveFails >= this.llmCircuitBreakerThreshold) {
499
581
  this.llmCircuitOpenAt = Date.now();
500
582
  logger.warn(`LLM circuit breaker opened after ${this.llmConsecutiveFails} consecutive failures — pausing for ${this.llmCircuitBreakerResetMs / 1000}s`);
501
583
  }
502
584
  }
585
+ /**
586
+ * Applies learning boost to match candidates based on historical usage.
587
+ * Capabilities that have previously matched similar keywords get a small
588
+ * score boost — capped at +15 to avoid overriding strong keyword matches.
589
+ */
590
+ async applyLearningBoost(query, candidates) {
591
+ if (!this.learning)
592
+ return candidates;
593
+ // Use cached stats — rebuilt only when new entries recorded
594
+ if (this.statsInvalidated) {
595
+ this.cachedStats = await this.learning.getStats();
596
+ this.statsInvalidated = false;
597
+ }
598
+ const stats = this.cachedStats;
599
+ if (!stats || Object.keys(stats.index).length === 0)
600
+ return candidates;
601
+ const qWords = query.toLowerCase().split(/\W+/).filter(w => w.length > 2);
602
+ if (qWords.length === 0)
603
+ return candidates;
604
+ return candidates.map(candidate => {
605
+ let boost = 0;
606
+ for (const word of qWords) {
607
+ const wordIndex = stats.index[word];
608
+ if (!wordIndex)
609
+ continue;
610
+ const hits = wordIndex[candidate.capabilityId] ?? 0;
611
+ if (hits > 0) {
612
+ // Logarithmic boost — diminishing returns after first few hits
613
+ boost += Math.min(5, Math.log2(hits + 1) * 2);
614
+ }
615
+ }
616
+ const cappedBoost = Math.min(15, Math.round(boost));
617
+ if (cappedBoost > 0) {
618
+ logger.debug(`Learning boost: "${candidate.capabilityId}" +${cappedBoost} points ` +
619
+ `(was ${candidate.score}%)`);
620
+ }
621
+ return {
622
+ ...candidate,
623
+ score: Math.min(100, candidate.score + cappedBoost),
624
+ };
625
+ });
626
+ }
503
627
  // ── Private helpers ────────────────────────────────────────────────────────
504
628
  resolveOptions(overrides = {}) {
505
629
  return {
@@ -521,5 +645,6 @@ export class CapmanEngine {
521
645
  resolvedVia,
522
646
  timestamp: new Date().toISOString(),
523
647
  });
648
+ this.statsInvalidated = true;
524
649
  }
525
650
  }
@@ -57,8 +57,13 @@ export class FileLearningStore {
57
57
  try {
58
58
  const raw = await fs.promises.readFile(this.filePath, 'utf-8');
59
59
  const parsed = JSON.parse(raw);
60
- this.entries = parsed.entries ?? [];
61
- logger.debug(`Learning store loaded: ${this.entries.length} entries`);
60
+ if (parsed && typeof parsed === 'object' && !Array.isArray(parsed) && Array.isArray(parsed.entries)) {
61
+ this.entries = parsed.entries;
62
+ logger.debug(`Learning store loaded: ${this.entries.length} entries`);
63
+ }
64
+ else {
65
+ logger.warn(`Learning store at ${this.filePath} contained unexpected format — starting fresh`);
66
+ }
62
67
  }
63
68
  catch {
64
69
  // File doesn't exist yet — start fresh
@@ -1,4 +1,5 @@
1
- import type { Manifest, MatchResult } from './types';
1
+ import type { Capability, Manifest, MatchResult } from './types';
2
+ export declare function resolverToIntent(cap: Capability): MatchResult['intent'];
2
3
  export declare function match(query: string, manifest: Manifest): MatchResult;
3
4
  export interface LLMMatcherOptions {
4
5
  llm: (prompt: string) => Promise<string>;
@@ -39,7 +39,7 @@ function scoreCapability(query, cap) {
39
39
  }
40
40
  return Math.min(Math.round(score), 100);
41
41
  }
42
- function resolverToIntent(cap) {
42
+ export function resolverToIntent(cap) {
43
43
  const t = cap.resolver.type;
44
44
  if (t === 'api')
45
45
  return 'retrieval';
@@ -76,9 +76,6 @@ function extractParams(query, cap) {
76
76
  // e.g. "profile for johndoe" → johndoe
77
77
  // "articles by jane" → jane
78
78
  // "tag javascript" → javascript
79
- // Use param name and description as hints for what to look for
80
- const paramHints = [param.name, ...param.description.toLowerCase().split(/\s+/)]
81
- .filter(w => w.length > 2);
82
79
  // Try keyword-based extraction first
83
80
  const keywords = [
84
81
  `for `, `by `, `about `, `named `, `called `,
@@ -210,12 +207,17 @@ export async function matchWithLLM(query, manifest, options) {
210
207
  const capability = isOOS
211
208
  ? null
212
209
  : manifest.capabilities.find(c => c.id === parsed.matched_capability) ?? null;
210
+ // If LLM returned an unknown capability ID, treat as out of scope
211
+ const effectivelyOOS = isOOS || capability === null;
212
+ if (!isOOS && capability === null) {
213
+ logger.warn(`LLM returned unknown capability ID: "${parsed.matched_capability}" — treating as out_of_scope`);
214
+ }
213
215
  return {
214
216
  capability,
215
- confidence: parsed.confidence,
216
- intent: isOOS ? 'out_of_scope' : parsed.intent,
217
+ confidence: effectivelyOOS ? 0 : parsed.confidence,
218
+ intent: effectivelyOOS ? 'out_of_scope' : parsed.intent,
217
219
  extractedParams: parsed.extracted_params ?? {},
218
- reasoning: parsed.reasoning,
220
+ reasoning: parsed.reasoning ?? 'No reasoning provided',
219
221
  candidates: capability ? [{
220
222
  capabilityId: capability.id,
221
223
  score: parsed.confidence,
@@ -245,7 +245,8 @@ function toSnakeCase(str) {
245
245
  .replace(/[-\s]+/g, '_')
246
246
  .toLowerCase()
247
247
  .replace(/^_/, '')
248
- .replace(/__+/g, '_');
248
+ .replace(/__+/g, '_')
249
+ .replace(/_$/, '');
249
250
  }
250
251
  function toHumanName(id) {
251
252
  return id
@@ -43,7 +43,7 @@ export async function resolve(matchResult, params = {}, options = {}) {
43
43
  // ── Session param injection ───────────────────────────────────────────────
44
44
  // Inject auth.userId into any params marked as source: 'session'
45
45
  const enrichedParams = { ...params };
46
- if (options.auth?.userId) {
46
+ if (options.auth?.userId !== undefined && options.auth.userId !== '') {
47
47
  for (const param of capability.params) {
48
48
  if (param.source === 'session') {
49
49
  enrichedParams[param.name] = options.auth.userId;
@@ -172,7 +172,9 @@ async function resolveApi(resolver, params, options) {
172
172
  function resolveNav(resolver, params) {
173
173
  let destination = resolver.destination;
174
174
  for (const [key, value] of Object.entries(params)) {
175
- destination = destination.replace(`{${key}}`, String(value));
175
+ if (value === null || value === undefined)
176
+ continue;
177
+ destination = destination.replace(`{${key}}`, encodeURIComponent(String(value)));
176
178
  }
177
179
  return { success: true, resolverType: 'nav', navTarget: destination };
178
180
  }
@@ -180,6 +182,8 @@ function buildUrl(baseUrl, urlPath, params) {
180
182
  let resolved = urlPath;
181
183
  const unused = {};
182
184
  for (const [key, value] of Object.entries(params)) {
185
+ if (value === null || value === undefined)
186
+ continue; // never write null into URLs
183
187
  if (resolved.includes(`{${key}}`)) {
184
188
  resolved = resolved.replace(`{${key}}`, encodeURIComponent(String(value)));
185
189
  }