bajaclaw 0.20.2 → 0.20.3

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,10 +1,24 @@
1
1
  export function matchSkills(skills, task, topN = 3, ctx = {}) {
2
2
  const taskLower = task.toLowerCase();
3
+ const interrogative = isInterrogative(task);
3
4
  const candidates = skills.filter((s) => isActiveForContext(s, ctx));
4
- const scored = candidates.map((s) => ({ s, score: scoreSkill(s, taskLower) }));
5
+ const scored = candidates.map((s) => ({ s, score: scoreSkill(s, taskLower, interrogative) }));
5
6
  scored.sort((a, b) => b.score - a.score);
6
7
  return scored.filter((x) => x.score > 0).slice(0, topN).map((x) => x.s);
7
8
  }
9
+ function isInterrogative(task) {
10
+ const trimmed = task.trim();
11
+ if (!trimmed.endsWith("?"))
12
+ return false;
13
+ const lower = trimmed.toLowerCase();
14
+ const interrogativeStarts = [
15
+ "what ", "who ", "when ", "where ", "why ", "how ",
16
+ "is ", "are ", "was ", "were ", "can ", "could ",
17
+ "should ", "would ", "will ", "do ", "does ", "did ",
18
+ "tell me ", "explain ", "describe ", "ask "
19
+ ];
20
+ return interrogativeStarts.some((start) => lower.startsWith(start));
21
+ }
8
22
  function isActiveForContext(skill, ctx) {
9
23
  const tools = new Set(ctx.allowedTools ?? []);
10
24
  // `requires_tools`: every listed tool must be active. If the config
@@ -24,27 +38,36 @@ function isActiveForContext(skill, ctx) {
24
38
  }
25
39
  return true;
26
40
  }
27
- function scoreSkill(skill, taskLower) {
41
+ function scoreSkill(skill, taskLower, interrogative) {
28
42
  let score = 0;
29
43
  for (const trig of skill.triggers ?? []) {
30
- if (taskLower.includes(trig.toLowerCase()))
31
- score += 5;
32
- }
33
- for (const tag of skill.tags ?? []) {
34
- if (taskLower.includes(tag.toLowerCase()))
35
- score += 3;
36
- }
37
- for (const word of (skill.description ?? "").toLowerCase().split(/\s+/)) {
38
- if (word.length < 4)
39
- continue;
40
- if (taskLower.includes(word))
41
- score += 1;
44
+ const trigLower = trig.toLowerCase();
45
+ if (taskLower.includes(trigLower)) {
46
+ if (trigLower.startsWith("/")) {
47
+ score += 10;
48
+ }
49
+ else if (!interrogative) {
50
+ score += 5;
51
+ }
52
+ }
42
53
  }
43
- for (const word of skill.name.toLowerCase().split(/[-_\s]+/)) {
44
- if (word.length < 4)
45
- continue;
46
- if (taskLower.includes(word))
47
- score += 2;
54
+ if (!interrogative) {
55
+ for (const tag of skill.tags ?? []) {
56
+ if (taskLower.includes(tag.toLowerCase()))
57
+ score += 3;
58
+ }
59
+ for (const word of (skill.description ?? "").toLowerCase().split(/\s+/)) {
60
+ if (word.length < 4)
61
+ continue;
62
+ if (taskLower.includes(word))
63
+ score += 1;
64
+ }
65
+ for (const word of skill.name.toLowerCase().split(/[-_\s]+/)) {
66
+ if (word.length < 4)
67
+ continue;
68
+ if (taskLower.includes(word))
69
+ score += 2;
70
+ }
48
71
  }
49
72
  return score;
50
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"matcher.js","sourceRoot":"","sources":["../../src/skills/matcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"matcher.js","sourceRoot":"","sources":["../../src/skills/matcher.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bajaclaw",
3
- "version": "0.20.2",
3
+ "version": "0.20.3",
4
4
  "description": "BajaClaw - autonomous agents on your terms",
5
5
  "type": "module",
6
6
  "bajaclaw": {