@crewx/search 0.1.10-rc.1 → 0.1.10-rc.10

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/SKILL.md CHANGED
@@ -56,6 +56,35 @@ npx search "database" . --json
56
56
  | `--glob=<pattern>` | File pattern | `**/*.md` |
57
57
  | `--limit=<n>` | Limit result count | 20 |
58
58
  | `--json` | JSON format output | false |
59
+ | `--scope=all\|highlights\|body` | Field scoring scope | `all` |
60
+ | `--highlight-boost=<n>` | Extra multiplier for highlight fields | 1.0 |
61
+
62
+ ### OKF + Highlight Weighted Search
63
+
64
+ For `.md` documents with OKF frontmatter and `crewx.highlights`, the engine
65
+ decomposes the document into separate scored fields:
66
+
67
+ | Field | Weight | Description |
68
+ |---|---:|---|
69
+ | `okfTitle` | 5 | OKF document title |
70
+ | `highlightQuotes` | 4 | User-highlighted quotes (active only) |
71
+ | `okfDescription` | 3 | OKF description field |
72
+ | `highlightNotes` | 3 | User notes on highlights |
73
+ | `okfTags` | 2 | OKF tags |
74
+ | `highlightIntents` | 2 | Highlight intents (important/risk/question…) |
75
+ | `highlightColors` | 1.5 | Highlight colors |
76
+ | `highlightedHeadings` | 1.5 | Headings where highlights were placed |
77
+ | `okfLinks` | 1 | Markdown link targets in body |
78
+ | `body` | 1 | Full document body |
79
+
80
+ `orphaned`, `deleted`, and `superseded` highlights are excluded from the index.
81
+ Each result includes `matchedField` showing which field drove the match.
82
+
83
+ **Scope modes:**
84
+
85
+ - `--scope=all` (default): all fields with base weights
86
+ - `--scope=highlights`: double the weight of highlight fields (quote/note/intent)
87
+ - `--scope=body`: halve highlight weights, double body weight
59
88
 
60
89
  ## grep vs search
61
90
 
@@ -99,6 +128,22 @@ npx search "error handling exception" . --glob="**/*.md"
99
128
  # [2] docs/error-handling.md
100
129
  ```
101
130
 
131
+ ### OKF Highlight-Scoped Search
132
+ ```bash
133
+ # Search only what the user highlighted as important
134
+ npx search "중요한 결정" ./docs --scope=highlights
135
+
136
+ # Result:
137
+ # [8.0] docs/설계서.md [highlightQuotes]
138
+ # Design Spec
139
+
140
+ # Prioritize full body over highlights
141
+ npx search "아키텍처" ./docs --scope=body
142
+
143
+ # Apply extra 2x boost on highlights
144
+ npx search "API design" ./docs --highlight-boost=2
145
+ ```
146
+
102
147
  ## How It Works
103
148
 
104
149
  1. **File collection**: Find target files using glob pattern
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":";AAgDA,wBAAsB,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwE9D"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":";AAkDA,wBAAsB,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyF9D"}
package/dist/cli.js CHANGED
@@ -84,6 +84,8 @@ async function main(inputArgs) {
84
84
  glob: '**/*.md',
85
85
  limit: 20,
86
86
  json: false,
87
+ scope: 'all',
88
+ highlightBoost: 1.0,
87
89
  };
88
90
  for (let i = 0; i < args.length; i++) {
89
91
  const arg = args[i];
@@ -98,6 +100,17 @@ async function main(inputArgs) {
98
100
  else if (arg === '--json') {
99
101
  options.json = true;
100
102
  }
103
+ else if (arg.startsWith('--scope=')) {
104
+ const scopeVal = arg.split('=')[1];
105
+ if (scopeVal === 'all' || scopeVal === 'highlights' || scopeVal === 'body') {
106
+ options.scope = scopeVal;
107
+ }
108
+ }
109
+ else if (arg.startsWith('--highlight-boost=')) {
110
+ const boost = parseFloat(arg.split('=')[1] ?? '1');
111
+ if (!isNaN(boost) && boost > 0)
112
+ options.highlightBoost = boost;
113
+ }
101
114
  else if (!options.query) {
102
115
  options.query = arg;
103
116
  }
@@ -120,6 +133,11 @@ Options:
120
133
  --glob=<pattern> File pattern (default: **/*.md)
121
134
  --limit=<n> Max results (default: 20)
122
135
  --json JSON output
136
+ --scope=all|highlights|body Field scoring scope (default: all)
137
+ all: OKF metadata + highlights + body
138
+ highlights: boost highlight fields (2x)
139
+ body: prioritize body over highlights
140
+ --highlight-boost=<n> Extra multiplier for highlight fields (default: 1.0)
123
141
  --version Show version
124
142
  --help, -h Show this help
125
143
 
@@ -127,6 +145,8 @@ Examples:
127
145
  search "API authentication" ./docs
128
146
  search "error handling" ./src --glob="**/*.{js,ts}" --limit=10
129
147
  search "database connection" . --json
148
+ search "important decision" ./docs --scope=highlights
149
+ search "architecture" ./docs --scope=body
130
150
 
131
151
  For detailed usage guide: search usage
132
152
  `);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,oBAwEC;AArGD,uCAAyB;AACzB,2CAA6B;AAC7B,yCAA4C;AAI5C,IAAI,WAAW,GAAG,SAAS,CAAC;AAC5B,IAAI,CAAC;IACH,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAClE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC;QACtC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5D,IAAI,IAAI,EAAE,OAAO;QAAE,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxD,CAAC;AAAC,MAAM,CAAC,CAAA,CAAC;AAGV,KAAK,UAAU,UAAU;IACvB,IAAI,CAAC;QAAC,OAAO,wDAAa,4BAA4B,GAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AACnF,CAAC;AAED,SAAS,iBAAiB;IACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACvD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,IAAI,CAAC,SAAoB;IAC7C,MAAM,IAAI,GAAG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEhD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QACxB,iBAAiB,EAAE,CAAC;QACpB,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACnE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAkB;QAC7B,KAAK,EAAE,EAAE;QACT,UAAU,EAAE,GAAG;QACf,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,KAAK;KACZ,CAAC;IAGF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACtB,CAAC;aAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;QACtB,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YACtC,OAAO,CAAC,UAAU,GAAG,GAAG,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC;gBACA,WAAW;;;;;;;;;;;;;;;;;;;;;;CAsB1B,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,qBAAY,EAAE,CAAC;IAClC,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACzB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1E,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAY,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAwBrE,qBAAa,YAAY;YAKT,gBAAgB;IAkD9B,OAAO,CAAC,aAAa;IAwCf,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAoE1C,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAiBpE"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAY,aAAa,EAAE,YAAY,EAAe,MAAM,SAAS,CAAC;AAkMlF,qBAAa,YAAY;YAKT,gBAAgB;IAuD9B,OAAO,CAAC,aAAa;IAoEf,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAwE1C,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAmBpE"}
@@ -39,6 +39,18 @@ const path = __importStar(require("path"));
39
39
  const glob_1 = require("glob");
40
40
  const knowledge_core_1 = require("@crewx/knowledge-core");
41
41
  const MAX_BODY_SIZE = 10 * 1024 * 1024;
42
+ const BASE_WEIGHTS = {
43
+ okfTitle: 5,
44
+ highlightQuotes: 4,
45
+ okfDescription: 3,
46
+ highlightNotes: 3,
47
+ okfTags: 2,
48
+ highlightIntents: 2,
49
+ highlightColors: 1.5,
50
+ highlightedHeadings: 1.5,
51
+ okfLinks: 1,
52
+ body: 1,
53
+ };
42
54
  function stringifyMetadataValue(value) {
43
55
  if (value == null)
44
56
  return '';
@@ -60,6 +72,119 @@ function stringifyMetadataValue(value) {
60
72
  }
61
73
  return '';
62
74
  }
75
+ function extractMarkdownLinks(body) {
76
+ const linkRe = /\[[^\]]*\]\(([^)]+)\)/g;
77
+ const links = [];
78
+ let m;
79
+ while ((m = linkRe.exec(body)) !== null) {
80
+ if (m[1] && !m[1].startsWith('http'))
81
+ links.push(m[1]);
82
+ }
83
+ return links.join(' ');
84
+ }
85
+ function parseOkfFields(data, body) {
86
+ const result = {};
87
+ if (data['type'])
88
+ result.okfType = String(data['type']);
89
+ if (data['title'])
90
+ result.okfTitle = stringifyMetadataValue(data['title']);
91
+ if (data['description'])
92
+ result.okfDescription = stringifyMetadataValue(data['description']);
93
+ if (data['resource'])
94
+ result.okfResource = String(data['resource']);
95
+ if (data['tags'])
96
+ result.okfTags = stringifyMetadataValue(data['tags']);
97
+ const links = extractMarkdownLinks(body);
98
+ if (links)
99
+ result.okfLinks = links;
100
+ const crewx = data['crewx'];
101
+ if (crewx && typeof crewx === 'object' && !Array.isArray(crewx)) {
102
+ const highlights = crewx['highlights'];
103
+ if (Array.isArray(highlights)) {
104
+ const active = highlights.filter((h) => h !== null &&
105
+ typeof h === 'object' &&
106
+ h.status !== 'orphaned' &&
107
+ h.status !== 'deleted' &&
108
+ h.status !== 'superseded');
109
+ const quotes = active.map(h => h.quote ?? '').filter(Boolean).join(' ');
110
+ const notes = active.map(h => h.note ?? '').filter(Boolean).join(' ');
111
+ const intents = active.map(h => h.intent ?? '').filter(Boolean).join(' ');
112
+ const colors = active.map(h => h.color ?? '').filter(Boolean).join(' ');
113
+ const headings = active
114
+ .map(h => h.context?.heading ?? '')
115
+ .filter(Boolean)
116
+ .join(' ');
117
+ if (quotes)
118
+ result.highlightQuotes = quotes;
119
+ if (notes)
120
+ result.highlightNotes = notes;
121
+ if (intents)
122
+ result.highlightIntents = intents;
123
+ if (colors)
124
+ result.highlightColors = colors;
125
+ if (headings)
126
+ result.highlightedHeadings = headings;
127
+ }
128
+ }
129
+ return result;
130
+ }
131
+ function buildFieldWeights(scope, highlightBoost) {
132
+ const hb = highlightBoost;
133
+ if (scope === 'highlights') {
134
+ return {
135
+ okfTitle: BASE_WEIGHTS['okfTitle'],
136
+ highlightQuotes: BASE_WEIGHTS['highlightQuotes'] * 2 * hb,
137
+ okfDescription: BASE_WEIGHTS['okfDescription'],
138
+ highlightNotes: BASE_WEIGHTS['highlightNotes'] * 2 * hb,
139
+ okfTags: BASE_WEIGHTS['okfTags'],
140
+ highlightIntents: BASE_WEIGHTS['highlightIntents'] * 2 * hb,
141
+ highlightColors: BASE_WEIGHTS['highlightColors'] * hb,
142
+ highlightedHeadings: BASE_WEIGHTS['highlightedHeadings'] * hb,
143
+ okfLinks: BASE_WEIGHTS['okfLinks'],
144
+ body: BASE_WEIGHTS['body'],
145
+ };
146
+ }
147
+ if (scope === 'body') {
148
+ return {
149
+ okfTitle: BASE_WEIGHTS['okfTitle'],
150
+ highlightQuotes: 1,
151
+ okfDescription: BASE_WEIGHTS['okfDescription'],
152
+ highlightNotes: 1,
153
+ okfTags: BASE_WEIGHTS['okfTags'],
154
+ highlightIntents: 0.5,
155
+ highlightColors: 0.5,
156
+ highlightedHeadings: 0.5,
157
+ okfLinks: BASE_WEIGHTS['okfLinks'],
158
+ body: 2,
159
+ };
160
+ }
161
+ return {
162
+ okfTitle: BASE_WEIGHTS['okfTitle'],
163
+ highlightQuotes: BASE_WEIGHTS['highlightQuotes'] * hb,
164
+ okfDescription: BASE_WEIGHTS['okfDescription'],
165
+ highlightNotes: BASE_WEIGHTS['highlightNotes'] * hb,
166
+ okfTags: BASE_WEIGHTS['okfTags'],
167
+ highlightIntents: BASE_WEIGHTS['highlightIntents'] * hb,
168
+ highlightColors: BASE_WEIGHTS['highlightColors'] * hb,
169
+ highlightedHeadings: BASE_WEIGHTS['highlightedHeadings'] * hb,
170
+ okfLinks: BASE_WEIGHTS['okfLinks'],
171
+ body: BASE_WEIGHTS['body'],
172
+ };
173
+ }
174
+ function detectMatchedField(doc, query, weights) {
175
+ const tokens = query.toLowerCase().split(/\s+/).filter(Boolean);
176
+ const sortedFields = Object.entries(weights)
177
+ .sort(([, a], [, b]) => b - a)
178
+ .map(([f]) => f);
179
+ const docRecord = doc;
180
+ for (const field of sortedFields) {
181
+ const value = String(docRecord[field] ?? '').toLowerCase();
182
+ if (value && tokens.some(t => value.includes(t))) {
183
+ return field;
184
+ }
185
+ }
186
+ return 'body';
187
+ }
63
188
  class SearchEngine {
64
189
  async collectDocuments(searchPath, globPattern) {
65
190
  const pattern = path.join(searchPath, globPattern);
@@ -73,11 +198,13 @@ class SearchEngine {
73
198
  const relativePath = path.relative(searchPath, file);
74
199
  let title = '';
75
200
  let body = content;
201
+ let okfFields = {};
76
202
  if (file.endsWith('.md')) {
77
203
  try {
78
204
  const parsed = (0, knowledge_core_1.parseFrontmatter)(content);
79
205
  title = stringifyMetadataValue(parsed.data['title']) || stringifyMetadataValue(parsed.data['summary']);
80
206
  body = parsed.content;
207
+ okfFields = parseOkfFields(parsed.data, body);
81
208
  }
82
209
  catch {
83
210
  const lines = content.split('\n');
@@ -92,6 +219,8 @@ class SearchEngine {
92
219
  fullPath: file,
93
220
  title,
94
221
  body: body.substring(0, MAX_BODY_SIZE),
222
+ okfTitle: okfFields.okfTitle ?? title,
223
+ ...okfFields,
95
224
  });
96
225
  }
97
226
  catch {
@@ -99,9 +228,10 @@ class SearchEngine {
99
228
  }
100
229
  return { docs, fileCount: files.length };
101
230
  }
102
- runBm25Search(docs, query, limit) {
231
+ runBm25Search(docs, query, limit, scope = 'all', highlightBoost = 1.0) {
103
232
  if (docs.length < 3)
104
233
  return [];
234
+ const weights = buildFieldWeights(scope, highlightBoost);
105
235
  const kcEntries = docs.map((doc, idx) => ({
106
236
  id: String(idx),
107
237
  type: 'document',
@@ -110,35 +240,59 @@ class SearchEngine {
110
240
  date: '',
111
241
  summary: doc.title,
112
242
  body: doc.body,
243
+ okfTitle: doc.okfTitle ?? doc.title,
244
+ okfDescription: doc.okfDescription ?? '',
245
+ okfTags: doc.okfTags ?? '',
246
+ okfLinks: doc.okfLinks ?? '',
247
+ highlightQuotes: doc.highlightQuotes ?? '',
248
+ highlightNotes: doc.highlightNotes ?? '',
249
+ highlightIntents: doc.highlightIntents ?? '',
250
+ highlightColors: doc.highlightColors ?? '',
251
+ highlightedHeadings: doc.highlightedHeadings ?? '',
113
252
  title: doc.title,
114
253
  file: doc.file,
115
254
  fullPath: doc.fullPath,
116
255
  }));
117
- const scored = (0, knowledge_core_1.searchEntries)(kcEntries, query, { title: 3, body: 1 });
118
- const results = scored.map(entry => ({
119
- file: entry['file'],
120
- fullPath: entry['fullPath'],
121
- title: entry['title'],
122
- body: entry.body || '',
123
- score: entry._score,
124
- }));
125
- return results.slice(0, limit);
256
+ const scored = (0, knowledge_core_1.searchEntries)(kcEntries, query, weights);
257
+ return scored
258
+ .slice(0, limit)
259
+ .map(entry => {
260
+ const doc = docs[Number(entry.id)];
261
+ const result = {
262
+ file: entry['file'],
263
+ fullPath: entry['fullPath'],
264
+ title: entry['title'],
265
+ body: entry.body || '',
266
+ score: entry._score,
267
+ okfTitle: entry['okfTitle'],
268
+ okfDescription: entry['okfDescription'],
269
+ okfTags: entry['okfTags'],
270
+ okfLinks: entry['okfLinks'],
271
+ highlightQuotes: entry['highlightQuotes'],
272
+ highlightNotes: entry['highlightNotes'],
273
+ highlightIntents: entry['highlightIntents'],
274
+ highlightColors: entry['highlightColors'],
275
+ highlightedHeadings: entry['highlightedHeadings'],
276
+ matchedField: doc ? detectMatchedField(doc, query, weights) : 'body',
277
+ };
278
+ return result;
279
+ });
126
280
  }
127
281
  async search(opts) {
128
- const { query, searchPath: rawPath = '.', glob: globPattern = '**/*.md', limit = 20, json = false, } = opts;
282
+ const { query, searchPath: rawPath = '.', glob: globPattern = '**/*.md', limit = 20, json = false, scope = 'all', highlightBoost = 1.0, } = opts;
129
283
  const searchPath = path.resolve(rawPath);
130
284
  const { docs, fileCount } = await this.collectDocuments(searchPath, globPattern);
131
285
  if (fileCount === 0) {
132
- console.log(`파일을 찾을 수 없습니다: ${path.join(searchPath, globPattern)}`);
286
+ console.log(`No files found: ${path.join(searchPath, globPattern)}`);
133
287
  process.exit(1);
134
288
  }
135
289
  if (docs.length === 0) {
136
- console.log('읽을 수 있는 파일이 없습니다.');
290
+ console.log('No readable files found.');
137
291
  process.exit(1);
138
292
  }
139
- const results = this.runBm25Search(docs, query, limit);
293
+ const results = this.runBm25Search(docs, query, limit, scope, highlightBoost);
140
294
  if (results.length === 0) {
141
- console.log(`'${query}' 관련 결과를 찾을 수 없습니다.`);
295
+ console.log(`No results found for '${query}'.`);
142
296
  process.exit(0);
143
297
  }
144
298
  if (json) {
@@ -146,13 +300,15 @@ class SearchEngine {
146
300
  file: r.file,
147
301
  score: r.score,
148
302
  title: r.title.substring(0, 100),
303
+ matchedField: r.matchedField,
149
304
  })), null, 2));
150
305
  }
151
306
  else {
152
- console.log(`\n🔍 검색: "${query}" (${results.length}건, ${fileCount}개 파일 중)\n`);
307
+ console.log(`\n🔍 Search: "${query}" (${results.length} results across ${fileCount} files)\n`);
153
308
  for (const r of results) {
154
309
  const title = r.title.substring(0, 60).replace(/\n/g, ' ');
155
- console.log(`[${r.score}점] ${r.file}`);
310
+ const fieldTag = r.matchedField ? ` [${r.matchedField}]` : '';
311
+ console.log(`[${r.score} pts] ${r.file}${fieldTag}`);
156
312
  if (title)
157
313
  console.log(` ${title}`);
158
314
  }
@@ -168,13 +324,13 @@ class SearchEngine {
168
324
  }
169
325
  }
170
326
  async searchAndReturn(opts) {
171
- const { query, searchPath: rawPath = '.', glob: globPattern = '**/*.md', limit = 20, } = opts;
327
+ const { query, searchPath: rawPath = '.', glob: globPattern = '**/*.md', limit = 20, scope = 'all', highlightBoost = 1.0, } = opts;
172
328
  const searchPath = path.resolve(rawPath);
173
329
  const { docs } = await this.collectDocuments(searchPath, globPattern);
174
330
  if (docs.length === 0) {
175
331
  return [];
176
332
  }
177
- return this.runBm25Search(docs, query, limit);
333
+ return this.runBm25Search(docs, query, limit, scope, highlightBoost);
178
334
  }
179
335
  }
180
336
  exports.SearchEngine = SearchEngine;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,38 @@
1
+ export type SearchScope = 'all' | 'highlights' | 'body';
1
2
  export interface SearchOptions {
2
3
  query: string;
3
4
  searchPath?: string;
4
5
  glob?: string;
5
6
  limit?: number;
6
7
  json?: boolean;
8
+ highlightBoost?: number;
9
+ scope?: SearchScope;
7
10
  }
8
11
  export interface Document {
9
12
  file: string;
10
13
  fullPath: string;
11
14
  title: string;
12
15
  body: string;
16
+ okfType?: string;
17
+ okfTitle?: string;
18
+ okfDescription?: string;
19
+ okfResource?: string;
20
+ okfTags?: string;
21
+ okfLinks?: string;
22
+ highlightQuotes?: string;
23
+ highlightNotes?: string;
24
+ highlightIntents?: string;
25
+ highlightColors?: string;
26
+ highlightedHeadings?: string;
13
27
  }
14
28
  export interface SearchResult extends Document {
15
29
  score: number;
30
+ matchedField?: string;
16
31
  }
17
32
  export interface JsonResult {
18
33
  file: string;
19
34
  score: number;
20
35
  title: string;
36
+ matchedField?: string;
21
37
  }
22
38
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,YAAY,GAAG,MAAM,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IAEb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,KAAK,EAAE,MAAM,CAAC;IAEd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crewx/search",
3
- "version": "0.1.10-rc.1",
3
+ "version": "0.1.10-rc.10",
4
4
  "description": "BM25 full-text search engine for CrewX documents and code",
5
5
  "type": "commonjs",
6
6
  "main": "dist/src/engine.js",
@@ -35,7 +35,7 @@
35
35
  "dependencies": {
36
36
  "glob": "^10.0.0",
37
37
  "@crewx/shared": "0.0.5",
38
- "@crewx/knowledge-core": "0.1.17-rc.3"
38
+ "@crewx/knowledge-core": "0.1.17-rc.6"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/node": "^20.0.0",