@crewx/search 0.1.10-rc.2 → 0.1.10-rc.200

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/README.md CHANGED
@@ -3,5 +3,5 @@
3
3
  BM25 full-text search engine for CrewX documents and code.
4
4
 
5
5
  ```bash
6
- npx search "<query>" [path]
6
+ crewx search "<query>" [path]
7
7
  ```
package/SKILL.md CHANGED
@@ -34,19 +34,19 @@ npm install
34
34
 
35
35
  ```bash
36
36
  # Search markdown files (default)
37
- npx search "launcher architecture" .
37
+ crewx search "launcher architecture" .
38
38
 
39
39
  # Specific directory
40
- npx search "API endpoint" ./docs
40
+ crewx search "API endpoint" ./docs
41
41
 
42
42
  # JS/TS file search
43
- npx search "authentication" ./src --glob="**/*.{js,ts}"
43
+ crewx search "authentication" ./src --glob="**/*.{js,ts}"
44
44
 
45
45
  # Limit result count
46
- npx search "error handling" . --limit=10
46
+ crewx search "error handling" . --limit=10
47
47
 
48
48
  # JSON output
49
- npx search "database" . --json
49
+ crewx search "database" . --json
50
50
  ```
51
51
 
52
52
  ## Options
@@ -101,7 +101,7 @@ Each result includes `matchedField` showing which field drove the match.
101
101
  ### Document Search
102
102
  ```bash
103
103
  # Find documents related to CrewX launcher
104
- npx search "CrewX launcher electron architecture" ./docs
104
+ crewx search "CrewX launcher electron architecture" ./docs
105
105
 
106
106
  # Result:
107
107
  # [17.5] docs/launcher/architecture.md
@@ -111,7 +111,7 @@ npx search "CrewX launcher electron architecture" ./docs
111
111
  ### Code Search
112
112
  ```bash
113
113
  # Find authentication-related code
114
- npx search "authentication JWT token" ./src --glob="**/*.ts"
114
+ crewx search "authentication JWT token" ./src --glob="**/*.ts"
115
115
 
116
116
  # Result:
117
117
  # [15.2] src/auth/jwt.service.ts
@@ -121,7 +121,7 @@ npx search "authentication JWT token" ./src --glob="**/*.ts"
121
121
  ### Multi-language Search
122
122
  ```bash
123
123
  # Find error handling content
124
- npx search "error handling exception" . --glob="**/*.md"
124
+ crewx search "error handling exception" . --glob="**/*.md"
125
125
 
126
126
  # Result:
127
127
  # [3] docs/troubleshooting.md
@@ -131,17 +131,17 @@ npx search "error handling exception" . --glob="**/*.md"
131
131
  ### OKF Highlight-Scoped Search
132
132
  ```bash
133
133
  # Search only what the user highlighted as important
134
- npx search "중요한 결정" ./docs --scope=highlights
134
+ crewx search "important decision" ./docs --scope=highlights
135
135
 
136
136
  # Result:
137
- # [8.0] docs/설계서.md [highlightQuotes]
137
+ # [8.0] docs/design.md [highlightQuotes]
138
138
  # Design Spec
139
139
 
140
140
  # Prioritize full body over highlights
141
- npx search "아키텍처" ./docs --scope=body
141
+ crewx search "architecture" ./docs --scope=body
142
142
 
143
143
  # Apply extra 2x boost on highlights
144
- npx search "API design" ./docs --highlight-boost=2
144
+ crewx search "API design" ./docs --highlight-boost=2
145
145
  ```
146
146
 
147
147
  ## How It Works
package/dist/cli.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
  export declare function main(inputArgs?: string[]): Promise<void>;
3
- //# sourceMappingURL=cli.d.ts.map
3
+
package/dist/cli.js CHANGED
@@ -1,126 +1,6 @@
1
1
  #!/usr/bin/env node
2
- "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
- Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.main = main;
38
- const fs = __importStar(require("fs"));
39
- const path = __importStar(require("path"));
40
- const engine_1 = require("./src/engine");
41
- let PKG_VERSION = 'unknown';
42
- try {
43
- const _pkgPath = fs.existsSync(path.join(__dirname, 'package.json'))
44
- ? path.join(__dirname, 'package.json')
45
- : path.join(__dirname, '..', 'package.json');
46
- const _pkg = JSON.parse(fs.readFileSync(_pkgPath, 'utf-8'));
47
- if (_pkg?.version)
48
- PKG_VERSION = String(_pkg.version);
49
- }
50
- catch { }
51
- async function loadTracer() {
52
- try {
53
- return await Promise.resolve().then(() => __importStar(require('@crewx/shared/skill-tracer')));
54
- }
55
- catch {
56
- return null;
57
- }
58
- }
59
- function showDetailedUsage() {
60
- const skillMd = path.join(__dirname, '..', 'SKILL.md');
61
- if (fs.existsSync(skillMd)) {
62
- process.stdout.write(fs.readFileSync(skillMd, 'utf-8'));
63
- }
64
- else {
65
- console.log('No SKILL.md found. Use --help for usage.');
66
- }
67
- }
68
- async function main(inputArgs) {
69
- const args = inputArgs ?? process.argv.slice(2);
70
- if (args[0] === '--version') {
71
- console.log(PKG_VERSION);
72
- return;
73
- }
74
- if (args[0] === 'usage') {
75
- showDetailedUsage();
76
- return;
77
- }
78
- if (args[0] === 'help' || args[0] === '--help' || args[0] === '-h') {
79
- args.length = 0;
80
- }
81
- const options = {
82
- query: '',
83
- searchPath: '.',
84
- glob: '**/*.md',
85
- limit: 20,
86
- json: false,
87
- scope: 'all',
88
- highlightBoost: 1.0,
89
- };
90
- for (let i = 0; i < args.length; i++) {
91
- const arg = args[i];
92
- if (!arg)
93
- continue;
94
- if (arg.startsWith('--glob=')) {
95
- options.glob = arg.split('=').slice(1).join('=');
96
- }
97
- else if (arg.startsWith('--limit=')) {
98
- options.limit = parseInt(arg.split('=')[1] ?? '20', 10);
99
- }
100
- else if (arg === '--json') {
101
- options.json = true;
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
- }
114
- else if (!options.query) {
115
- options.query = arg;
116
- }
117
- else if (options.searchPath === '.') {
118
- options.searchPath = arg;
119
- }
120
- }
121
- if (!options.query) {
122
- console.log(`
123
- @crewx/search@${PKG_VERSION} - BM25 full-text search engine
2
+ "use strict";var g=exports&&exports.__createBinding||(Object.create?(function(i,e,t,s){if(s===void 0)s=t;var n=Object.getOwnPropertyDescriptor(e,t);if(!n||("get"in n?!e.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return e[t]}}}Object.defineProperty(i,s,n)}):(function(i,e,t,s){if(s===void 0)s=t;i[s]=e[t]}));var f=exports&&exports.__setModuleDefault||(Object.create?(function(i,e){Object.defineProperty(i,"default",{enumerable:true,value:e})}):function(i,e){i["default"]=e});var c=exports&&exports.__importStar||(function(){var i=function(e){i=Object.getOwnPropertyNames||function(t){var s=[];for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n))s[s.length]=n;return s};return i(e)};return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null){for(var s=i(e),n=0;n<s.length;n++)if(s[n]!=="default")g(t,e,s[n])}f(t,e);return t}})();Object.defineProperty(exports,"__esModule",{value:true});exports.main=u;const a=c(require("fs"));const l=c(require("path"));const d=require("./src/engine");let h="unknown";try{const i=a.existsSync(l.join(__dirname,"package.json"))?l.join(__dirname,"package.json"):l.join(__dirname,"..","package.json");const e=JSON.parse(a.readFileSync(i,"utf-8"));if(e?.version)h=String(e.version)}catch{}async function p(){try{return await Promise.resolve().then(()=>c(require("@crewx/shared/skill-tracer")))}catch{return null}}function _(){const i=l.join(__dirname,"..","SKILL.md");if(a.existsSync(i)){process.stdout.write(a.readFileSync(i,"utf-8"))}else{console.log("No SKILL.md found. Use --help for usage.")}}async function u(i){const e=i??process.argv.slice(2);if(e[0]==="--version"){console.log(h);return}if(e[0]==="usage"){_();return}if(e[0]==="help"||e[0]==="--help"||e[0]==="-h"){e.length=0}const t={query:"",searchPath:".",glob:"**/*.md",limit:20,json:false,scope:"all",highlightBoost:1};for(let n=0;n<e.length;n++){const r=e[n];if(!r)continue;if(r.startsWith("--glob=")){t.glob=r.split("=").slice(1).join("=")}else if(r.startsWith("--limit=")){t.limit=parseInt(r.split("=")[1]??"20",10)}else if(r==="--json"){t.json=true}else if(r.startsWith("--scope=")){const o=r.split("=")[1];if(o==="all"||o==="highlights"||o==="body"){t.scope=o}}else if(r.startsWith("--highlight-boost=")){const o=parseFloat(r.split("=")[1]??"1");if(!isNaN(o)&&o>0)t.highlightBoost=o}else if(!t.query){t.query=r}else if(t.searchPath==="."){t.searchPath=r}}if(!t.query){console.log(`
3
+ @crewx/search@${h} - BM25 full-text search engine
124
4
 
125
5
  Usage:
126
6
  search <query> [path] [options]
@@ -145,20 +25,8 @@ Examples:
145
25
  search "API authentication" ./docs
146
26
  search "error handling" ./src --glob="**/*.{js,ts}" --limit=10
147
27
  search "database connection" . --json
148
- search "중요한 결정" ./docs --scope=highlights
149
- search "아키텍처" ./docs --scope=body
28
+ search "important decision" ./docs --scope=highlights
29
+ search "architecture" ./docs --scope=body
150
30
 
151
31
  For detailed usage guide: search usage
152
- `);
153
- return;
154
- }
155
- const engine = new engine_1.SearchEngine();
156
- await engine.search(options);
157
- }
158
- if (require.main === module) {
159
- loadTracer().then(tracer => {
160
- const opts = tracer ? { skillVersion: tracer.getOwnSkillVersion(__dirname) } : {};
161
- return tracer ? tracer.run('crewx/search', () => main(), opts) : main();
162
- }).catch(console.error);
163
- }
164
- //# sourceMappingURL=cli.js.map
32
+ `);return}const s=new d.SearchEngine;await s.search(t)}if(require.main===module){p().then(i=>{const e=i?{skillVersion:i.getOwnSkillVersion(__dirname)}:{};return i?i.run("crewx/search",()=>u(),e):u()}).catch(console.error)}
@@ -5,4 +5,4 @@ export declare class SearchEngine {
5
5
  search(opts: SearchOptions): Promise<void>;
6
6
  searchAndReturn(opts: SearchOptions): Promise<SearchResult[]>;
7
7
  }
8
- //# sourceMappingURL=engine.d.ts.map
8
+
@@ -1,337 +1,3 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.SearchEngine = void 0;
37
- const fs = __importStar(require("fs"));
38
- const path = __importStar(require("path"));
39
- const glob_1 = require("glob");
40
- const knowledge_core_1 = require("@crewx/knowledge-core");
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
- };
54
- function stringifyMetadataValue(value) {
55
- if (value == null)
56
- return '';
57
- if (typeof value === 'string')
58
- return value;
59
- if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint') {
60
- return String(value);
61
- }
62
- if (value instanceof Date)
63
- return value.toISOString();
64
- if (Array.isArray(value)) {
65
- return value.map((item) => stringifyMetadataValue(item)).filter(Boolean).join(' ');
66
- }
67
- if (typeof value === 'object') {
68
- return Object.values(value)
69
- .map((item) => stringifyMetadataValue(item))
70
- .filter(Boolean)
71
- .join(' ');
72
- }
73
- return '';
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
- }
188
- class SearchEngine {
189
- async collectDocuments(searchPath, globPattern) {
190
- const pattern = path.join(searchPath, globPattern);
191
- const config = (0, knowledge_core_1.loadDocsConfig)((0, knowledge_core_1.resolveProjectRoot)(searchPath));
192
- const ignore = (0, knowledge_core_1.buildIgnorePatterns)(config.exclude);
193
- const files = await (0, glob_1.glob)(pattern, { nodir: true, ignore });
194
- const docs = [];
195
- for (const file of files) {
196
- try {
197
- const content = fs.readFileSync(file, 'utf-8');
198
- const relativePath = path.relative(searchPath, file);
199
- let title = '';
200
- let body = content;
201
- let okfFields = {};
202
- if (file.endsWith('.md')) {
203
- try {
204
- const parsed = (0, knowledge_core_1.parseFrontmatter)(content);
205
- title = stringifyMetadataValue(parsed.data['title']) || stringifyMetadataValue(parsed.data['summary']);
206
- body = parsed.content;
207
- okfFields = parseOkfFields(parsed.data, body);
208
- }
209
- catch {
210
- const lines = content.split('\n');
211
- title = (lines[0] ?? '').replace(/^#\s*/, '').substring(0, 100);
212
- }
213
- }
214
- else {
215
- title = path.basename(file);
216
- }
217
- docs.push({
218
- file: relativePath,
219
- fullPath: file,
220
- title,
221
- body: body.substring(0, MAX_BODY_SIZE),
222
- okfTitle: okfFields.okfTitle ?? title,
223
- ...okfFields,
224
- });
225
- }
226
- catch {
227
- }
228
- }
229
- return { docs, fileCount: files.length };
230
- }
231
- runBm25Search(docs, query, limit, scope = 'all', highlightBoost = 1.0) {
232
- if (docs.length < 3)
233
- return [];
234
- const weights = buildFieldWeights(scope, highlightBoost);
235
- const kcEntries = docs.map((doc, idx) => ({
236
- id: String(idx),
237
- type: 'document',
238
- category: 'general',
239
- tags: [],
240
- date: '',
241
- summary: doc.title,
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 ?? '',
252
- title: doc.title,
253
- file: doc.file,
254
- fullPath: doc.fullPath,
255
- }));
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
- });
280
- }
281
- async search(opts) {
282
- const { query, searchPath: rawPath = '.', glob: globPattern = '**/*.md', limit = 20, json = false, scope = 'all', highlightBoost = 1.0, } = opts;
283
- const searchPath = path.resolve(rawPath);
284
- const { docs, fileCount } = await this.collectDocuments(searchPath, globPattern);
285
- if (fileCount === 0) {
286
- console.log(`파일을 찾을 수 없습니다: ${path.join(searchPath, globPattern)}`);
287
- process.exit(1);
288
- }
289
- if (docs.length === 0) {
290
- console.log('읽을 수 있는 파일이 없습니다.');
291
- process.exit(1);
292
- }
293
- const results = this.runBm25Search(docs, query, limit, scope, highlightBoost);
294
- if (results.length === 0) {
295
- console.log(`'${query}' 관련 결과를 찾을 수 없습니다.`);
296
- process.exit(0);
297
- }
298
- if (json) {
299
- console.log(JSON.stringify(results.map(r => ({
300
- file: r.file,
301
- score: r.score,
302
- title: r.title.substring(0, 100),
303
- matchedField: r.matchedField,
304
- })), null, 2));
305
- }
306
- else {
307
- console.log(`\n🔍 검색: "${query}" (${results.length}건, ${fileCount}개 파일 중)\n`);
308
- for (const r of results) {
309
- const title = r.title.substring(0, 60).replace(/\n/g, ' ');
310
- const fieldTag = r.matchedField ? ` [${r.matchedField}]` : '';
311
- console.log(`[${r.score}점] ${r.file}${fieldTag}`);
312
- if (title)
313
- console.log(` ${title}`);
314
- }
315
- const searchCtx = {
316
- commandId: 'search',
317
- params: { query, path: searchPath },
318
- resultCount: results.length,
319
- };
320
- const searchActions = (0, knowledge_core_1.generateNextActions)(searchCtx);
321
- const searchBlock = (0, knowledge_core_1.formatActions)(searchActions);
322
- if (searchBlock)
323
- console.log(searchBlock);
324
- }
325
- }
326
- async searchAndReturn(opts) {
327
- const { query, searchPath: rawPath = '.', glob: globPattern = '**/*.md', limit = 20, scope = 'all', highlightBoost = 1.0, } = opts;
328
- const searchPath = path.resolve(rawPath);
329
- const { docs } = await this.collectDocuments(searchPath, globPattern);
330
- if (docs.length === 0) {
331
- return [];
332
- }
333
- return this.runBm25Search(docs, query, limit, scope, highlightBoost);
334
- }
335
- }
336
- exports.SearchEngine = SearchEngine;
337
- //# sourceMappingURL=engine.js.map
1
+ "use strict";var S=exports&&exports.__createBinding||(Object.create?(function(e,o,t,s){if(s===void 0)s=t;var n=Object.getOwnPropertyDescriptor(o,t);if(!n||("get"in n?!o.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return o[t]}}}Object.defineProperty(e,s,n)}):(function(e,o,t,s){if(s===void 0)s=t;e[s]=o[t]}));var P=exports&&exports.__setModuleDefault||(Object.create?(function(e,o){Object.defineProperty(e,"default",{enumerable:true,value:o})}):function(e,o){e["default"]=o});var _=exports&&exports.__importStar||(function(){var e=function(o){e=Object.getOwnPropertyNames||function(t){var s=[];for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n))s[s.length]=n;return s};return e(o)};return function(o){if(o&&o.__esModule)return o;var t={};if(o!=null){for(var s=e(o),n=0;n<s.length;n++)if(s[n]!=="default")S(t,o,s[n])}P(t,o);return t}})();Object.defineProperty(exports,"__esModule",{value:true});exports.SearchEngine=void 0;const w=_(require("fs"));const m=_(require("path"));const B=require("glob");const p=require("@crewx/knowledge-core");const C=10*1024*1024;const h={okfTitle:5,highlightQuotes:4,okfDescription:3,highlightNotes:3,okfTags:2,highlightIntents:2,highlightColors:1.5,highlightedHeadings:1.5,okfLinks:1,body:1};function b(e){if(e==null)return"";if(typeof e==="string")return e;if(typeof e==="number"||typeof e==="boolean"||typeof e==="bigint"){return String(e)}if(e instanceof Date)return e.toISOString();if(Array.isArray(e)){return e.map(o=>b(o)).filter(Boolean).join(" ")}if(typeof e==="object"){return Object.values(e).map(o=>b(o)).filter(Boolean).join(" ")}return""}function N(e){const o=/\[[^\]]*\]\(([^)]+)\)/g;const t=[];let s;while((s=o.exec(e))!==null){if(s[1]&&!s[1].startsWith("http"))t.push(s[1])}return t.join(" ")}function O(e,o){const t={};if(e["type"])t.okfType=String(e["type"]);if(e["title"])t.okfTitle=b(e["title"]);if(e["description"])t.okfDescription=b(e["description"]);if(e["resource"])t.okfResource=String(e["resource"]);if(e["tags"])t.okfTags=b(e["tags"]);const s=N(o);if(s)t.okfLinks=s;const n=e["crewx"];if(n&&typeof n==="object"&&!Array.isArray(n)){const a=n["highlights"];if(Array.isArray(a)){const r=a.filter(l=>l!==null&&typeof l==="object"&&l.status!=="orphaned"&&l.status!=="deleted"&&l.status!=="superseded");const g=r.map(l=>l.quote??"").filter(Boolean).join(" ");const c=r.map(l=>l.note??"").filter(Boolean).join(" ");const i=r.map(l=>l.intent??"").filter(Boolean).join(" ");const u=r.map(l=>l.color??"").filter(Boolean).join(" ");const f=r.map(l=>l.context?.heading??"").filter(Boolean).join(" ");if(g)t.highlightQuotes=g;if(c)t.highlightNotes=c;if(i)t.highlightIntents=i;if(u)t.highlightColors=u;if(f)t.highlightedHeadings=f}}return t}function I(e,o){const t=o;if(e==="highlights"){return{okfTitle:h["okfTitle"],highlightQuotes:h["highlightQuotes"]*2*t,okfDescription:h["okfDescription"],highlightNotes:h["highlightNotes"]*2*t,okfTags:h["okfTags"],highlightIntents:h["highlightIntents"]*2*t,highlightColors:h["highlightColors"]*t,highlightedHeadings:h["highlightedHeadings"]*t,okfLinks:h["okfLinks"],body:h["body"]}}if(e==="body"){return{okfTitle:h["okfTitle"],highlightQuotes:1,okfDescription:h["okfDescription"],highlightNotes:1,okfTags:h["okfTags"],highlightIntents:.5,highlightColors:.5,highlightedHeadings:.5,okfLinks:h["okfLinks"],body:2}}return{okfTitle:h["okfTitle"],highlightQuotes:h["highlightQuotes"]*t,okfDescription:h["okfDescription"],highlightNotes:h["highlightNotes"]*t,okfTags:h["okfTags"],highlightIntents:h["highlightIntents"]*t,highlightColors:h["highlightColors"]*t,highlightedHeadings:h["highlightedHeadings"]*t,okfLinks:h["okfLinks"],body:h["body"]}}function L(e,o,t){const s=o.toLowerCase().split(/\s+/).filter(Boolean);const n=Object.entries(t).sort(([,r],[,g])=>g-r).map(([r])=>r);const a=e;for(const r of n){const g=String(a[r]??"").toLowerCase();if(g&&s.some(c=>g.includes(c))){return r}}return"body"}class A{async collectDocuments(o,t){const s=m.join(o,t);const n=(0,p.loadDocsConfig)((0,p.resolveProjectRoot)(o));const a=(0,p.buildIgnorePatterns)(n.exclude);const r=await(0,B.glob)(s,{nodir:true,ignore:a});const g=[];for(const c of r){try{const i=w.readFileSync(c,"utf-8");const u=m.relative(o,c);let f="";let l=i;let d={};if(c.endsWith(".md")){try{const k=(0,p.parseFrontmatter)(i);f=b(k.data["title"])||b(k.data["summary"]);l=k.content;d=O(k.data,l)}catch{const k=i.split("\n");f=(k[0]??"").replace(/^#\s*/,"").substring(0,100)}}else{f=m.basename(c)}g.push({file:u,fullPath:c,title:f,body:l.substring(0,C),okfTitle:d.okfTitle??f,...d})}catch{}}return{docs:g,fileCount:r.length}}runBm25Search(o,t,s,n="all",a=1){const r=I(n,a);const g=o.map((i,u)=>({id:String(u),type:"document",category:"general",tags:[],date:"",summary:i.title,body:i.body,okfTitle:i.okfTitle??i.title,okfDescription:i.okfDescription??"",okfTags:i.okfTags??"",okfLinks:i.okfLinks??"",highlightQuotes:i.highlightQuotes??"",highlightNotes:i.highlightNotes??"",highlightIntents:i.highlightIntents??"",highlightColors:i.highlightColors??"",highlightedHeadings:i.highlightedHeadings??"",title:i.title,file:i.file,fullPath:i.fullPath}));const c=(0,p.searchEntries)(g,t,r);return c.slice(0,s).map(i=>{const u=o[Number(i.id)];const f={file:i["file"],fullPath:i["fullPath"],title:i["title"],body:i.body||"",score:i._score,okfTitle:i["okfTitle"],okfDescription:i["okfDescription"],okfTags:i["okfTags"],okfLinks:i["okfLinks"],highlightQuotes:i["highlightQuotes"],highlightNotes:i["highlightNotes"],highlightIntents:i["highlightIntents"],highlightColors:i["highlightColors"],highlightedHeadings:i["highlightedHeadings"],matchedField:u?L(u,t,r):"body"};return f})}async search(o){const{query:t,searchPath:s=".",glob:n="**/*.md",limit:a=20,json:r=false,scope:g="all",highlightBoost:c=1}=o;const i=m.resolve(s);const{docs:u,fileCount:f}=await this.collectDocuments(i,n);if(f===0){console.log(`No files found: ${m.join(i,n)}`);process.exit(1)}if(u.length===0){console.log("No readable files found.");process.exit(1)}const l=this.runBm25Search(u,t,a,g,c);if(l.length===0){console.log(`No results found for '${t}'.`);process.exit(0)}if(r){console.log(JSON.stringify(l.map(d=>({file:d.file,score:d.score,title:d.title.substring(0,100),matchedField:d.matchedField})),null,2))}else{console.log(`
2
+ \u{1F50D} Search: "${t}" (${l.length} results across ${f} files)
3
+ `);for(const y of l){const j=y.title.substring(0,60).replace(/\n/g," ");const D=y.matchedField?` [${y.matchedField}]`:"";console.log(`[${y.score} pts] ${y.file}${D}`);if(j)console.log(` ${j}`)}const d={commandId:"search",params:{query:t,path:i},resultCount:l.length};const k=(0,p.generateNextActions)(d);const T=(0,p.formatActions)(k);if(T)console.log(T)}}async searchAndReturn(o){const{query:t,searchPath:s=".",glob:n="**/*.md",limit:a=20,scope:r="all",highlightBoost:g=1}=o;const c=m.resolve(s);const{docs:i}=await this.collectDocuments(c,n);if(i.length===0){return[]}return this.runBm25Search(i,t,a,r,g)}}exports.SearchEngine=A;
@@ -35,4 +35,4 @@ export interface JsonResult {
35
35
  title: string;
36
36
  matchedField?: string;
37
37
  }
38
- //# sourceMappingURL=types.d.ts.map
38
+
package/dist/src/types.js CHANGED
@@ -1,3 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crewx/search",
3
- "version": "0.1.10-rc.2",
3
+ "version": "0.1.10-rc.200",
4
4
  "description": "BM25 full-text search engine for CrewX documents and code",
5
5
  "type": "commonjs",
6
6
  "main": "dist/src/engine.js",
@@ -34,8 +34,8 @@
34
34
  "license": "MIT",
35
35
  "dependencies": {
36
36
  "glob": "^10.0.0",
37
- "@crewx/shared": "0.0.5",
38
- "@crewx/knowledge-core": "0.1.17"
37
+ "@crewx/shared": "0.0.6-rc.119",
38
+ "@crewx/knowledge-core": "0.1.17-rc.214"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/node": "^20.0.0",
package/dist/cli.d.ts.map DELETED
@@ -1 +0,0 @@
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.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}